{"version":3,"sources":["webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/qs/lib/stringify.js","webpack:///./node_modules/qs/lib/index.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./src/store/api.ts","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/qs/lib/parse.js","webpack:///./node_modules/persian-date/dist/persian-date.js","webpack:///./node_modules/qs/lib/formats.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/qs/lib/utils.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js"],"names":["utils","buildURL","InterceptorManager","dispatchRequest","mergeConfig","Axios","instanceConfig","this","defaults","interceptors","request","response","prototype","config","arguments","url","method","toLowerCase","chain","undefined","promise","Promise","resolve","forEach","interceptor","unshift","fulfilled","rejected","push","length","then","shift","getUri","params","paramsSerializer","replace","data","module","exports","callback","arr","apply","fn","thisArg","args","Array","i","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","value","isUndefined","getDefaultAdapter","adapter","XMLHttpRequest","process","Object","toString","call","transformRequest","isFormData","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","JSON","stringify","transformResponse","parse","e","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","status","common","merge","enhanceError","message","code","error","Error","__CANCEL__","encode","val","encodeURIComponent","serializedParams","parts","key","isArray","v","isDate","toISOString","join","hashmarkIndex","indexOf","slice","isAxiosError","toJSON","name","description","number","fileName","lineNumber","columnNumber","stack","isStandardBrowserEnv","originURL","msie","test","navigator","userAgent","urlParsingNode","document","createElement","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","window","location","requestURL","parsed","isString","formats","has","hasOwnProperty","arrayPrefixGenerators","brackets","prefix","comma","indices","repeat","pushToArray","valueOrArray","toISO","Date","defaultFormat","addQueryPrefix","allowDots","charset","charsetSentinel","delimiter","encoder","encodeValuesOnly","format","formatter","formatters","serializeDate","date","skipNulls","strictNullHandling","isNonNullishPrimitive","object","generateArrayPrefix","filter","sort","obj","maybeMap","keyValue","String","objKeys","values","keys","keyPrefix","normalizeStringifyOptions","opts","TypeError","options","arrayFormat","joined","createError","reject","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","target","source","isPlainObject","mergeDeepProperties","prop","axiosKeys","concat","otherKeys","transformData","isCancel","throwIfCancellationRequested","cancelToken","throwIfRequested","reason","payload","Cancel","write","expires","path","domain","secure","cookie","isNumber","toGMTString","read","match","RegExp","decodeURIComponent","remove","now","isAbsoluteURL","combineURLs","baseURL","requestedURL","batisAutomationApi","a","create","apiAddress","changePassword","userId","oldPassword","newPassword","post","serverResult","console","log","isUserValid","userName","password","serverResponse","commit","access_token","branchesCount","getCartableYears","startDate","endDate","pcStart","pcEnd","startYear","month","year","endYear","counter","result","getDefaultDate","pc","getReceivedLetters","from","to","ownerId","state","getSentLetters","getDraftLetters","getLetterOwners","branchIds","getBranches","use","token","authenticationToken","alert","CancelToken","executor","resolvePromise","cancel","c","allowPrototypes","arrayLimit","decoder","decode","depth","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","plainObjects","str","$0","numberStr","fromCharCode","parseInt","parseArrayValue","split","isoSentinel","parseValues","cleanStr","limit","Infinity","skipIndex","part","bracketEqualsPos","pos","encodedVal","combine","parseObject","valuesParsed","leaf","root","cleanRoot","index","isNaN","0","parseKeys","givenKey","child","segment","exec","parent","normalizeParseOptions","isRegExp","tempObj","newObj","compact","factory","modules","installedModules","__webpack_require__","moduleId","l","m","d","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","property","p","s","_createClass","defineProperties","props","descriptor","writable","Constructor","protoProps","staticProps","_classCallCheck","instance","durationUnit","Helpers","digit","latinDigit","enDigitArr","peDigitArr","j","charCodeAt","targetLength","output","unit","week","day","hour","minute","second","millisecond","Math","ceil","floor","TypeChecking","Algorithms","Duration","Validator","toPersianDigit","leftZeroFill","normalizeDuration","fa","en","PersianDateClass","input","calendarType","localType","leapYearMode","algorithms","version","_utcMode","formatPersian","State","setup","isInvalidDate","_gDateToCalculators","validateInputArray","algorithmsCalc","fromUnix","substring","fromDotNet","substr","syncedCelander","toCalendar","toLocale","toLeapYearMode","inputgDate","calcGregorian","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","t","persian","gregorian","updateFromGregorian","_locale","weekdays","weekdaysShort","weekdaysMin","persianDaysName","months","monthsShort","_getSyncedClass","gDate","dateArray","isPersianDate","calcPersian","calcPersiana","calendar","weekday","hours","minutes","seconds","milliseconds","timestamp","valueOf","asFloat","self","inputMoment","zoneDiff","diff","toDate","round","newArray","toArray","clone","days","isLeapYear","monthDays","daysInMonth","weekDayNumber","startOf","endOf","zone","utcStamp","ThatDayOffset","getTimezoneOffset","offsetMils","utcDate","utc","leap_persian","leap_persiana","leap_gregorian","yearInput","monthInput","inputString","formattingTokens","info","timezone","unix","formatToPersian","formatNumber","checkPersian","replaceFunction","_t","_weekNameShort","_weekName","_dayName","_weekNameMin","_t2","_t3","_day","_monthNameShort","_monthName","yearDigitArray","flag","z","_flag","_hours","_minutes","_z","_inputString","normalizedDate","tempDate","tempYear","remainingMonth","calcedMonth","normalizaedDate","tempDateArray","_monthDays","calcedDay","newMillisecond","newDate","_calcedDay","_newMillisecond","_newDate","_newMillisecond2","_newMillisecond3","_newMillisecond4","_newMillisecond5","add","dateB","dateA","ASTRO","J0000","J1970","JMJD","NormLeap","GREGORIAN_EPOCH","PERSIAN_EPOCH","jd","wjd","depoch","quadricent","dqc","cent","dcent","quad","dquad","yindex","yearday","leapadj","mod","gregorian_to_jd","equJED","equJD","equAPP","equTehran","dtTehran","equinox","deltat","equationOfTime","ep","epg","tehran_equinox","guess","jd_to_gregorian","lasteq","nexteq","adr","tehran_equinox_jd","TropicalYear","yday","persiana_year","persiana_to_jd","epbase","epyear","cycle","cyear","ycycle","aux1","aux2","persian_to_jd","mon","mday","min","sec","utime","perscal","julianday","modifiedjulianday","jwday","leap","jd_to_persian","gWeekDayToPersian","jd_to_persiana","persianAstro","gregserial","unixtime","calcJulian","setJulian","J2000","JulianCentury","JulianMillennium","oterms","nutArgMult","nutArgCoeff","deltaTtab","EquinoxpTerms","JDE0tab1000","JDE0tab2000","PI","r","sin","dtr","cos","b","eps","u","abs","deltaPsi","deltaEpsilon","t2","t3","to10","ang","ta","dp","de","fixangr","dt","f","which","deltaL","JDE0","JDE","JDE0tab","S","T","W","Y","dcos","T2","L0","M","C","sunLong","sunAnomaly","sunR","Omega","Lambda","epsilon","epsilon0","Alpha","Delta","AlphaApp","DeltaApp","fixangle","dsin","obliqeq","rtd","atan2","asin","alpha","E","tau","sunpos","nutation","absRound","absFloor","duration","_data","normalizedUnit","ms","years","y","weeks","w","h","_milliseconds","_days","_months","Container","juliancalendar","islamic","persianAlgo","isoweek","isoday","out","percentTwenties","util","Format","RFC1738","RFC3986","assign","settle","cookies","buildFullPath","parseHeaders","isURLSameOrigin","requestData","requestHeaders","auth","username","unescape","Authorization","btoa","fullPath","open","toUpperCase","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","responseData","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","abort","send","ignoreDuplicateOf","line","trim","fns","bind","constructor","FormData","ArrayBuffer","isView","getPrototypeOf","isFunction","pipe","URLSearchParams","product","assignValue","extend","stripBOM","content","normalizedName","createInstance","defaultConfig","context","axios","all","promises","spread","default","hexTable","array","compactQueue","queue","item","pop","compacted","arrayToObject","mergeTarget","targetItem","reduce","acc","strWithoutPlus","defaultEncoder","string","Symbol","escape","refs","mapped","relativeURL","handlers","eject","id"],"mappings":"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","file":"js/chunk-76232e79.12c4e921.js","sourcesContent":["'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly,\n charset\n) {\n var obj = object;\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n }).join(',');\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key') : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key');\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value'))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n var value = obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix\n : prefix + (allowDots ? '.' + key : '[' + key + ']');\n\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly,\n charset\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.formatter,\n options.encodeValuesOnly,\n options.charset\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","import qs from 'qs'\r\nimport axios from 'axios'\r\nimport { LetterDto, LetterList } from '@/store/models'\r\nimport store from '@/store'\r\nimport router from '@/router';\r\nimport { LetterOwnerWithPicture } from '@/store/models/LetterOwner/letterOwnerWithPicture';\r\nimport LetterListerWithPaginationResult from '@/store/models/Letter/LetterListerWithPaginationResult';\r\nimport {DraftLetter} from \"@/store/models/Letter/DraftLetter\"\r\nimport { Branch } from '@/store/models/LetterOwner/Branch';\r\nimport * as persianDate from 'persian-date';\r\n\r\nexport const batisAutomationApi = axios.create( \r\n { \r\n //baseURL:\"http://45.149.76.4:1620//api\"\r\n //baseURL: \"http://185.8.174.148:1620/api\",\r\n baseURL: (window as any).apiAddress,\r\n //baseURL: \"http://5.160.229.58:1620/api\"\r\n // baseUrl: \"http://localhost:54173/api\"\r\n\r\n }\r\n //baseUrl: \"http://localhost:54173/api\",\r\n //baseUrl:\"http://91.92.190.222:1620/api\",\r\n //baseUrl:\"http://185.8.174.148:1620/api\", \r\n //baseUrl:\"http://localhost:1620/api\"\r\n //baseUrl:\"http://45.149.76.4:1620//api\"\r\n //baseUrl:\"http://78.38.202.182:1620//api\"\r\n\r\n);\r\n\r\nbatisAutomationApi.interceptors.request.use(\r\n (config) => {\r\n const token = store.state.authenticationToken;\r\n //console.log(token);\r\n \r\n if (token) {\r\n config.headers['Authorization'] = `Bearer ${ token }`\r\n }\r\n \r\n return config;\r\n },\r\n \r\n (error) => {\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nbatisAutomationApi.interceptors.response.use(\r\n (response) =>\r\n \r\n {\r\n return response;\r\n }, (error) => {\r\n if(error.response.status === 401){\r\n \r\n alert(\"Token expiered....\");\r\n store.commit(\"clearToken\");\r\n router.replace({name: \"Login\"});\r\n // router.replace({name: \"Login\"});\r\n }\r\n \r\n }\r\n);\r\n\r\nexport async function changePassword(userId: string, oldPassword: string,newPassword: string): Promise {\r\n try {\r\n const data = {\r\n userId: userId,\r\n oldPassword: oldPassword,\r\n newPassword: newPassword\r\n };\r\n const serverResult = await batisAutomationApi.post(\"/ChangePassword\",data);\r\n return serverResult.data;\r\n } catch (error) {\r\n console.log(error);\r\n return false;\r\n }\r\n }\r\n\r\nexport async function isUserValid(userName: string , password: string): Promise {\r\n try {\r\n const data = qs.stringify({\"userName\": userName , \"password\": password , 'grant_type': \"password\"});\r\n const config = { headers: {\r\n 'content-type': 'application/x-www-form-urlencoded;charset=utf-8',\r\n }};\r\n const serverResponse = await batisAutomationApi.post(\"/token\",data,config);\r\n if(serverResponse){\r\n store.commit(\"setAuthenticationToken\",serverResponse.data.access_token);\r\n store.commit(\"setUserId\",serverResponse.data.userId);\r\n store.commit(\"clearBranchIds\");\r\n const branchesCount = serverResponse.data.branchesCount as number;\r\n for(let i = 0; i{\r\n const serverResult = await batisAutomationApi.get(\"/letter\");\r\n const letterArray = serverResult.data as LetterDto[];\r\n const test: any = {};\r\n test.letters = letterArray;\r\n return test as LetterList; \r\n}\r\n\r\nexport function getCartableYears(startDate: string, endDate: string ): number[]{\r\n const pcStart = new persianDate(new Date(startDate));\r\n const pcEnd = new persianDate(new Date(endDate));\r\n const startMonth = pcStart.month() as number;\r\n const startYear = pcStart.year() as number;\r\n const endMonth = pcEnd.month() as number;\r\n const endYear = pcEnd.year() as number;\r\n let counter = endYear;\r\n const result = [];\r\n while(counter>= startYear){\r\n result.push(counter);\r\n counter--;\r\n }\r\n return result;\r\n}\r\n\r\nexport function getDefaultDate(date: string): any{\r\n const pc = new persianDate(new Date(date));\r\n return {year: pc.year(), month: pc.month()}\r\n}\r\n\r\nexport async function getReceivedLetters(from: string, to: string): Promise{\r\n try {\r\n const config = {\r\n //headers: {'Content-Type': 'application/json' }\r\n };\r\n const data = {\r\n ownerId: store.state.ownerId,\r\n from: from,\r\n to: to\r\n };\r\n const serverResult = await batisAutomationApi.post(\"/ReceivedLetters\",data);\r\n getCartableYears(serverResult.data.from,serverResult.data.to);\r\n return serverResult.data;\r\n } catch (error) {\r\n console.log(error);\r\n return {} as LetterListerWithPaginationResult;\r\n }\r\n}\r\n\r\nexport async function getSentLetters(from?: Date, to?: Date): Promise{\r\n try {\r\n const data = {\r\n ownerId: store.state.ownerId,\r\n from: from,\r\n to: to\r\n };\r\n const serverResult = await batisAutomationApi.post(\"/SentLetters\",data);\r\n return serverResult.data;\r\n } catch (error) {\r\n console.log(error);\r\n return {} as LetterListerWithPaginationResult;\r\n }\r\n}\r\n\r\nexport async function getDraftLetters(from?: Date, to?: Date): Promise {\r\n try {\r\n const data = {\r\n ownerId: store.state.ownerId,\r\n from: from,\r\n to: to\r\n };\r\n const serverResult = await batisAutomationApi.post(\"/DraftLetters\",data);\r\n const result = serverResult.data;\r\n \r\n return result;\r\n } catch (error) {\r\n console.log(error);\r\n return {} as LetterListerWithPaginationResult ;\r\n }\r\n}\r\n\r\n\r\nexport async function getLetterOwners(): Promise\r\n{\r\n try {\r\n const config = {\r\n headers: {'Content-Type': 'application/json' }\r\n };\r\n const data = {\r\n userId: store.state.userId,\r\n branchIds: store.state.branchIds\r\n };\r\n const serverResult = await batisAutomationApi.post(\"/LetterOwners\",data,config);\r\n // console.log(\"*************************\");\r\n // console.log(serverResult.data);\r\n // console.log(\"*************************\");\r\n return serverResult.data;\r\n } catch (error) {\r\n console.log(error);\r\n return [];\r\n }\r\n \r\n}\r\n\r\nexport async function getBranches(): Promise\r\n{\r\n try {\r\n // const config = {\r\n // headers: {'Content-Type': 'application/json' }\r\n // };\r\n const data = {\r\n userId: store.state.userId,\r\n branchIds: store.state.branchIds\r\n };\r\n const serverResult = await batisAutomationApi.post(\"/Branches\",data);\r\n return serverResult.data;\r\n } catch (error) {\r\n console.log(error);\r\n return [];\r\n }\r\n \r\n}\r\n\r\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj; // eslint-disable-line no-param-reassign\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n","/*!\n * \n * persian-date - 1.1.0\n * Reza Babakhani \n * http://babakhani.github.io/PersianWebToolkit/docs/persian-date/\n * Under MIT license \n * \n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"persianDate\"] = factory();\n\telse\n\t\troot[\"persianDate\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 8);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar durationUnit = __webpack_require__(4).durationUnit;\n\nvar Helpers = function () {\n function Helpers() {\n _classCallCheck(this, Helpers);\n }\n\n _createClass(Helpers, [{\n key: 'toPersianDigit',\n\n\n /**\n * @description return converted string to persian digit\n * @param digit\n * @returns {string|*}\n */\n value: function toPersianDigit(digit) {\n var latinDigit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n return digit.toString().replace(/\\d+/g, function (digit) {\n var enDigitArr = [],\n peDigitArr = [],\n i = void 0,\n j = void 0;\n for (i = 0; i < digit.length; i += 1) {\n enDigitArr.push(digit.charCodeAt(i));\n }\n for (j = 0; j < enDigitArr.length; j += 1) {\n peDigitArr.push(String.fromCharCode(enDigitArr[j] + (!!latinDigit && latinDigit === true ? 1584 : 1728)));\n }\n return peDigitArr.join('');\n });\n }\n\n /**\n * @param number\n * @param targetLength\n * @returns {string}\n */\n\n }, {\n key: 'leftZeroFill',\n value: function leftZeroFill(number, targetLength) {\n var output = number + '';\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return output;\n }\n\n /**\n * @description normalize duration params and return valid param\n * @return {{unit: *, value: *}}\n */\n\n }, {\n key: 'normalizeDuration',\n value: function normalizeDuration() {\n var unit = void 0,\n value = void 0;\n if (typeof arguments[0] === 'string') {\n unit = arguments[0];\n value = arguments[1];\n } else {\n value = arguments[0];\n unit = arguments[1];\n }\n if (durationUnit.year.indexOf(unit) > -1) {\n unit = 'year';\n } else if (durationUnit.month.indexOf(unit) > -1) {\n unit = 'month';\n } else if (durationUnit.week.indexOf(unit) > -1) {\n unit = 'week';\n } else if (durationUnit.day.indexOf(unit) > -1) {\n unit = 'day';\n } else if (durationUnit.hour.indexOf(unit) > -1) {\n unit = 'hour';\n } else if (durationUnit.minute.indexOf(unit) > -1) {\n unit = 'minute';\n } else if (durationUnit.second.indexOf(unit) > -1) {\n unit = 'second';\n } else if (durationUnit.millisecond.indexOf(unit) > -1) {\n unit = 'millisecond';\n }\n return {\n unit: unit,\n value: value\n };\n }\n\n /**\n *\n * @param number\n * @returns {number}\n */\n\n }, {\n key: 'absRound',\n value: function absRound(number) {\n if (number < 0) {\n return Math.ceil(number);\n } else {\n return Math.floor(number);\n }\n }\n\n /**\n *\n * @param number\n * @return {number}\n */\n\n }, {\n key: 'absFloor',\n value: function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n }]);\n\n return Helpers;\n}();\n\nmodule.exports = Helpers;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar TypeChecking = __webpack_require__(10);\nvar Algorithms = __webpack_require__(2);\nvar Helpers = __webpack_require__(0);\nvar Duration = __webpack_require__(5);\nvar Validator = __webpack_require__(11);\nvar toPersianDigit = new Helpers().toPersianDigit;\nvar leftZeroFill = new Helpers().leftZeroFill;\nvar normalizeDuration = new Helpers().normalizeDuration;\nvar fa = __webpack_require__(7);\nvar en = __webpack_require__(6);\n\n/**\n * @description persian date class\n */\n\nvar PersianDateClass = function () {\n\n /**\n * @param input\n * @return {PersianDateClass}\n */\n function PersianDateClass(input) {\n _classCallCheck(this, PersianDateClass);\n\n this.calendarType = PersianDateClass.calendarType;\n this.localType = PersianDateClass.localType;\n this.leapYearMode = PersianDateClass.leapYearMode;\n\n this.algorithms = new Algorithms(this);\n this.version = \"1.1.0\";\n this._utcMode = false;\n if (this.localType !== 'fa') {\n this.formatPersian = false;\n } else {\n this.formatPersian = '_default';\n }\n this.State = this.algorithms.State;\n this.setup(input);\n if (this.State.isInvalidDate) {\n // Return Date like message\n return new Date([-1, -1]);\n }\n return this;\n }\n\n /**\n * @param input\n */\n\n\n _createClass(PersianDateClass, [{\n key: 'setup',\n value: function setup(input) {\n // Convert Any thing to Gregorian Date\n if (TypeChecking.isDate(input)) {\n this._gDateToCalculators(input);\n } else if (TypeChecking.isArray(input)) {\n if (!Validator.validateInputArray(input)) {\n this.State.isInvalidDate = true;\n return false;\n }\n this.algorithmsCalc([input[0], input[1] ? input[1] : 1, input[2] ? input[2] : 1, input[3] ? input[3] : 0, input[4] ? input[4] : 0, input[5] ? input[5] : 0, input[6] ? input[6] : 0]);\n } else if (TypeChecking.isNumber(input)) {\n var fromUnix = new Date(input);\n this._gDateToCalculators(fromUnix);\n }\n // instance of pDate\n else if (input instanceof PersianDateClass) {\n this.algorithmsCalc([input.year(), input.month(), input.date(), input.hour(), input.minute(), input.second(), input.millisecond()]);\n }\n // ASP.NET JSON Date\n else if (input && input.substring(0, 6) === '/Date(') {\n var fromDotNet = new Date(parseInt(input.substr(6)));\n this._gDateToCalculators(fromDotNet);\n } else {\n var now = new Date();\n this._gDateToCalculators(now);\n }\n }\n\n /**\n * @param input\n * @return {*}\n * @private\n */\n\n }, {\n key: '_getSyncedClass',\n value: function _getSyncedClass(input) {\n var syncedCelander = PersianDateClass.toCalendar(this.calendarType).toLocale(this.localType).toLeapYearMode(this.leapYearMode);\n return new syncedCelander(input);\n }\n\n /**\n * @param inputgDate\n * @private\n */\n\n }, {\n key: '_gDateToCalculators',\n value: function _gDateToCalculators(inputgDate) {\n this.algorithms.calcGregorian([inputgDate.getFullYear(), inputgDate.getMonth(), inputgDate.getDate(), inputgDate.getHours(), inputgDate.getMinutes(), inputgDate.getSeconds(), inputgDate.getMilliseconds()]);\n }\n\n /**\n * @since 1.0.0\n * @description Helper method that return date range name like week days name, month names, month days names (specially in persian calendar).\n * @static\n * @return {*}\n */\n\n }, {\n key: 'rangeName',\n\n\n /**\n * @since 1.0.0\n * @description Helper method that return date range name like week days name, month names, month days names (specially in persian calendar).\n * @return {*}\n */\n value: function rangeName() {\n var t = this.calendarType;\n if (this.localType === 'fa') {\n if (t === 'persian') {\n return fa.persian;\n } else {\n return fa.gregorian;\n }\n } else {\n if (t === 'persian') {\n return en.persian;\n } else {\n return en.gregorian;\n }\n }\n }\n\n /**\n * @since 1.0.0\n * @param input\n * @return {PersianDateClass}\n */\n\n }, {\n key: 'toLeapYearMode',\n value: function toLeapYearMode(input) {\n this.leapYearMode = input;\n if (input === 'astronomical' && this.calendarType == 'persian') {\n this.leapYearMode = 'astronomical';\n } else if (input === 'algorithmic' && this.calendarType == 'persian') {\n this.leapYearMode = 'algorithmic';\n }\n this.algorithms.updateFromGregorian();\n return this;\n }\n\n /**\n * @since 1.0.0\n * @static\n * @param input\n * @return {PersianDateClass}\n */\n\n }, {\n key: 'toCalendar',\n\n\n /**\n * @since 1.0.0\n * @param input\n * @return {PersianDateClass}\n */\n value: function toCalendar(input) {\n this.calendarType = input;\n this.algorithms.updateFromGregorian();\n return this;\n }\n\n /**\n * @since 1.0.0\n * @static\n * @param input\n * @return {PersianDateClass}\n */\n\n }, {\n key: 'toLocale',\n\n\n /**\n * @since 1.0.0\n * @param input\n * @return {PersianDateClass}\n */\n value: function toLocale(input) {\n this.localType = input;\n if (this.localType !== 'fa') {\n this.formatPersian = false;\n } else {\n this.formatPersian = '_default';\n }\n return this;\n }\n\n /**\n * @return {*}\n * @private\n */\n\n }, {\n key: '_locale',\n value: function _locale() {\n var t = this.calendarType;\n if (this.localType === 'fa') {\n if (t === 'persian') {\n return fa.persian;\n } else {\n return fa.gregorian;\n }\n } else {\n if (t === 'persian') {\n return en.persian;\n } else {\n return en.gregorian;\n }\n }\n }\n\n /**\n * @param input\n * @private\n */\n\n }, {\n key: '_weekName',\n value: function _weekName(input) {\n return this._locale().weekdays[input - 1];\n }\n\n /**\n * @param input\n * @private\n */\n\n }, {\n key: '_weekNameShort',\n value: function _weekNameShort(input) {\n return this._locale().weekdaysShort[input - 1];\n }\n\n /**\n * @param input\n * @private\n */\n\n }, {\n key: '_weekNameMin',\n value: function _weekNameMin(input) {\n return this._locale().weekdaysMin[input - 1];\n }\n\n /**\n * @param input\n * @return {*}\n * @private\n */\n\n }, {\n key: '_dayName',\n value: function _dayName(input) {\n return this._locale().persianDaysName[input - 1];\n }\n\n /**\n * @param input\n * @private\n */\n\n }, {\n key: '_monthName',\n value: function _monthName(input) {\n return this._locale().months[input - 1];\n }\n\n /**\n * @param input\n * @private\n */\n\n }, {\n key: '_monthNameShort',\n value: function _monthNameShort(input) {\n return this._locale().monthsShort[input - 1];\n }\n\n /**\n * @param obj\n * @returns {boolean}\n */\n\n }, {\n key: 'isPersianDate',\n\n\n /**\n * @param obj\n * @return {boolean}\n */\n value: function isPersianDate(obj) {\n return obj instanceof PersianDateClass;\n }\n\n /**\n * @returns {PersianDate}\n */\n\n }, {\n key: 'clone',\n value: function clone() {\n return this._getSyncedClass(this.State.gDate);\n }\n\n /**\n * @since 1.0.0\n * @param dateArray\n * @return {*}\n */\n\n }, {\n key: 'algorithmsCalc',\n value: function algorithmsCalc(dateArray) {\n if (this.isPersianDate(dateArray)) {\n dateArray = [dateArray.year(), dateArray.month(), dateArray.date(), dateArray.hour(), dateArray.minute(), dateArray.second(), dateArray.millisecond()];\n }\n if (this.calendarType === 'persian' && this.leapYearMode == 'algorithmic') {\n return this.algorithms.calcPersian(dateArray);\n } else if (this.calendarType === 'persian' && this.leapYearMode == 'astronomical') {\n return this.algorithms.calcPersiana(dateArray);\n } else if (this.calendarType === 'gregorian') {\n dateArray[1] = dateArray[1] - 1;\n return this.algorithms.calcGregorian(dateArray);\n }\n }\n\n /**\n * @since 1.0.0\n * @return {*}\n */\n\n }, {\n key: 'calendar',\n value: function calendar() {\n var key = void 0;\n if (this.calendarType == 'persian') {\n if (this.leapYearMode == 'astronomical') {\n key = 'persianAstro';\n } else if (this.leapYearMode == 'algorithmic') {\n key = 'persianAlgo';\n }\n } else {\n key = 'gregorian';\n }\n return this.State[key];\n }\n\n /**\n * @description return Duration object\n * @param input\n * @param key\n * @returns {Duration}\n */\n\n }, {\n key: 'duration',\n\n\n /**\n * @description return Duration object\n * @param input\n * @param key\n * @returns {Duration}\n */\n value: function duration(input, key) {\n return new Duration(input, key);\n }\n\n /**\n * @description check if passed object is duration\n * @param obj\n * @returns {boolean}\n */\n\n }, {\n key: 'isDuration',\n\n\n /**\n * @description check if passed object is duration\n * @param obj\n * @returns {boolean}\n */\n value: function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n /**\n * @param input\n * @returns {*}\n */\n\n }, {\n key: 'years',\n value: function years(input) {\n return this.year(input);\n }\n\n /**\n * @param input\n * @returns {*}\n */\n\n }, {\n key: 'year',\n value: function year(input) {\n if (input || input === 0) {\n this.algorithmsCalc([input, this.month(), this.date(), this.hour(), this.minute(), this.second(), this.millisecond()]);\n return this;\n } else {\n return this.calendar().year;\n }\n }\n\n /**\n * @param input\n * @returns {*}\n */\n\n }, {\n key: 'month',\n value: function month(input) {\n if (input || input === 0) {\n this.algorithmsCalc([this.year(), input, this.date()]);\n return this;\n } else {\n return this.calendar().month + 1;\n }\n }\n\n /**\n * Day of week\n * @returns {Function|Date.toJSON.day|date_json.day|PersianDate.day|day|output.day|*}\n */\n\n }, {\n key: 'days',\n value: function days() {\n return this.day();\n }\n\n /**\n * @returns {Function|Date.toJSON.day|date_json.day|PersianDate.day|day|output.day|*}\n */\n\n }, {\n key: 'day',\n value: function day() {\n return this.calendar().weekday;\n }\n\n /**\n * Day of Months\n * @param input\n * @returns {*}\n */\n\n }, {\n key: 'dates',\n value: function dates(input) {\n return this.date(input);\n }\n\n /**\n * @param input\n * @returns {*}\n */\n\n }, {\n key: 'date',\n value: function date(input) {\n if (input || input === 0) {\n this.algorithmsCalc([this.year(), this.month(), input]);\n return this;\n } else {\n return this.calendar().day;\n }\n }\n\n /**\n * @param input\n * @returns {*}\n */\n\n }, {\n key: 'hour',\n value: function hour(input) {\n return this.hours(input);\n }\n\n /**\n * @param input\n * @returns {*}\n */\n\n }, {\n key: 'hours',\n value: function hours(input) {\n if (input || input === 0) {\n if (input === 0) {\n input = 24;\n }\n this.algorithmsCalc([this.year(), this.month(), this.date(), input]);\n return this;\n } else {\n return this.State.gDate.getHours();\n }\n }\n\n /**\n * @param input\n * @returns {*}\n */\n\n }, {\n key: 'minute',\n value: function minute(input) {\n return this.minutes(input);\n }\n\n /**\n * @param input\n * @returns {*}\n */\n\n }, {\n key: 'minutes',\n value: function minutes(input) {\n if (input || input === 0) {\n this.algorithmsCalc([this.year(), this.month(), this.date(), this.hour(), input]);\n return this;\n } else {\n return this.State.gDate.getMinutes();\n }\n }\n\n /**\n * @param input\n * @returns {*}\n */\n\n }, {\n key: 'second',\n value: function second(input) {\n return this.seconds(input);\n }\n\n /**\n * @param input\n * @returns {*}\n */\n\n }, {\n key: 'seconds',\n value: function seconds(input) {\n if (input || input === 0) {\n this.algorithmsCalc([this.year(), this.month(), this.date(), this.hour(), this.minute(), input]);\n return this;\n } else {\n return this.State.gDate.getSeconds();\n }\n }\n\n /**\n * @param input\n * @returns {*}\n * Getter Setter\n */\n\n }, {\n key: 'millisecond',\n value: function millisecond(input) {\n return this.milliseconds(input);\n }\n\n /**\n * @param input\n * @returns {*}\n */\n\n }, {\n key: 'milliseconds',\n value: function milliseconds(input) {\n if (input || input === 0) {\n this.algorithmsCalc([this.year(), this.month(), this.date(), this.hour(), this.minute(), this.second(), input]);\n return this;\n } else {\n return this.State.gregorian.millisecond;\n }\n }\n\n /**\n * Return Milliseconds since the Unix Epoch (1318874398806)\n * @returns {*}\n * @private\n */\n // _valueOf () {\n // return this.State.gDate.valueOf();\n // }\n\n\n }, {\n key: 'unix',\n\n\n /**\n * Return Unix Timestamp (1318874398)\n * @param timestamp\n * @returns {*}\n */\n value: function unix(timestamp) {\n var output = void 0;\n if (timestamp) {\n return this._getSyncedClass(timestamp * 1000);\n } else {\n var str = this.State.gDate.valueOf().toString();\n output = str.substring(0, str.length - 3);\n }\n return parseInt(output);\n }\n\n /**\n * @returns {*}\n */\n\n }, {\n key: 'valueOf',\n value: function valueOf() {\n return this.State.gDate.valueOf();\n }\n\n /**\n * @param year\n * @param month\n * @returns {*}\n * @since 1.0.0\n */\n\n }, {\n key: 'getFirstWeekDayOfMonth',\n\n\n /**\n * @param year\n * @param month\n * @returns {*}\n * @since 1.0.0\n */\n value: function getFirstWeekDayOfMonth(year, month) {\n return this._getSyncedClass([year, month, 1]).day();\n }\n\n /**\n * @param input\n * @param val\n * @param asFloat\n * @returns {*}\n */\n\n }, {\n key: 'diff',\n value: function diff(input, val, asFloat) {\n var self = this,\n inputMoment = input,\n zoneDiff = 0,\n diff = self.State.gDate - inputMoment.toDate() - zoneDiff,\n year = self.year() - inputMoment.year(),\n month = self.month() - inputMoment.month(),\n date = (self.date() - inputMoment.date()) * -1,\n output = void 0;\n\n if (val === 'months' || val === 'month') {\n output = year * 12 + month + date / 30;\n } else if (val === 'years' || val === 'year') {\n output = year + (month + date / 30) / 12;\n } else {\n output = val === 'seconds' || val === 'second' ? diff / 1e3 : // 1000\n val === 'minutes' || val === 'minute' ? diff / 6e4 : // 1000 * 60\n val === 'hours' || val === 'hour' ? diff / 36e5 : // 1000 * 60 * 60\n val === 'days' || val === 'day' ? diff / 864e5 : // 1000 * 60 * 60 * 24\n val === 'weeks' || val === 'week' ? diff / 6048e5 : // 1000 * 60 * 60 * 24 * 7\n diff;\n }\n return asFloat ? output : Math.round(output);\n }\n\n /**\n * @param key\n * @returns {*}\n */\n\n }, {\n key: 'startOf',\n value: function startOf(key) {\n var syncedCelander = PersianDateClass.toCalendar(this.calendarType).toLocale(this.localType);\n var newArray = new PersianDateClass(this.valueOf() - (this.calendar().weekday - 1) * 86400000).toArray();\n // Simplify this\\\n /* jshint ignore:start */\n switch (key) {\n case 'years':\n case 'year':\n return new syncedCelander([this.year(), 1, 1]);\n case 'months':\n case 'month':\n return new syncedCelander([this.year(), this.month(), 1]);\n case 'days':\n case 'day':\n return new syncedCelander([this.year(), this.month(), this.date(), 0, 0, 0]);\n case 'hours':\n case 'hour':\n return new syncedCelander([this.year(), this.month(), this.date(), this.hours(), 0, 0]);\n case 'minutes':\n case 'minute':\n return new syncedCelander([this.year(), this.month(), this.date(), this.hours(), this.minutes(), 0]);\n case 'seconds':\n case 'second':\n return new syncedCelander([this.year(), this.month(), this.date(), this.hours(), this.minutes(), this.seconds()]);\n case 'weeks':\n case 'week':\n return new syncedCelander(newArray);\n default:\n return this.clone();\n }\n /* jshint ignore:end */\n }\n\n /**\n * @param key\n * @returns {*}\n */\n /* eslint-disable no-case-declarations */\n\n }, {\n key: 'endOf',\n value: function endOf(key) {\n var syncedCelander = PersianDateClass.toCalendar(this.calendarType).toLocale(this.localType);\n // Simplify this\n switch (key) {\n case 'years':\n case 'year':\n var days = this.isLeapYear() ? 30 : 29;\n return new syncedCelander([this.year(), 12, days, 23, 59, 59]);\n case 'months':\n case 'month':\n var monthDays = this.daysInMonth(this.year(), this.month());\n return new syncedCelander([this.year(), this.month(), monthDays, 23, 59, 59]);\n case 'days':\n case 'day':\n return new syncedCelander([this.year(), this.month(), this.date(), 23, 59, 59]);\n case 'hours':\n case 'hour':\n return new syncedCelander([this.year(), this.month(), this.date(), this.hours(), 59, 59]);\n case 'minutes':\n case 'minute':\n return new syncedCelander([this.year(), this.month(), this.date(), this.hours(), this.minutes(), 59]);\n case 'seconds':\n case 'second':\n return new syncedCelander([this.year(), this.month(), this.date(), this.hours(), this.minutes(), this.seconds()]);\n case 'weeks':\n case 'week':\n var weekDayNumber = this.calendar().weekday;\n return new syncedCelander([this.year(), this.month(), this.date() + (7 - weekDayNumber)]);\n default:\n return this.clone();\n }\n /* eslint-enable no-case-declarations */\n }\n\n /**\n * @returns {*}\n */\n\n }, {\n key: 'sod',\n value: function sod() {\n return this.startOf('day');\n }\n\n /**\n * @returns {*}\n */\n\n }, {\n key: 'eod',\n value: function eod() {\n return this.endOf('day');\n }\n\n /** Get the timezone offset in minutes.\n * @return {*}\n */\n\n }, {\n key: 'zone',\n value: function zone(input) {\n if (input || input === 0) {\n this.State.zone = input;\n return this;\n } else {\n return this.State.zone;\n }\n }\n\n /**\n * @returns {PersianDate}\n */\n\n }, {\n key: 'local',\n value: function local() {\n var utcStamp = void 0;\n if (this._utcMode) {\n var ThatDayOffset = new Date(this.toDate()).getTimezoneOffset();\n var offsetMils = ThatDayOffset * 60 * 1000;\n if (ThatDayOffset < 0) {\n utcStamp = this.valueOf() - offsetMils;\n } else {\n /* istanbul ignore next */\n utcStamp = this.valueOf() + offsetMils;\n }\n this.toCalendar(PersianDateClass.calendarType);\n var utcDate = new Date(utcStamp);\n this._gDateToCalculators(utcDate);\n this._utcMode = false;\n this.zone(ThatDayOffset);\n return this;\n } else {\n return this;\n }\n }\n\n /**\n * @param input\n * @return {*}\n */\n\n }, {\n key: 'utc',\n\n\n /**\n * @description Current date/time in UTC mode\n * @param input\n * @returns {*}\n */\n value: function utc(input) {\n var utcStamp = void 0;\n if (input) {\n return this._getSyncedClass(input).utc();\n }\n if (this._utcMode) {\n return this;\n } else {\n var offsetMils = this.zone() * 60 * 1000;\n if (this.zone() < 0) {\n utcStamp = this.valueOf() + offsetMils;\n } else {\n /* istanbul ignore next */\n utcStamp = this.valueOf() - offsetMils;\n }\n var utcDate = new Date(utcStamp),\n d = this._getSyncedClass(utcDate);\n this.algorithmsCalc(d);\n this._utcMode = true;\n this.zone(0);\n return this;\n }\n }\n\n /**\n * @returns {boolean}\n */\n\n }, {\n key: 'isUtc',\n value: function isUtc() {\n return this._utcMode;\n }\n\n /**\n * @returns {boolean}\n * @link https://fa.wikipedia.org/wiki/%D8%B3%D8%A7%D8%B9%D8%AA_%D8%AA%D8%A7%D8%A8%D8%B3%D8%AA%D8%A7%D9%86%DB%8C\n */\n\n }, {\n key: 'isDST',\n value: function isDST() {\n var month = this.month(),\n day = this.date();\n if (month == 1 && day > 1 || month == 6 && day < 31 || month < 6 && month >= 2) {\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @returns {boolean}\n */\n\n }, {\n key: 'isLeapYear',\n value: function isLeapYear(year) {\n if (year === undefined) {\n year = this.year();\n }\n if (this.calendarType == 'persian' && this.leapYearMode === 'algorithmic') {\n return this.algorithms.leap_persian(year);\n }\n if (this.calendarType == 'persian' && this.leapYearMode === 'astronomical') {\n return this.algorithms.leap_persiana(year);\n } else if (this.calendarType == 'gregorian') {\n return this.algorithms.leap_gregorian(year);\n }\n }\n\n /**\n * @param yearInput\n * @param monthInput\n * @returns {number}\n */\n\n }, {\n key: 'daysInMonth',\n value: function daysInMonth(yearInput, monthInput) {\n var year = yearInput ? yearInput : this.year(),\n month = monthInput ? monthInput : this.month();\n if (this.calendarType === 'persian') {\n if (month < 1 || month > 12) return 0;\n if (month < 7) return 31;\n if (month < 12) return 30;\n if (this.isLeapYear(year)) {\n return 30;\n }\n return 29;\n }\n if (this.calendarType === 'gregorian') {\n return new Date(year, month, 0).getDate();\n }\n }\n\n /**\n * @description Return Native Javascript Date\n * @returns {*|PersianDate.gDate}\n */\n\n }, {\n key: 'toDate',\n value: function toDate() {\n return this.State.gDate;\n }\n\n /**\n * @description Returns Array Of Persian Date\n * @returns {array}\n */\n\n }, {\n key: 'toArray',\n value: function toArray() {\n return [this.year(), this.month(), this.date(), this.hour(), this.minute(), this.second(), this.millisecond()];\n }\n\n /**\n * @returns {*}\n */\n\n }, {\n key: 'formatNumber',\n value: function formatNumber() {\n var output = void 0,\n self = this;\n\n // if default conf dosent set follow golbal config\n if (this.formatPersian === '_default') {\n if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n /* istanbul ignore next */\n if (self.formatPersian === false) {\n output = false;\n } else {\n // Default Conf\n output = true;\n }\n }\n /* istanbul ignore next */\n else {\n if (window.formatPersian === false) {\n output = false;\n } else {\n // Default Conf\n output = true;\n }\n }\n } else {\n if (this.formatPersian === true) {\n output = true;\n } else if (this.formatPersian === false) {\n output = false;\n } else {\n Error('Invalid Config \"formatPersian\" !!');\n }\n }\n return output;\n }\n\n /**\n * @param inputString\n * @returns {*}\n */\n\n }, {\n key: 'format',\n value: function format(inputString) {\n if (this.State.isInvalidDate) {\n return false;\n }\n var self = this,\n formattingTokens = /([[^[]*])|(\\\\)?(Mo|MM?M?M?|Do|DD?D?D?|dddddd?|ddddd?|dddd?|do?|w[o|w]?|YYYY|YY|a|A|hh?|HH?|mm?|ss?|SS?S?|zz?|ZZ?|X|LT|ll?l?l?|LL?L?L?)/g,\n info = {\n year: self.year(),\n month: self.month(),\n hour: self.hours(),\n minute: self.minutes(),\n second: self.seconds(),\n date: self.date(),\n timezone: self.zone(),\n unix: self.unix()\n },\n formatToPersian = self.formatNumber();\n\n var checkPersian = function checkPersian(i) {\n if (formatToPersian) {\n return toPersianDigit(i);\n } else {\n return i;\n }\n };\n\n /* jshint ignore:start */\n function replaceFunction(input) {\n switch (input) {\n // AM/PM\n case 'a':\n {\n if (formatToPersian) return info.hour >= 12 ? 'ب ظ' : 'ق ظ';else return info.hour >= 12 ? 'PM' : 'AM';\n }\n // Hours (Int)\n case 'H':\n {\n return checkPersian(info.hour);\n }\n case 'HH':\n {\n return checkPersian(leftZeroFill(info.hour, 2));\n }\n case 'h':\n {\n return checkPersian(info.hour % 12);\n }\n case 'hh':\n {\n return checkPersian(leftZeroFill(info.hour % 12, 2));\n }\n // Minutes\n case 'm':\n {\n return checkPersian(leftZeroFill(info.minute, 2));\n }\n // Two Digit Minutes\n case 'mm':\n {\n return checkPersian(leftZeroFill(info.minute, 2));\n }\n // Second\n case 's':\n {\n return checkPersian(info.second);\n }\n case 'ss':\n {\n return checkPersian(leftZeroFill(info.second, 2));\n }\n // Day (Int)\n case 'D':\n {\n return checkPersian(leftZeroFill(info.date));\n }\n // Return Two Digit\n case 'DD':\n {\n return checkPersian(leftZeroFill(info.date, 2));\n }\n // Return day Of Month\n case 'DDD':\n {\n var t = self.startOf('year');\n return checkPersian(leftZeroFill(self.diff(t, 'days'), 3));\n }\n // Return Day of Year\n case 'DDDD':\n {\n var _t = self.startOf('year');\n return checkPersian(leftZeroFill(self.diff(_t, 'days'), 3));\n }\n // Return day Of week\n case 'd':\n {\n return checkPersian(self.calendar().weekday);\n }\n // Return week day name abbr\n case 'ddd':\n {\n return self._weekNameShort(self.calendar().weekday);\n }\n case 'dddd':\n {\n return self._weekName(self.calendar().weekday);\n }\n // Return Persian Day Name\n case 'ddddd':\n {\n return self._dayName(self.calendar().day);\n }\n // Return Persian Day Name\n case 'dddddd':\n {\n return self._weekNameMin(self.calendar().weekday);\n }\n // Return Persian Day Name\n case 'w':\n {\n var _t2 = self.startOf('year'),\n day = parseInt(self.diff(_t2, 'days') / 7) + 1;\n return checkPersian(day);\n }\n // Return Persian Day Name\n case 'ww':\n {\n var _t3 = self.startOf('year'),\n _day = leftZeroFill(parseInt(self.diff(_t3, 'days') / 7) + 1, 2);\n return checkPersian(_day);\n }\n // Month (Int)\n case 'M':\n {\n return checkPersian(info.month);\n }\n // Two Digit Month (Str)\n case 'MM':\n {\n return checkPersian(leftZeroFill(info.month, 2));\n }\n // Abbr String of Month (Str)\n case 'MMM':\n {\n return self._monthNameShort(info.month);\n }\n // Full String name of Month (Str)\n case 'MMMM':\n {\n return self._monthName(info.month);\n }\n // Year\n // Two Digit Year (Str)\n case 'YY':\n {\n var yearDigitArray = info.year.toString().split('');\n return checkPersian(yearDigitArray[2] + yearDigitArray[3]);\n }\n // Full Year (Int)\n case 'YYYY':\n {\n return checkPersian(info.year);\n }\n /* istanbul ignore next */\n case 'Z':\n {\n var flag = '+',\n hours = Math.round(info.timezone / 60),\n minutes = info.timezone % 60;\n\n if (minutes < 0) {\n minutes *= -1;\n }\n if (hours < 0) {\n flag = '-';\n hours *= -1;\n }\n\n var z = flag + leftZeroFill(hours, 2) + ':' + leftZeroFill(minutes, 2);\n return checkPersian(z);\n }\n /* istanbul ignore next */\n case 'ZZ':\n {\n var _flag = '+',\n _hours = Math.round(info.timezone / 60),\n _minutes = info.timezone % 60;\n\n if (_minutes < 0) {\n _minutes *= -1;\n }\n if (_hours < 0) {\n _flag = '-';\n _hours *= -1;\n }\n var _z = _flag + leftZeroFill(_hours, 2) + '' + leftZeroFill(_minutes, 2);\n return checkPersian(_z);\n }\n /* istanbul ignore next */\n case 'X':\n {\n return self.unix();\n }\n // 8:30 PM\n case 'LT':\n {\n return self.format('H:m a');\n }\n // 09/04/1986\n case 'L':\n {\n return self.format('YYYY/MM/DD');\n }\n // 9/4/1986\n case 'l':\n {\n return self.format('YYYY/M/D');\n }\n // September 4th 1986\n case 'LL':\n {\n return self.format('MMMM DD YYYY');\n }\n // Sep 4 1986\n case 'll':\n {\n return self.format('MMM DD YYYY');\n }\n //September 4th 1986 8:30 PM\n case 'LLL':\n {\n return self.format('MMMM YYYY DD H:m a');\n }\n // Sep 4 1986 8:30 PM\n case 'lll':\n {\n return self.format('MMM YYYY DD H:m a');\n }\n //Thursday, September 4th 1986 8:30 PM\n case 'LLLL':\n {\n return self.format('dddd D MMMM YYYY H:m a');\n }\n // Thu, Sep 4 1986 8:30 PM\n case 'llll':\n {\n return self.format('ddd D MMM YYYY H:m a');\n }\n }\n }\n\n /* jshint ignore:end */\n\n if (inputString) {\n return inputString.replace(formattingTokens, replaceFunction);\n } else {\n var _inputString = 'YYYY-MM-DD HH:mm:ss a';\n return _inputString.replace(formattingTokens, replaceFunction);\n }\n }\n\n /**\n * @param key\n * @param value\n * @returns {PersianDate}\n */\n\n }, {\n key: 'add',\n value: function add(key, value) {\n if (value === 0) {\n return this;\n }\n var unit = normalizeDuration(key, value).unit,\n arr = this.toArray();\n value = normalizeDuration(key, value).value;\n if (unit === 'year') {\n var normalizedDate = arr[2],\n monthDays = this.daysInMonth(arr[0] + value, arr[1]);\n if (arr[2] > monthDays) {\n normalizedDate = monthDays;\n }\n var tempDate = new PersianDateClass([arr[0] + value, arr[1], normalizedDate, arr[3], arr[4], arr[5], arr[6], arr[7]]);\n return tempDate;\n }\n if (unit === 'month') {\n var tempYear = Math.floor(value / 12);\n var remainingMonth = value - tempYear * 12,\n calcedMonth = null;\n if (arr[1] + remainingMonth > 12) {\n tempYear += 1;\n calcedMonth = arr[1] + remainingMonth - 12;\n } else {\n calcedMonth = arr[1] + remainingMonth;\n }\n var normalizaedDate = arr[2],\n tempDateArray = new PersianDateClass([arr[0] + tempYear, calcedMonth, 1, arr[3], arr[4], arr[5], arr[6], arr[7]]).toArray(),\n _monthDays = this.daysInMonth(arr[0] + tempYear, calcedMonth);\n if (arr[2] > _monthDays) {\n normalizaedDate = _monthDays;\n }\n return new PersianDateClass([tempDateArray[0], tempDateArray[1], normalizaedDate, tempDateArray[3], tempDateArray[4], tempDateArray[5], tempDateArray[6], tempDateArray[7]]);\n }\n if (unit === 'day') {\n var calcedDay = new PersianDateClass(this.valueOf()).hour(12),\n newMillisecond = calcedDay.valueOf() + value * 86400000,\n newDate = new PersianDateClass(newMillisecond);\n return newDate.hour(arr[3]);\n }\n if (unit === 'week') {\n var _calcedDay = new PersianDateClass(this.valueOf()).hour(12),\n _newMillisecond = _calcedDay.valueOf() + 7 * value * 86400000,\n _newDate = new PersianDateClass(_newMillisecond);\n return _newDate.hour(arr[3]);\n }\n if (unit === 'hour') {\n var _newMillisecond2 = this.valueOf() + value * 3600000;\n return this.unix(_newMillisecond2 / 1000);\n }\n if (unit === 'minute') {\n var _newMillisecond3 = this.valueOf() + value * 60000;\n return this.unix(_newMillisecond3 / 1000);\n }\n if (unit === 'second') {\n var _newMillisecond4 = this.valueOf() + value * 1000;\n return this.unix(_newMillisecond4 / 1000);\n }\n if (unit === 'millisecond') {\n var _newMillisecond5 = this.valueOf() + value;\n return this.unix(_newMillisecond5 / 1000);\n }\n return this._getSyncedClass(this.valueOf());\n }\n\n /**\n * @param key\n * @param value\n * @returns {PersianDate}\n */\n\n }, {\n key: 'subtract',\n value: function subtract(key, value) {\n return this.add(key, value * -1);\n }\n\n /**\n * check if a date is same as b\n * @param dateA\n * @param dateB\n * @since 1.0.0\n * @return {boolean}\n * @static\n */\n\n }, {\n key: 'isSameDay',\n\n\n /**\n * @param dateB\n * @since 1.0.0\n * @return {PersianDateClass|*|boolean}\n */\n value: function isSameDay(dateB) {\n return this && dateB && this.date() == dateB.date() && this.year() == dateB.year() && this.month() == dateB.month();\n }\n\n /**\n * @desc check if a month is same as b\n * @param {Date} dateA\n * @param {Date} dateB\n * @return {boolean}\n * @since 1.0.0\n * @static\n */\n\n }, {\n key: 'isSameMonth',\n\n\n /**\n * @desc check two for month similarity\n * @param dateA\n * @param dateB\n * @since 1.0.0\n * @return {*|boolean}\n */\n value: function isSameMonth(dateB) {\n return this && dateB && this.year() == this.year() && this.month() == dateB.month();\n }\n }], [{\n key: 'rangeName',\n value: function rangeName() {\n var p = PersianDateClass,\n t = p.calendarType;\n if (p.localType === 'fa') {\n if (t === 'persian') {\n return fa.persian;\n } else {\n return fa.gregorian;\n }\n } else {\n if (t === 'persian') {\n return en.persian;\n } else {\n return en.gregorian;\n }\n }\n }\n }, {\n key: 'toLeapYearMode',\n value: function toLeapYearMode(input) {\n var d = PersianDateClass;\n d.leapYearMode = input;\n return d;\n }\n }, {\n key: 'toCalendar',\n value: function toCalendar(input) {\n var d = PersianDateClass;\n d.calendarType = input;\n return d;\n }\n\n /**\n * @since 1.0.0\n * @static\n * @param input\n * @return {PersianDateClass}\n */\n\n }, {\n key: 'toLocale',\n value: function toLocale(input) {\n var d = PersianDateClass;\n d.localType = input;\n if (d.localType !== 'fa') {\n d.formatPersian = false;\n } else {\n d.formatPersian = '_default';\n }\n return d;\n }\n }, {\n key: 'isPersianDate',\n value: function isPersianDate(obj) {\n return obj instanceof PersianDateClass;\n }\n }, {\n key: 'duration',\n value: function duration(input, key) {\n return new Duration(input, key);\n }\n }, {\n key: 'isDuration',\n value: function isDuration(obj) {\n return obj instanceof Duration;\n }\n }, {\n key: 'unix',\n value: function unix(timestamp) {\n if (timestamp) {\n return new PersianDateClass(timestamp * 1000);\n } else {\n return new PersianDateClass().unix();\n }\n }\n }, {\n key: 'getFirstWeekDayOfMonth',\n value: function getFirstWeekDayOfMonth(year, month) {\n return new PersianDateClass([year, month, 1]).day();\n }\n }, {\n key: 'utc',\n value: function utc(input) {\n if (input) {\n return new PersianDateClass(input).utc();\n } else {\n return new PersianDateClass().utc();\n }\n }\n }, {\n key: 'isSameDay',\n value: function isSameDay(dateA, dateB) {\n return dateA && dateB && dateA.date() == dateB.date() && dateA.year() == dateB.year() && dateA.month() == dateB.month();\n }\n }, {\n key: 'isSameMonth',\n value: function isSameMonth(dateA, dateB) {\n return dateA && dateB && dateA.year() == dateB.year() && dateA.month() == dateB.month();\n }\n }]);\n\n return PersianDateClass;\n}();\n\n/**\n * @type {PersianDateClass}\n */\n\n\nmodule.exports = PersianDateClass;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Start algorithm class\nvar ASTRO = __webpack_require__(3);\nvar State = __webpack_require__(9);\n\nvar Algorithms = function () {\n function Algorithms(parent) {\n _classCallCheck(this, Algorithms);\n\n this.parent = parent;\n this.ASTRO = new ASTRO();\n this.State = new State();\n /* You may notice that a variety of array variables logically local\n to functions are declared globally here. In JavaScript, construction\n of an array variable from source code occurs as the code is\n interpreted. Making these variables pseudo-globals permits us\n to avoid overhead constructing and disposing of them in each\n call on the function in which whey are used. */\n // TODO this block didnt used in main agorithm\n this.J0000 = 1721424.5; // Julian date of Gregorian epoch: 0000-01-01\n this.J1970 = 2440587.5; // Julian date at Unix epoch: 1970-01-01\n this.JMJD = 2400000.5; // Epoch of Modified Julian Date system\n this.NormLeap = [false /*\"Normal year\"*/, true /*\"Leap year\"*/];\n // TODO END\n this.GREGORIAN_EPOCH = 1721425.5;\n this.PERSIAN_EPOCH = 1948320.5;\n }\n\n /**\n * @desc LEAP_GREGORIAN -- Is a given year in the Gregorian calendar a leap year ?\n * @param year\n * @return {boolean}\n */\n\n\n _createClass(Algorithms, [{\n key: 'leap_gregorian',\n value: function leap_gregorian(year) {\n return year % 4 === 0 && !(year % 100 === 0 && year % 400 !== 0);\n }\n\n /**\n * @desc Determine Julian day number from Gregorian calendar date\n * @param {*} year\n * @param {*} month\n * @param {*} day\n */\n\n }, {\n key: 'gregorian_to_jd',\n value: function gregorian_to_jd(year, month, day) {\n return this.GREGORIAN_EPOCH - 1 + 365 * (year - 1) + Math.floor((year - 1) / 4) + -Math.floor((year - 1) / 100) + Math.floor((year - 1) / 400) + Math.floor((367 * month - 362) / 12 + (month <= 2 ? 0 : this.leap_gregorian(year) ? -1 : -2) + day);\n }\n\n /**\n * @desc Calculate Gregorian calendar date from Julian day\n * @param {*} jd\n */\n\n }, {\n key: 'jd_to_gregorian',\n value: function jd_to_gregorian(jd) {\n var wjd = void 0,\n depoch = void 0,\n quadricent = void 0,\n dqc = void 0,\n cent = void 0,\n dcent = void 0,\n quad = void 0,\n dquad = void 0,\n yindex = void 0,\n year = void 0,\n yearday = void 0,\n leapadj = void 0,\n month = void 0,\n day = void 0;\n\n wjd = Math.floor(jd - 0.5) + 0.5;\n depoch = wjd - this.GREGORIAN_EPOCH;\n quadricent = Math.floor(depoch / 146097);\n dqc = this.ASTRO.mod(depoch, 146097);\n cent = Math.floor(dqc / 36524);\n dcent = this.ASTRO.mod(dqc, 36524);\n quad = Math.floor(dcent / 1461);\n dquad = this.ASTRO.mod(dcent, 1461);\n yindex = Math.floor(dquad / 365);\n year = quadricent * 400 + cent * 100 + quad * 4 + yindex;\n if (!(cent === 4 || yindex === 4)) {\n year++;\n }\n yearday = wjd - this.gregorian_to_jd(year, 1, 1);\n leapadj = wjd < this.gregorian_to_jd(year, 3, 1) ? 0 : this.leap_gregorian(year) ? 1 : 2;\n month = Math.floor(((yearday + leapadj) * 12 + 373) / 367);\n day = wjd - this.gregorian_to_jd(year, month, 1) + 1;\n\n return [year, month, day];\n }\n\n /**\n * @param {*} year\n */\n // leap_julian (year) {\n // return this.ASTRO.mod(year, 4) === ((year > 0) ? 0 : 3);\n // }\n\n\n /**\n * @desc Calculate Julian calendar date from Julian day\n * @param {*} td\n */\n // jd_to_julian (td) {\n // let z, a, b, c, d, e, year, month, day;\n //\n // td += 0.5;\n // z = Math.floor(td);\n //\n // a = z;\n // b = a + 1524;\n // c = Math.floor((b - 122.1) / 365.25);\n // d = Math.floor(365.25 * c);\n // e = Math.floor((b - d) / 30.6001);\n //\n // month = Math.floor((e < 14) ? (e - 1) : (e - 13));\n // year = Math.floor((month > 2) ? (c - 4716) : (c - 4715));\n // day = b - d - Math.floor(30.6001 * e);\n //\n // /* If year is less than 1, subtract one to convert from\n // a zero based date system to the common era system in\n // which the year -1 (1 B.C.E) is followed by year 1 (1 C.E.). */\n //\n // if (year < 1) {\n // year--;\n // }\n //\n // return [year, month, day];\n // }\n\n\n /**\n * @desc TEHRAN_EQUINOX -- Determine Julian day and fraction of the\n March equinox at the Tehran meridian in\n a given Gregorian year.\n * @param {*} year\n */\n\n }, {\n key: 'tehran_equinox',\n value: function tehran_equinox(year) {\n var equJED = void 0,\n equJD = void 0,\n equAPP = void 0,\n equTehran = void 0,\n dtTehran = void 0;\n\n // March equinox in dynamical time\n equJED = this.ASTRO.equinox(year, 0);\n\n // Correct for delta T to obtain Universal time\n equJD = equJED - this.ASTRO.deltat(year) / (24 * 60 * 60);\n\n // Apply the equation of time to yield the apparent time at Greenwich\n equAPP = equJD + this.ASTRO.equationOfTime(equJED);\n\n /* Finally, we must correct for the constant difference between\n the Greenwich meridian andthe time zone standard for\n Iran Standard time, 52°30' to the East. */\n\n dtTehran = (52 + 30 / 60.0 + 0 / (60.0 * 60.0)) / 360;\n equTehran = equAPP + dtTehran;\n\n return equTehran;\n }\n\n /**\n * @desc TEHRAN_EQUINOX_JD -- Calculate Julian day during which the\n March equinox, reckoned from the Tehran\n meridian, occurred for a given Gregorian\n year.\n * @param {*} year\n */\n\n }, {\n key: 'tehran_equinox_jd',\n value: function tehran_equinox_jd(year) {\n var ep = void 0,\n epg = void 0;\n\n ep = this.tehran_equinox(year);\n epg = Math.floor(ep);\n\n return epg;\n }\n\n /**\n * @desc PERSIANA_YEAR -- Determine the year in the Persian\n astronomical calendar in which a\n given Julian day falls. Returns an\n array of two elements:\n [0] Persian year\n [1] Julian day number containing\n equinox for this year.\n * @param {*} jd\n */\n\n }, {\n key: 'persiana_year',\n value: function persiana_year(jd) {\n var guess = this.jd_to_gregorian(jd)[0] - 2,\n lasteq = void 0,\n nexteq = void 0,\n adr = void 0;\n\n lasteq = this.tehran_equinox_jd(guess);\n while (lasteq > jd) {\n guess--;\n lasteq = this.tehran_equinox_jd(guess);\n }\n nexteq = lasteq - 1;\n while (!(lasteq <= jd && jd < nexteq)) {\n lasteq = nexteq;\n guess++;\n nexteq = this.tehran_equinox_jd(guess);\n }\n adr = Math.round((lasteq - this.PERSIAN_EPOCH) / this.ASTRO.TropicalYear) + 1;\n\n return [adr, lasteq];\n }\n\n /**\n * @desc Calculate date in the Persian astronomical\n calendar from Julian day.\n * @param {*} jd\n */\n\n }, {\n key: 'jd_to_persiana',\n value: function jd_to_persiana(jd) {\n var year = void 0,\n month = void 0,\n day = void 0,\n adr = void 0,\n equinox = void 0,\n yday = void 0;\n\n jd = Math.floor(jd) + 0.5;\n adr = this.persiana_year(jd);\n year = adr[0];\n equinox = adr[1];\n day = Math.floor((jd - equinox) / 30) + 1;\n\n yday = Math.floor(jd) - this.persiana_to_jd(year, 1, 1) + 1;\n month = yday <= 186 ? Math.ceil(yday / 31) : Math.ceil((yday - 6) / 30);\n day = Math.floor(jd) - this.persiana_to_jd(year, month, 1) + 1;\n\n return [year, month, day];\n }\n\n /**\n * @desc Obtain Julian day from a given Persian\n astronomical calendar date.\n * @param {*} year\n * @param {*} month\n * @param {*} day\n */\n\n }, {\n key: 'persiana_to_jd',\n value: function persiana_to_jd(year, month, day) {\n var adr = void 0,\n equinox = void 0,\n guess = void 0,\n jd = void 0;\n\n guess = this.PERSIAN_EPOCH - 1 + this.ASTRO.TropicalYear * (year - 1 - 1);\n adr = [year - 1, 0];\n\n while (adr[0] < year) {\n adr = this.persiana_year(guess);\n guess = adr[1] + (this.ASTRO.TropicalYear + 2);\n }\n equinox = adr[1];\n\n jd = equinox + (month <= 7 ? (month - 1) * 31 : (month - 1) * 30 + 6) + (day - 1);\n return jd;\n }\n\n /**\n * @desc Is a given year a leap year in the Persian astronomical calendar ?\n * @param {*} year\n */\n\n }, {\n key: 'leap_persiana',\n value: function leap_persiana(year) {\n return this.persiana_to_jd(year + 1, 1, 1) - this.persiana_to_jd(year, 1, 1) > 365;\n }\n\n /**\n * @desc Is a given year a leap year in the Persian calendar ?\n * also nasa use this algorithm https://eclipse.gsfc.nasa.gov/SKYCAL/algorithm.js search for 'getLastDayOfPersianMonth' and you can find it\n * @param {*} year\n *\n */\n\n }, {\n key: 'leap_persian',\n value: function leap_persian(year) {\n return ((year - (year > 0 ? 474 : 473)) % 2820 + 474 + 38) * 682 % 2816 < 682;\n }\n\n /**\n * @desc Determine Julian day from Persian date\n * @param {*} year\n * @param {*} month\n * @param {*} day\n */\n\n }, {\n key: 'persian_to_jd',\n value: function persian_to_jd(year, month, day) {\n var epbase = void 0,\n epyear = void 0;\n\n epbase = year - (year >= 0 ? 474 : 473);\n epyear = 474 + this.ASTRO.mod(epbase, 2820);\n\n return day + (month <= 7 ? (month - 1) * 31 : (month - 1) * 30 + 6) + Math.floor((epyear * 682 - 110) / 2816) + (epyear - 1) * 365 + Math.floor(epbase / 2820) * 1029983 + (this.PERSIAN_EPOCH - 1);\n }\n\n /**\n * @desc Calculate Persian date from Julian day\n * @param {*} jd\n */\n\n }, {\n key: 'jd_to_persian',\n value: function jd_to_persian(jd) {\n var year = void 0,\n month = void 0,\n day = void 0,\n depoch = void 0,\n cycle = void 0,\n cyear = void 0,\n ycycle = void 0,\n aux1 = void 0,\n aux2 = void 0,\n yday = void 0;\n\n jd = Math.floor(jd) + 0.5;\n\n depoch = jd - this.persian_to_jd(475, 1, 1);\n cycle = Math.floor(depoch / 1029983);\n cyear = this.ASTRO.mod(depoch, 1029983);\n if (cyear === 1029982) {\n ycycle = 2820;\n } else {\n aux1 = Math.floor(cyear / 366);\n aux2 = this.ASTRO.mod(cyear, 366);\n ycycle = Math.floor((2134 * aux1 + 2816 * aux2 + 2815) / 1028522) + aux1 + 1;\n }\n year = ycycle + 2820 * cycle + 474;\n if (year <= 0) {\n year--;\n }\n yday = jd - this.persian_to_jd(year, 1, 1) + 1;\n month = yday <= 186 ? Math.ceil(yday / 31) : Math.ceil((yday - 6) / 30);\n day = jd - this.persian_to_jd(year, month, 1) + 1;\n return [year, month, day];\n }\n\n /**\n *\n * @param {*} weekday\n */\n\n }, {\n key: 'gWeekDayToPersian',\n value: function gWeekDayToPersian(weekday) {\n if (weekday + 2 === 8) {\n return 1;\n } else if (weekday + 2 === 7) {\n return 7;\n } else {\n return weekday + 2;\n }\n }\n\n /**\n * @desc updateFromGregorian -- Update all calendars from Gregorian.\n \"Why not Julian date?\" you ask. Because\n starting from Gregorian guarantees we're\n already snapped to an integral second, so\n we don't get roundoff errors in other\n calendars.\n */\n\n }, {\n key: 'updateFromGregorian',\n value: function updateFromGregorian() {\n var j = void 0,\n year = void 0,\n mon = void 0,\n mday = void 0,\n hour = void 0,\n min = void 0,\n sec = void 0,\n weekday = void 0,\n utime = void 0,\n perscal = void 0;\n\n year = this.State.gregorian.year;\n mon = this.State.gregorian.month;\n mday = this.State.gregorian.day;\n hour = 0; //this.State.gregorian.hour;\n min = 0; //this.State.gregorian.minute;\n sec = 0; //this.State.gregorian.second;\n\n this.State.gDate = new Date(year, mon, mday, this.State.gregorian.hour, this.State.gregorian.minute, this.State.gregorian.second, this.State.gregorian.millisecond);\n\n if (this.parent._utcMode === false) {\n this.State.zone = this.State.gDate.getTimezoneOffset();\n }\n\n // Added for this algorithms cant parse 2016,13,32 successfully\n this.State.gregorian.year = this.State.gDate.getFullYear();\n this.State.gregorian.month = this.State.gDate.getMonth();\n this.State.gregorian.day = this.State.gDate.getDate();\n\n // Update Julian day\n // ---------------------------------------------------------------------------\n j = this.gregorian_to_jd(year, mon + 1, mday) + Math.floor(sec + 60 * (min + 60 * hour) + 0.5) / 86400.0;\n\n this.State.julianday = j;\n this.State.modifiedjulianday = j - this.JMJD;\n\n // Update day of week in Gregorian box\n // ---------------------------------------------------------------------------\n weekday = this.ASTRO.jwday(j);\n // Move to 1 indexed number\n this.State.gregorian.weekday = weekday + 1;\n\n // Update leap year status in Gregorian box\n // ---------------------------------------------------------------------------\n this.State.gregorian.leap = this.NormLeap[this.leap_gregorian(year) ? 1 : 0];\n\n // Update Julian Calendar\n // ---------------------------------------------------------------------------\n // julcal = this.jd_to_julian(j);\n //\n // this.State.juliancalendar.year = julcal[0];\n // this.State.juliancalendar.month = julcal[1] - 1;\n // this.State.juliancalendar.day = julcal[2];\n // this.State.juliancalendar.leap = this.NormLeap[this.leap_julian(julcal[0]) ? 1 : 0];\n weekday = this.ASTRO.jwday(j);\n // this.State.juliancalendar.weekday = weekday;\n\n // Update Persian Calendar\n // ---------------------------------------------------------------------------\n if (this.parent.calendarType == 'persian' && this.parent.leapYearMode == 'algorithmic') {\n perscal = this.jd_to_persian(j);\n this.State.persian.year = perscal[0];\n this.State.persian.month = perscal[1] - 1;\n this.State.persian.day = perscal[2];\n this.State.persian.weekday = this.gWeekDayToPersian(weekday);\n this.State.persian.leap = this.NormLeap[this.leap_persian(perscal[0]) ? 1 : 0];\n }\n\n // Update Persian Astronomical Calendar\n // ---------------------------------------------------------------------------\n if (this.parent.calendarType == 'persian' && this.parent.leapYearMode == 'astronomical') {\n perscal = this.jd_to_persiana(j);\n this.State.persianAstro.year = perscal[0];\n this.State.persianAstro.month = perscal[1] - 1;\n this.State.persianAstro.day = perscal[2];\n this.State.persianAstro.weekday = this.gWeekDayToPersian(weekday);\n this.State.persianAstro.leap = this.NormLeap[this.leap_persiana(perscal[0]) ? 1 : 0];\n }\n // Update Gregorian serial number\n // ---------------------------------------------------------------------------\n if (this.State.gregserial.day !== null) {\n this.State.gregserial.day = j - this.J0000;\n }\n\n // Update Unix time()\n // ---------------------------------------------------------------------------\n utime = (j - this.J1970) * (60 * 60 * 24 * 1000);\n\n this.State.unixtime = Math.round(utime / 1000);\n }\n\n /**\n * @desc Perform calculation starting with a Gregorian date\n * @param {*} dateArray\n */\n\n }, {\n key: 'calcGregorian',\n value: function calcGregorian(dateArray) {\n if (dateArray[0] || dateArray[0] === 0) {\n this.State.gregorian.year = dateArray[0];\n }\n if (dateArray[1] || dateArray[1] === 0) {\n this.State.gregorian.month = dateArray[1];\n }\n if (dateArray[2] || dateArray[2] === 0) {\n this.State.gregorian.day = dateArray[2];\n }\n if (dateArray[3] || dateArray[3] === 0) {\n this.State.gregorian.hour = dateArray[3];\n }\n if (dateArray[4] || dateArray[4] === 0) {\n this.State.gregorian.minute = dateArray[4];\n }\n if (dateArray[5] || dateArray[5] === 0) {\n this.State.gregorian.second = dateArray[5];\n }\n if (dateArray[6] || dateArray[6] === 0) {\n this.State.gregorian.millisecond = dateArray[6];\n }\n this.updateFromGregorian();\n }\n\n /**\n * @desc Perform calculation starting with a Julian date\n */\n\n }, {\n key: 'calcJulian',\n value: function calcJulian() {\n var j = void 0,\n date = void 0;\n j = this.State.julianday;\n date = this.jd_to_gregorian(j);\n this.State.gregorian.year = date[0];\n this.State.gregorian.month = date[1] - 1;\n this.State.gregorian.day = date[2];\n // this.State.gregorian.hour = this.pad(time[0], 2, \" \");\n // this.State.gregorian.minute = this.pad(time[1], 2, \"0\");\n // this.State.gregorian.second = this.pad(time[2], 2, \"0\");\n this.updateFromGregorian();\n }\n\n /**\n * @desc Set Julian date and update all calendars\n * @param {*} j\n */\n\n }, {\n key: 'setJulian',\n value: function setJulian(j) {\n this.State.julianday = j;\n this.calcJulian();\n }\n\n /**\n * @desc Update from Persian calendar\n * @param {*} dateArray\n */\n\n }, {\n key: 'calcPersian',\n value: function calcPersian(dateArray) {\n if (dateArray[0] || dateArray[0] === 0) {\n this.State.persian.year = dateArray[0];\n }\n if (dateArray[1] || dateArray[1] === 0) {\n this.State.persian.month = dateArray[1];\n }\n if (dateArray[2] || dateArray[2] === 0) {\n this.State.persian.day = dateArray[2];\n }\n if (dateArray[3] || dateArray[3] === 0) {\n this.State.gregorian.hour = dateArray[3];\n }\n if (dateArray[4] || dateArray[4] === 0) {\n this.State.gregorian.minute = dateArray[4];\n }\n if (dateArray[5] || dateArray[5] === 0) {\n this.State.gregorian.second = dateArray[5];\n }\n if (dateArray[6] || dateArray[6] === 0) {\n this.State.gregorian.millisecond = dateArray[6];\n }\n\n this.setJulian(this.persian_to_jd(this.State.persian.year, this.State.persian.month, this.State.persian.day));\n }\n\n /**\n * @desc Update from Persian astronomical calendar\n * @param {*} dateArray\n */\n\n }, {\n key: 'calcPersiana',\n value: function calcPersiana(dateArray) {\n if (dateArray[0] || dateArray[0] === 0) {\n this.State.persianAstro.year = dateArray[0];\n }\n if (dateArray[1] || dateArray[1] === 0) {\n this.State.persianAstro.month = dateArray[1];\n }\n if (dateArray[2] || dateArray[2] === 0) {\n this.State.persianAstro.day = dateArray[2];\n }\n\n if (dateArray[3] || dateArray[3] === 0) {\n this.State.gregorian.hour = dateArray[3];\n }\n if (dateArray[4] || dateArray[4] === 0) {\n this.State.gregorian.minute = dateArray[4];\n }\n if (dateArray[5] || dateArray[5] === 0) {\n this.State.gregorian.second = dateArray[5];\n }\n if (dateArray[6] || dateArray[6] === 0) {\n this.State.gregorian.millisecond = dateArray[6];\n }\n this.setJulian(this.persiana_to_jd(this.State.persianAstro.year, this.State.persianAstro.month, this.State.persianAstro.day + 0.5));\n }\n }]);\n\n return Algorithms;\n}();\n\nmodule.exports = Algorithms;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/*\n JavaScript functions for positional astronomy\n by John Walker -- September, MIM\n http://www.fourmilab.ch/\n This program is in the public domain.\n */\n\nvar ASTRO = function () {\n function ASTRO() {\n _classCallCheck(this, ASTRO);\n\n // Frequently-used constants\n this.J2000 = 2451545.0; // Julian day of J2000 epoch\n this.JulianCentury = 36525.0; // Days in Julian century\n this.JulianMillennium = this.JulianCentury * 10; // Days in Julian millennium\n // this.AstronomicalUnit = 149597870.0; // Astronomical unit in kilometres\n this.TropicalYear = 365.24219878; // Mean solar tropical year\n\n /* OBLIQEQ -- Calculate the obliquity of the ecliptic for a given\n Julian date. This uses Laskar's tenth-degree\n polynomial fit (J. Laskar, Astronomy and\n Astrophysics, Vol. 157, page 68 [1986]) which is\n accurate to within 0.01 arc second between AD 1000\n and AD 3000, and within a few seconds of arc for\n +/-10000 years around AD 2000. If we're outside the\n range in which this fit is valid (deep time) we\n simply return the J2000 value of the obliquity, which\n happens to be almost precisely the mean. */\n this.oterms = [-4680.93, -1.55, 1999.25, -51.38, -249.67, -39.05, 7.12, 27.87, 5.79, 2.45];\n /* Periodic terms for nutation in longiude (delta \\Psi) and\n obliquity (delta \\Epsilon) as given in table 21.A of\n Meeus, \"Astronomical Algorithms\", first edition. */\n this.nutArgMult = [0, 0, 0, 0, 1, -2, 0, 0, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, -2, 1, 0, 2, 2, 0, 0, 0, 2, 1, 0, 0, 1, 2, 2, -2, -1, 0, 2, 2, -2, 0, 1, 0, 0, -2, 0, 0, 2, 1, 0, 0, -1, 2, 2, 2, 0, 0, 0, 0, 0, 0, 1, 0, 1, 2, 0, -1, 2, 2, 0, 0, -1, 0, 1, 0, 0, 1, 2, 1, -2, 0, 2, 0, 0, 0, 0, -2, 2, 1, 2, 0, 0, 2, 2, 0, 0, 2, 2, 2, 0, 0, 2, 0, 0, -2, 0, 1, 2, 2, 0, 0, 0, 2, 0, -2, 0, 0, 2, 0, 0, 0, -1, 2, 1, 0, 2, 0, 0, 0, 2, 0, -1, 0, 1, -2, 2, 0, 2, 2, 0, 1, 0, 0, 1, -2, 0, 1, 0, 1, 0, -1, 0, 0, 1, 0, 0, 2, -2, 0, 2, 0, -1, 2, 1, 2, 0, 1, 2, 2, 0, 1, 0, 2, 2, -2, 1, 1, 0, 0, 0, -1, 0, 2, 2, 2, 0, 0, 2, 1, 2, 0, 1, 0, 0, -2, 0, 2, 2, 2, -2, 0, 1, 2, 1, 2, 0, -2, 0, 1, 2, 0, 0, 0, 1, 0, -1, 1, 0, 0, -2, -1, 0, 2, 1, -2, 0, 0, 0, 1, 0, 0, 2, 2, 1, -2, 0, 2, 0, 1, -2, 1, 0, 2, 1, 0, 0, 1, -2, 0, -1, 0, 1, 0, 0, -2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, -1, -1, 1, 0, 0, 0, 1, 1, 0, 0, 0, -1, 1, 2, 2, 2, -1, -1, 2, 2, 0, 0, -2, 2, 2, 0, 0, 3, 2, 2, 2, -1, 0, 2, 2];\n\n this.nutArgCoeff = [-171996, -1742, 92095, 89, /* 0, 0, 0, 0, 1 */\n -13187, -16, 5736, -31, /* -2, 0, 0, 2, 2 */\n -2274, -2, 977, -5, /* 0, 0, 0, 2, 2 */\n 2062, 2, -895, 5, /* 0, 0, 0, 0, 2 */\n 1426, -34, 54, -1, /* 0, 1, 0, 0, 0 */\n 712, 1, -7, 0, /* 0, 0, 1, 0, 0 */\n -517, 12, 224, -6, /* -2, 1, 0, 2, 2 */\n -386, -4, 200, 0, /* 0, 0, 0, 2, 1 */\n -301, 0, 129, -1, /* 0, 0, 1, 2, 2 */\n 217, -5, -95, 3, /* -2, -1, 0, 2, 2 */\n -158, 0, 0, 0, /* -2, 0, 1, 0, 0 */\n 129, 1, -70, 0, /* -2, 0, 0, 2, 1 */\n 123, 0, -53, 0, /* 0, 0, -1, 2, 2 */\n 63, 0, 0, 0, /* 2, 0, 0, 0, 0 */\n 63, 1, -33, 0, /* 0, 0, 1, 0, 1 */\n -59, 0, 26, 0, /* 2, 0, -1, 2, 2 */\n -58, -1, 32, 0, /* 0, 0, -1, 0, 1 */\n -51, 0, 27, 0, /* 0, 0, 1, 2, 1 */\n 48, 0, 0, 0, /* -2, 0, 2, 0, 0 */\n 46, 0, -24, 0, /* 0, 0, -2, 2, 1 */\n -38, 0, 16, 0, /* 2, 0, 0, 2, 2 */\n -31, 0, 13, 0, /* 0, 0, 2, 2, 2 */\n 29, 0, 0, 0, /* 0, 0, 2, 0, 0 */\n 29, 0, -12, 0, /* -2, 0, 1, 2, 2 */\n 26, 0, 0, 0, /* 0, 0, 0, 2, 0 */\n -22, 0, 0, 0, /* -2, 0, 0, 2, 0 */\n 21, 0, -10, 0, /* 0, 0, -1, 2, 1 */\n 17, -1, 0, 0, /* 0, 2, 0, 0, 0 */\n 16, 0, -8, 0, /* 2, 0, -1, 0, 1 */\n -16, 1, 7, 0, /* -2, 2, 0, 2, 2 */\n -15, 0, 9, 0, /* 0, 1, 0, 0, 1 */\n -13, 0, 7, 0, /* -2, 0, 1, 0, 1 */\n -12, 0, 6, 0, /* 0, -1, 0, 0, 1 */\n 11, 0, 0, 0, /* 0, 0, 2, -2, 0 */\n -10, 0, 5, 0, /* 2, 0, -1, 2, 1 */\n -8, 0, 3, 0, /* 2, 0, 1, 2, 2 */\n 7, 0, -3, 0, /* 0, 1, 0, 2, 2 */\n -7, 0, 0, 0, /* -2, 1, 1, 0, 0 */\n -7, 0, 3, 0, /* 0, -1, 0, 2, 2 */\n -7, 0, 3, 0, /* 2, 0, 0, 2, 1 */\n 6, 0, 0, 0, /* 2, 0, 1, 0, 0 */\n 6, 0, -3, 0, /* -2, 0, 2, 2, 2 */\n 6, 0, -3, 0, /* -2, 0, 1, 2, 1 */\n -6, 0, 3, 0, /* 2, 0, -2, 0, 1 */\n -6, 0, 3, 0, /* 2, 0, 0, 0, 1 */\n 5, 0, 0, 0, /* 0, -1, 1, 0, 0 */\n -5, 0, 3, 0, /* -2, -1, 0, 2, 1 */\n -5, 0, 3, 0, /* -2, 0, 0, 0, 1 */\n -5, 0, 3, 0, /* 0, 0, 2, 2, 1 */\n 4, 0, 0, 0, /* -2, 0, 2, 0, 1 */\n 4, 0, 0, 0, /* -2, 1, 0, 2, 1 */\n 4, 0, 0, 0, /* 0, 0, 1, -2, 0 */\n -4, 0, 0, 0, /* -1, 0, 1, 0, 0 */\n -4, 0, 0, 0, /* -2, 1, 0, 0, 0 */\n -4, 0, 0, 0, /* 1, 0, 0, 0, 0 */\n 3, 0, 0, 0, /* 0, 0, 1, 2, 0 */\n -3, 0, 0, 0, /* -1, -1, 1, 0, 0 */\n -3, 0, 0, 0, /* 0, 1, 1, 0, 0 */\n -3, 0, 0, 0, /* 0, -1, 1, 2, 2 */\n -3, 0, 0, 0, /* 2, -1, -1, 2, 2 */\n -3, 0, 0, 0, /* 0, 0, -2, 2, 2 */\n -3, 0, 0, 0, /* 0, 0, 3, 2, 2 */\n -3, 0, 0, 0 /* 2, -1, 0, 2, 2 */\n ];\n\n /**\n * @desc Table of observed Delta T values at the beginning of even numbered years from 1620 through 2002.\n * @type Array\n */\n this.deltaTtab = [121, 112, 103, 95, 88, 82, 77, 72, 68, 63, 60, 56, 53, 51, 48, 46, 44, 42, 40, 38, 35, 33, 31, 29, 26, 24, 22, 20, 18, 16, 14, 12, 11, 10, 9, 8, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 15, 15, 14, 13, 13.1, 12.5, 12.2, 12, 12, 12, 12, 12, 12, 11.9, 11.6, 11, 10.2, 9.2, 8.2, 7.1, 6.2, 5.6, 5.4, 5.3, 5.4, 5.6, 5.9, 6.2, 6.5, 6.8, 7.1, 7.3, 7.5, 7.6, 7.7, 7.3, 6.2, 5.2, 2.7, 1.4, -1.2, -2.8, -3.8, -4.8, -5.5, -5.3, -5.6, -5.7, -5.9, -6, -6.3, -6.5, -6.2, -4.7, -2.8, -0.1, 2.6, 5.3, 7.7, 10.4, 13.3, 16, 18.2, 20.2, 21.1, 22.4, 23.5, 23.8, 24.3, 24, 23.9, 23.9, 23.7, 24, 24.3, 25.3, 26.2, 27.3, 28.2, 29.1, 30, 30.7, 31.4, 32.2, 33.1, 34, 35, 36.5, 38.3, 40.2, 42.2, 44.5, 46.5, 48.5, 50.5, 52.2, 53.8, 54.9, 55.8, 56.9, 58.3, 60, 61.6, 63, 65, 66.6];\n\n /* EQUINOX -- Determine the Julian Ephemeris Day of an\n equinox or solstice. The \"which\" argument\n selects the item to be computed:\n 0 March equinox\n 1 June solstice\n 2 September equinox\n 3 December solstice\n */\n /**\n * @desc Periodic terms to obtain true time\n * @type Array\n */\n this.EquinoxpTerms = [485, 324.96, 1934.136, 203, 337.23, 32964.467, 199, 342.08, 20.186, 182, 27.85, 445267.112, 156, 73.14, 45036.886, 136, 171.52, 22518.443, 77, 222.54, 65928.934, 74, 296.72, 3034.906, 70, 243.58, 9037.513, 58, 119.81, 33718.147, 52, 297.17, 150.678, 50, 21.02, 2281.226, 45, 247.54, 29929.562, 44, 325.15, 31555.956, 29, 60.93, 4443.417, 18, 155.12, 67555.328, 17, 288.79, 4562.452, 16, 198.04, 62894.029, 14, 199.76, 31436.921, 12, 95.39, 14577.848, 12, 287.11, 31931.756, 12, 320.81, 34777.259, 9, 227.73, 1222.114, 8, 15.45, 16859.074];\n\n this.JDE0tab1000 = [new Array(1721139.29189, 365242.13740, 0.06134, 0.00111, -0.00071), new Array(1721233.25401, 365241.72562, -0.05323, 0.00907, 0.00025), new Array(1721325.70455, 365242.49558, -0.11677, -0.00297, 0.00074), new Array(1721414.39987, 365242.88257, -0.00769, -0.00933, -0.00006)];\n\n this.JDE0tab2000 = [new Array(2451623.80984, 365242.37404, 0.05169, -0.00411, -0.00057), new Array(2451716.56767, 365241.62603, 0.00325, 0.00888, -0.00030), new Array(2451810.21715, 365242.01767, -0.11575, 0.00337, 0.00078), new Array(2451900.05952, 365242.74049, -0.06223, -0.00823, 0.00032)];\n }\n\n /**\n *\n * @param Degrees to radians.\n * @return {number}\n */\n\n\n _createClass(ASTRO, [{\n key: \"dtr\",\n value: function dtr(d) {\n return d * Math.PI / 180.0;\n }\n\n /**\n * @desc Radians to degrees.\n * @param r\n * @return {number}\n */\n\n }, {\n key: \"rtd\",\n value: function rtd(r) {\n return r * 180.0 / Math.PI;\n }\n\n /**\n * @desc Range reduce angle in degrees.\n * @param a\n * @return {number}\n */\n\n }, {\n key: \"fixangle\",\n value: function fixangle(a) {\n return a - 360.0 * Math.floor(a / 360.0);\n }\n\n /**\n * @desc Range reduce angle in radians.\n * @param a\n * @return {number}\n */\n\n }, {\n key: \"fixangr\",\n value: function fixangr(a) {\n return a - 2 * Math.PI * Math.floor(a / (2 * Math.PI));\n }\n\n /**\n * @desc Sine of an angle in degrees\n * @param d\n * @return {number}\n */\n\n }, {\n key: \"dsin\",\n value: function dsin(d) {\n return Math.sin(this.dtr(d));\n }\n\n /**\n * @desc Cosine of an angle in degrees\n * @param d\n * @return {number}\n */\n\n }, {\n key: \"dcos\",\n value: function dcos(d) {\n return Math.cos(this.dtr(d));\n }\n\n /**\n * @desc Modulus function which works for non-integers.\n * @param a\n * @param b\n * @return {number}\n */\n\n }, {\n key: \"mod\",\n value: function mod(a, b) {\n return a - b * Math.floor(a / b);\n }\n\n /**\n *\n * @param j\n * @return {number}\n */\n\n }, {\n key: \"jwday\",\n value: function jwday(j) {\n return this.mod(Math.floor(j + 1.5), 7);\n }\n\n /**\n *\n * @param jd\n * @return {number|*}\n */\n\n }, {\n key: \"obliqeq\",\n value: function obliqeq(jd) {\n var eps, u, v, i;\n v = u = (jd - this.J2000) / (this.JulianCentury * 100);\n eps = 23 + 26 / 60.0 + 21.448 / 3600.0;\n\n if (Math.abs(u) < 1.0) {\n for (i = 0; i < 10; i++) {\n eps += this.oterms[i] / 3600.0 * v;\n v *= u;\n }\n }\n return eps;\n }\n\n /**\n * @desc Calculate the nutation in longitude, deltaPsi, and\n obliquity, deltaEpsilon for a given Julian date\n jd. Results are returned as a two element Array\n giving (deltaPsi, deltaEpsilon) in degrees.\n * @param jd\n * @return Object\n */\n\n }, {\n key: \"nutation\",\n value: function nutation(jd) {\n var deltaPsi,\n deltaEpsilon,\n i,\n j,\n t = (jd - 2451545.0) / 36525.0,\n t2,\n t3,\n to10,\n ta = [],\n dp = 0,\n de = 0,\n ang;\n\n t3 = t * (t2 = t * t);\n\n /* Calculate angles. The correspondence between the elements\n of our array and the terms cited in Meeus are:\n ta[0] = D ta[0] = M ta[2] = M' ta[3] = F ta[4] = \\Omega\n */\n\n ta[0] = this.dtr(297.850363 + 445267.11148 * t - 0.0019142 * t2 + t3 / 189474.0);\n ta[1] = this.dtr(357.52772 + 35999.05034 * t - 0.0001603 * t2 - t3 / 300000.0);\n ta[2] = this.dtr(134.96298 + 477198.867398 * t + 0.0086972 * t2 + t3 / 56250.0);\n ta[3] = this.dtr(93.27191 + 483202.017538 * t - 0.0036825 * t2 + t3 / 327270);\n ta[4] = this.dtr(125.04452 - 1934.136261 * t + 0.0020708 * t2 + t3 / 450000.0);\n\n /* Range reduce the angles in case the sine and cosine functions\n don't do it as accurately or quickly. */\n\n for (i = 0; i < 5; i++) {\n ta[i] = this.fixangr(ta[i]);\n }\n\n to10 = t / 10.0;\n for (i = 0; i < 63; i++) {\n ang = 0;\n for (j = 0; j < 5; j++) {\n if (this.nutArgMult[i * 5 + j] !== 0) {\n ang += this.nutArgMult[i * 5 + j] * ta[j];\n }\n }\n dp += (this.nutArgCoeff[i * 4 + 0] + this.nutArgCoeff[i * 4 + 1] * to10) * Math.sin(ang);\n de += (this.nutArgCoeff[i * 4 + 2] + this.nutArgCoeff[i * 4 + 3] * to10) * Math.cos(ang);\n }\n\n /* Return the result, converting from ten thousandths of arc\n seconds to radians in the process. */\n\n deltaPsi = dp / (3600.0 * 10000.0);\n deltaEpsilon = de / (3600.0 * 10000.0);\n\n return [deltaPsi, deltaEpsilon];\n }\n\n /**\n * @desc Determine the difference, in seconds, between\n Dynamical time and Universal time.\n * @param year\n * @return {*}\n */\n\n }, {\n key: \"deltat\",\n value: function deltat(year) {\n var dt, f, i, t;\n\n if (year >= 1620 && year <= 2000) {\n i = Math.floor((year - 1620) / 2);\n f = (year - 1620) / 2 - i;\n /* Fractional part of year */\n dt = this.deltaTtab[i] + (this.deltaTtab[i + 1] - this.deltaTtab[i]) * f;\n } else {\n t = (year - 2000) / 100;\n if (year < 948) {\n dt = 2177 + 497 * t + 44.1 * t * t;\n } else {\n dt = 102 + 102 * t + 25.3 * t * t;\n if (year > 2000 && year < 2100) {\n dt += 0.37 * (year - 2100);\n }\n }\n }\n return dt;\n }\n\n /**\n *\n * @param year\n * @param which\n * @return {*}\n */\n\n }, {\n key: \"equinox\",\n value: function equinox(year, which) {\n var deltaL = void 0,\n i = void 0,\n j = void 0,\n JDE0 = void 0,\n JDE = void 0,\n JDE0tab = void 0,\n S = void 0,\n T = void 0,\n W = void 0,\n Y = void 0;\n /* Initialise terms for mean equinox and solstices. We\n have two sets: one for years prior to 1000 and a second\n for subsequent years. */\n\n if (year < 1000) {\n JDE0tab = this.JDE0tab1000;\n Y = year / 1000;\n } else {\n JDE0tab = this.JDE0tab2000;\n Y = (year - 2000) / 1000;\n }\n\n JDE0 = JDE0tab[which][0] + JDE0tab[which][1] * Y + JDE0tab[which][2] * Y * Y + JDE0tab[which][3] * Y * Y * Y + JDE0tab[which][4] * Y * Y * Y * Y;\n T = (JDE0 - 2451545.0) / 36525;\n W = 35999.373 * T - 2.47;\n deltaL = 1 + 0.0334 * this.dcos(W) + 0.0007 * this.dcos(2 * W);\n S = 0;\n for (i = j = 0; i < 24; i++) {\n S += this.EquinoxpTerms[j] * this.dcos(this.EquinoxpTerms[j + 1] + this.EquinoxpTerms[j + 2] * T);\n j += 3;\n }\n JDE = JDE0 + S * 0.00001 / deltaL;\n return JDE;\n }\n\n /**\n * @desc Position of the Sun. Please see the comments\n on the return statement at the end of this function\n which describe the array it returns. We return\n intermediate values because they are useful in a\n variety of other contexts.\n * @param jd\n * @return Object\n */\n\n }, {\n key: \"sunpos\",\n value: function sunpos(jd) {\n var T = void 0,\n T2 = void 0,\n L0 = void 0,\n M = void 0,\n e = void 0,\n C = void 0,\n sunLong = void 0,\n sunAnomaly = void 0,\n sunR = void 0,\n Omega = void 0,\n Lambda = void 0,\n epsilon = void 0,\n epsilon0 = void 0,\n Alpha = void 0,\n Delta = void 0,\n AlphaApp = void 0,\n DeltaApp = void 0;\n\n T = (jd - this.J2000) / this.JulianCentury;\n T2 = T * T;\n L0 = 280.46646 + 36000.76983 * T + 0.0003032 * T2;\n L0 = this.fixangle(L0);\n M = 357.52911 + 35999.05029 * T + -0.0001537 * T2;\n M = this.fixangle(M);\n e = 0.016708634 + -0.000042037 * T + -0.0000001267 * T2;\n C = (1.914602 + -0.004817 * T + -0.000014 * T2) * this.dsin(M) + (0.019993 - 0.000101 * T) * this.dsin(2 * M) + 0.000289 * this.dsin(3 * M);\n sunLong = L0 + C;\n sunAnomaly = M + C;\n sunR = 1.000001018 * (1 - e * e) / (1 + e * this.dcos(sunAnomaly));\n Omega = 125.04 - 1934.136 * T;\n Lambda = sunLong + -0.00569 + -0.00478 * this.dsin(Omega);\n epsilon0 = this.obliqeq(jd);\n epsilon = epsilon0 + 0.00256 * this.dcos(Omega);\n Alpha = this.rtd(Math.atan2(this.dcos(epsilon0) * this.dsin(sunLong), this.dcos(sunLong)));\n Alpha = this.fixangle(Alpha);\n Delta = this.rtd(Math.asin(this.dsin(epsilon0) * this.dsin(sunLong)));\n AlphaApp = this.rtd(Math.atan2(this.dcos(epsilon) * this.dsin(Lambda), this.dcos(Lambda)));\n AlphaApp = this.fixangle(AlphaApp);\n DeltaApp = this.rtd(Math.asin(this.dsin(epsilon) * this.dsin(Lambda)));\n\n return [// Angular quantities are expressed in decimal degrees\n L0, // [0] Geometric mean longitude of the Sun\n M, // [1] Mean anomaly of the Sun\n e, // [2] Eccentricity of the Earth's orbit\n C, // [3] Sun's equation of the Centre\n sunLong, // [4] Sun's true longitude\n sunAnomaly, // [5] Sun's true anomaly\n sunR, // [6] Sun's radius vector in AU\n Lambda, // [7] Sun's apparent longitude at true equinox of the date\n Alpha, // [8] Sun's true right ascension\n Delta, // [9] Sun's true declination\n AlphaApp, // [10] Sun's apparent right ascension\n DeltaApp // [11] Sun's apparent declination\n ];\n }\n\n /**\n * @desc Compute equation of time for a given moment. Returns the equation of time as a fraction of a day.\n * @param jd\n * @return {number|*}\n */\n\n }, {\n key: \"equationOfTime\",\n value: function equationOfTime(jd) {\n var alpha = void 0,\n deltaPsi = void 0,\n E = void 0,\n epsilon = void 0,\n L0 = void 0,\n tau = void 0;\n tau = (jd - this.J2000) / this.JulianMillennium;\n L0 = 280.4664567 + 360007.6982779 * tau + 0.03032028 * tau * tau + tau * tau * tau / 49931 + -(tau * tau * tau * tau / 15300) + -(tau * tau * tau * tau * tau / 2000000);\n L0 = this.fixangle(L0);\n alpha = this.sunpos(jd)[10];\n deltaPsi = this.nutation(jd)[0];\n epsilon = this.obliqeq(jd) + this.nutation(jd)[1];\n E = L0 + -0.0057183 + -alpha + deltaPsi * this.dcos(epsilon);\n E = E - 20.0 * Math.floor(E / 20.0);\n E = E / (24 * 60);\n return E;\n }\n }]);\n\n return ASTRO;\n}();\n\nmodule.exports = ASTRO;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Constants\n * @module constants\n */\n\nmodule.exports = {\n durationUnit: {\n year: ['y', 'years', 'year'],\n month: ['M', 'months', 'month'],\n day: ['d', 'days', 'day'],\n hour: ['h', 'hours', 'hour'],\n minute: ['m', 'minutes', 'minute'],\n second: ['s', 'second', 'seconds'],\n millisecond: ['ms', 'milliseconds', 'millisecond'],\n week: ['W', 'w', 'weeks', 'week']\n }\n};\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Helpers = __webpack_require__(0);\nvar normalizeDuration = new Helpers().normalizeDuration;\nvar absRound = new Helpers().absRound;\nvar absFloor = new Helpers().absFloor;\n/**\n * Duration object constructor\n * @param duration\n * @class Duration\n * @constructor\n */\n\nvar Duration = function () {\n function Duration(key, value) {\n _classCallCheck(this, Duration);\n\n var duration = {},\n data = this._data = {},\n milliseconds = 0,\n normalizedUnit = normalizeDuration(key, value),\n unit = normalizedUnit.unit;\n duration[unit] = normalizedUnit.value;\n milliseconds = duration.milliseconds || duration.millisecond || duration.ms || 0;\n\n var years = duration.years || duration.year || duration.y || 0,\n months = duration.months || duration.month || duration.M || 0,\n weeks = duration.weeks || duration.w || duration.week || 0,\n days = duration.days || duration.d || duration.day || 0,\n hours = duration.hours || duration.hour || duration.h || 0,\n minutes = duration.minutes || duration.minute || duration.m || 0,\n seconds = duration.seconds || duration.second || duration.s || 0;\n // representation for dateAddRemove\n this._milliseconds = milliseconds + seconds * 1e3 + minutes * 6e4 + hours * 36e5;\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = days + weeks * 7;\n // It is impossible translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = months + years * 12;\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n seconds += absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n minutes += absRound(seconds / 60);\n data.minutes = minutes % 60;\n hours += absRound(minutes / 60);\n data.hours = hours % 24;\n days += absRound(hours / 24);\n days += weeks * 7;\n data.days = days % 30;\n months += absRound(days / 30);\n data.months = months % 12;\n years += absRound(months / 12);\n data.years = years;\n return this;\n }\n\n _createClass(Duration, [{\n key: 'valueOf',\n value: function valueOf() {\n return this._milliseconds + this._days * 864e5 + this._months * 2592e6;\n }\n }]);\n\n return Duration;\n}();\n\nmodule.exports = Duration;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Constants\n * @module constants\n */\n\nmodule.exports = {\n gregorian: {\n months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n weekdaysMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']\n },\n persian: {\n months: ['Farvardin', 'Ordibehesht', 'Khordad', 'Tir', 'Mordad', 'Shahrivar', 'Mehr', 'Aban', 'Azar', 'Dey', 'Bahman', 'Esfand'],\n monthsShort: ['Far', 'Ord', 'Kho', 'Tir', 'Mor', 'Sha', 'Meh', 'Aba', 'Aza', 'Dey', 'Bah', 'Esf'],\n weekdays: ['Saturday', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'],\n weekdaysShort: ['Sat', 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri'],\n weekdaysMin: ['Sa', 'Su', 'Mo', 'Tu', 'We', 'Th', 'Fr'],\n persianDaysName: ['Urmazd', 'Bahman', 'Ordibehesht', 'Shahrivar', 'Sepandarmaz', 'Khurdad', 'Amordad', 'Dey-be-azar', 'Azar', 'Aban', 'Khorshid', 'Mah', 'Tir', 'Gush', 'Dey-be-mehr', 'Mehr', 'Sorush', 'Rashn', 'Farvardin', 'Bahram', 'Ram', 'Bad', 'Dey-be-din', 'Din', 'Ord', 'Ashtad', 'Asman', 'Zamyad', 'Mantre-sepand', 'Anaram', 'Ziadi']\n }\n};\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Constants\n * @module constants\n */\n\nmodule.exports = {\n gregorian: {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n weekdays: '\\u06CC\\u06A9\\u200C\\u0634\\u0646\\u0628\\u0647_\\u062F\\u0648\\u0634\\u0646\\u0628\\u0647_\\u0633\\u0647\\u200C\\u0634\\u0646\\u0628\\u0647_\\u0686\\u0647\\u0627\\u0631\\u0634\\u0646\\u0628\\u0647_\\u067E\\u0646\\u062C\\u200C\\u0634\\u0646\\u0628\\u0647_\\u062C\\u0645\\u0639\\u0647_\\u0634\\u0646\\u0628\\u0647'.split('_'),\n weekdaysShort: '\\u06CC\\u06A9\\u200C\\u0634\\u0646\\u0628\\u0647_\\u062F\\u0648\\u0634\\u0646\\u0628\\u0647_\\u0633\\u0647\\u200C\\u0634\\u0646\\u0628\\u0647_\\u0686\\u0647\\u0627\\u0631\\u0634\\u0646\\u0628\\u0647_\\u067E\\u0646\\u062C\\u200C\\u0634\\u0646\\u0628\\u0647_\\u062C\\u0645\\u0639\\u0647_\\u0634\\u0646\\u0628\\u0647'.split('_'),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_')\n },\n persian: {\n months: ['فروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند'],\n monthsShort: ['فرو', 'ارد', 'خرد', 'تیر', 'مرد', 'شهر', 'مهر', 'آبا', 'آذر', 'دی', 'بهم', 'اسف'],\n weekdays: ['شنبه', 'یکشنبه', 'دوشنبه', 'سه شنبه', 'چهار شنبه', '\\u067E\\u0646\\u062C\\u200C\\u0634\\u0646\\u0628\\u0647', 'جمعه'],\n weekdaysShort: ['ش', 'ی', 'د', 'س', 'چ', 'پ', 'ج'],\n weekdaysMin: ['ش', 'ی', 'د', 'س', 'چ', 'پ', 'ج'],\n persianDaysName: ['اورمزد', 'بهمن', 'اوردیبهشت', 'شهریور', 'سپندارمذ', 'خورداد', 'امرداد', 'دی به آذز', 'آذز', 'آبان', 'خورشید', 'ماه', 'تیر', 'گوش', 'دی به مهر', 'مهر', 'سروش', 'رشن', 'فروردین', 'بهرام', 'رام', 'باد', 'دی به دین', 'دین', 'ارد', 'اشتاد', 'آسمان', 'زامیاد', 'مانتره سپند', 'انارام', 'زیادی']\n }\n};\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar PersianDateClass = __webpack_require__(1);\nPersianDateClass.calendarType = 'persian';\nPersianDateClass.leapYearMode = 'astronomical';\nPersianDateClass.localType = 'fa';\nmodule.exports = PersianDateClass;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Container = function Container() {\n _classCallCheck(this, Container);\n\n this.isInvalidDate = null;\n\n this.gDate = null;\n /**\n *\n * @type {number}\n */\n this.modifiedjulianday = 0;\n\n /**\n *\n * @type {number}\n */\n this.julianday = 0;\n\n /**\n *\n * @type {{day: number}}\n */\n this.gregserial = {\n day: 0\n };\n\n this.zone = 0;\n\n /**\n *\n * @type {{year: number, month: number, day: number, hour: number, minute: number, second: number, millisecond: number, weekday: number, unix: number, leap: number}}\n */\n this.gregorian = {\n year: 0,\n month: 0,\n day: 0,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n weekday: 0,\n unix: 0,\n leap: 0\n };\n\n /**\n *\n * @type {{year: number, month: number, day: number, leap: number, weekday: number}}\n */\n this.juliancalendar = {\n year: 0,\n month: 0,\n day: 0,\n leap: 0,\n weekday: 0\n };\n\n /**\n *\n * @type {{year: number, month: number, day: number, leap: number, weekday: number}}\n */\n this.islamic = {\n year: 0,\n month: 0,\n day: 0,\n leap: 0,\n weekday: 0\n };\n\n /**\n *\n * @type {{year: number, month: number, day: number, leap: number, weekday: number}}\n */\n this.persianAlgo = this.persian = {\n year: 0,\n month: 0,\n day: 0,\n leap: 0,\n weekday: 0\n };\n\n /**\n *\n * @type {{year: number, month: number, day: number, leap: number, weekday: number}}\n */\n this.persianAstro = {\n year: 0,\n month: 0,\n day: 0,\n leap: 0,\n weekday: 0\n };\n\n /**\n *\n * @type {{year: number, week: number, day: number}}\n */\n this.isoweek = {\n year: 0,\n week: 0,\n day: 0\n };\n\n /**\n *\n * @type {{year: number, day: number}}\n */\n this.isoday = {\n year: 0,\n day: 0\n };\n};\n\nmodule.exports = Container;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n /**\n * @param input\n * @returns {boolean}\n */\n isArray: function isArray(input) {\n return Object.prototype.toString.call(input) === '[object Array]';\n },\n\n\n /**\n *\n * @param input\n * @returns {boolean}\n */\n isNumber: function isNumber(input) {\n return typeof input === 'number';\n },\n\n\n /**\n *\n * @param input\n * @returns {boolean}\n */\n isDate: function isDate(input) {\n return input instanceof Date;\n }\n};\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n /**\n * @param input\n * @returns {boolean}\n */\n validateInputArray: function validateInputArray(input) {\n var out = true;\n // Check month\n if (input[1] < 1 || input[1] > 12) {\n out = false;\n }\n // Check date\n if (input[2] < 1 || input[1] > 31) {\n out = false;\n }\n // Check hour \n if (input[3] < 0 || input[3] > 24) {\n out = false;\n }\n // Check minute \n if (input[4] < 0 || input[4] > 60) {\n out = false;\n }\n // Check second \n if (input[5] < 0 || input[5] > 60) {\n out = false;\n }\n return out;\n }\n};\n\n/***/ })\n/******/ ]);\n});","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar util = require('./utils');\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = util.assign(\n {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n }\n },\n Format\n);\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n"],"sourceRoot":""}