{"version":3,"sources":["../../node_modules/uuid/dist/esm-browser/rng.js","../../node_modules/uuid/dist/esm-browser/regex.js","../../node_modules/uuid/dist/esm-browser/validate.js","../../node_modules/uuid/dist/esm-browser/stringify.js","../../node_modules/uuid/dist/esm-browser/v1.js","../../node_modules/uuid/dist/esm-browser/parse.js","../../node_modules/uuid/dist/esm-browser/v35.js","../../node_modules/uuid/dist/esm-browser/md5.js","../../node_modules/uuid/dist/esm-browser/v3.js","../../node_modules/uuid/dist/esm-browser/v4.js","../../node_modules/uuid/dist/esm-browser/sha1.js","../../node_modules/uuid/dist/esm-browser/v5.js","../../node_modules/uuid/dist/esm-browser/nil.js","../../node_modules/uuid/dist/esm-browser/version.js","../../node_modules/uuid/dist/esm-browser/index.js","../../node_modules/js-cookie/dist/js.cookie.js","../../node_modules/vue-router/dist/vue-router.esm.js","../../node_modules/vue-resource/dist/vue-resource.esm.js","../../node_modules/quasar-app-extension-qdatetimepicker/src/services/meta.js","../../node_modules/quasar-app-extension-qdatetimepicker/src/services/date.js","../../node_modules/quasar-app-extension-qdatetimepicker/src/services/render.js","../../node_modules/quasar-app-extension-qdatetimepicker/src/component/lang/en-us.js","../../node_modules/quasar-app-extension-qdatetimepicker/src/component/QDatetimePicker.js","../../node_modules/quasar-app-extension-qdatetimepicker/src/component/index.js","../lib/quasar-app-extension-qdecimal/src/component/QDecimal.js","../lib/quasar-app-extension-qdecimal/src/component/index.js","site-vue-config.js","site-vue.js"],"names":["getRandomValues","rnds8","Uint8Array","rng","crypto","bind","msCrypto","Error","_regex","_interopRequireDefault","require","obj","__esModule","default","validate","uuid","REGEX","test","_default","exports","_validate","byteToHex","i","push","toString","substr","stringify","arr","offset","arguments","length","undefined","toLowerCase","TypeError","_nodeId","_clockseq","_rng","_stringify","_lastMSecs","_lastNSecs","v1","options","buf","b","Array","node","clockseq","seedBytes","random","msecs","Date","now","nsecs","dt","tl","tmh","n","parse","v","parseInt","slice","_parse","stringToBytes","str","unescape","encodeURIComponent","bytes","charCodeAt","DNS","URL","name","version","hashfunc","generateUUID","value","namespace","set","err","md5","msg","md5ToHexEncodedArray","wordsToMd5","bytesToWords","input","output","length32","x","hex","charAt","getOutputLength","inputLength8","len","a","c","d","olda","oldb","oldc","oldd","md5ff","md5gg","md5hh","md5ii","safeAdd","length8","Uint32Array","y","lsw","bitRotateLeft","num","cnt","md5cmn","q","s","t","_v","_md","v3","v35","v4","rnds","f","z","ROTL","sha1","K","H","isArray","prototype","call","l","N","Math","ceil","M","_i","j","pow","floor","_i2","W","_t","e","_t2","T","_sha","v5","_v2","_v3","_v4","_nil","_version","global","factory","_typeof","module","define","amd","globalThis","self","current","Cookies","noConflict","assign","target","source","key","init","converter","defaultAttributes","attributes","document","expires","toUTCString","replace","decodeURIComponent","escape","stringifiedAttributes","attributeName","split","cookie","write","Object","create","get","cookies","jar","parts","join","found","read","remove","withAttributes","withConverter","freeze","path","assert","condition","message","warn","console","extend","encodeReserveRE","encodeReserveReplacer","commaRE","encode","decode","resolveQuery","query","extraQuery","_parseQuery","parsedQuery","parseQuery","map","castQueryParamValue","String","res","trim","forEach","param","shift","val","stringifyQuery","keys","result","val2","filter","trailingSlashRE","createRoute","record","location","redirectedFrom","router","clone","route","meta","hash","params","fullPath","getFullPath","matched","formatMatch","START","START_LOCATION","unshift","parent","ref","_stringifyQuery","isSameRoute","onlyPath","isObjectEqual","aKeys","sort","bKeys","every","aVal","bVal","isIncludedRoute","indexOf","queryIncludes","handleRouteEntered","instances","instance","cbs","enteredCbs","i$1","_isBeingDestroyed","View","RouterView","functional","props","type","render","_","children","data","routerView","h","$createElement","$route","cache","_routerViewCache","depth","inactive","_routerRoot","vnodeData","$vnode","keepAlive","_directInactive","_inactive","$parent","routerViewDepth","cachedData","cachedComponent","component","configProps","fillPropsinData","components","registerRouteInstance","vm","hook","prepatch","vnode","componentInstance","propsToPass","resolveProps","attrs","config","resolvePath","relative","base","append","firstChar","stack","pop","segments","segment","parsePath","hashIndex","queryIndex","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","RegExp","tokens","index","defaultDelimiter","delimiter","exec","m","escaped","next","prefix","capture","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","toUpperCase","encodeAsterisk","matches","flags","opts","pretty","token","JSON","attachKeys","re","sensitive","regexpToRegexp","groups","match","arrayToRegexp","stringToRegexp","strict","end","endsWithDelimiter","regexpCompileCache","fillParams","routeMsg","filler","pathMatch","normalizeLocation","raw","_normalized","params$1","rawPath","parsedPath","basePath","warnedCustomSlot","warnedTagProp","warnedEventProp","_Vue","toTypes","eventTypes","noop","Link","RouterLink","to","required","tag","custom","Boolean","exact","exactPath","activeClass","exactActiveClass","ariaCurrentValue","event","this$1$1","$router","resolve","href","classes","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","handler","guardEvent","on","click","class","scopedSlot","$scopedSlots","$hasNormal","navigate","isActive","isExactActive","findAnchor","$slots","isStatic","aData","handler$1","event$1","aAttrs","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","getAttribute","preventDefault","child","install","Vue","installed","isDef","registerInstance","callVal","$options","_parentVnode","mixin","beforeCreate","_router","util","defineReactive","history","destroyed","defineProperty","_route","strats","optionMergeStrategies","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","created","inBrowser","window","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","splice","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","alias","redirect","beforeEnter","childMatchAs","aliases","aliasRoute","createMatcher","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","hasOwnProperty","resolveRecordPath","aliasedMatch","aliasedRecord","addRoute","parentOrRoute","getRoutes","addRoutes","Time","performance","genStateKey","toFixed","_key","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","protocol","host","absolutePath","stateCopy","state","replaceState","addEventListener","handlePopState","removeEventListener","handleScroll","from","isPop","app","behavior","scrollBehavior","$nextTick","position","getScrollPosition","shouldScroll","then","scrollToPosition","catch","saveScrollPosition","pageXOffset","pageYOffset","getElementPosition","el","docRect","documentElement","getBoundingClientRect","elRect","left","top","isValidPosition","isNumber","normalizePosition","normalizeOffset","hashStartsWithNumberRE","isObject","selector","getElementById","querySelector","style","scrollTo","supportsPushState","ua","navigator","userAgent","pushState","url","NavigationFailureType","redirected","aborted","cancelled","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","error","createNavigationCancelledError","createNavigationAbortedError","_isRouter","propertiesToLog","isError","isNavigationFailure","errorType","runQueue","queue","fn","cb","step","resolveAsyncComponents","hasAsync","pending","flatMapComponents","def","cid","once","resolvedDef","isESModule","resolved","reject","reason","comp","flatten","concat","apply","hasSymbol","Symbol","toStringTag","called","args","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","listeners","baseEl","resolveQueue","max","updated","activated","deactivated","extractGuards","records","reverse","guards","guard","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","bindEnterGuard","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","prev","confirmTransition","updateRoute","ensureURL","afterHooks","abort","lastRouteIndex","lastCurrentIndex","beforeHooks","iterator","resolveHooks","setupListeners","teardown","cleanupListener","HTML5History","_startLocation","getLocation","__proto__","constructor","expectScroll","supportsScroll","handleRoutingEvent","go","fromRoute","getCurrentLocation","pathname","pathLowerCase","baseLowerCase","search","HashHistory","fallback","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","apps","matcher","mode","prototypeAccessors","configurable","$once","routeOrError","handleInitialScroll","beforeEach","registerHook","beforeResolve","afterEach","Promise","back","forward","getMatchedComponents","createHref","normalizedTo","defineProperties","VueRouter$1","list","use","RESOLVED","REJECTED","PENDING","Promise$1","executor","deferred","promise","r","all","iterable","count","resolver","race","p","PromiseObj","context","notify","nextTick","onResolved","onRejected","p$1","fulfilled","rejected","callback","ntick","_ref","debug","Util","_ref2","silent","ctx","trimEnd","chars","toLower","toUpper","isString","isFunction","isPlainObject","getPrototypeOf","isBlob","Blob","isFormData","FormData","when","merge","$vm","each","_assign","_merge","defaults","deep","root","options$$1","urlParams","Url","expand","variables","tmpl","expanded","vars","template","operators","expression","literal","operator","values","variable","tmp","getValues","separator","encodeReserved","isDefined","substring","encodeValue","isKeyOperator","k","part","transform","transforms","serialize","scope","array","plain","add","xdrClient","request","xdr","XDomainRequest","status","respondWith","responseText","open","method","timeout","onload","onabort","onerror","ontimeout","onprogress","send","getBody","createElement","documentMode","port","hostname","SUPPORTS_CORS","XMLHttpRequest","cors","orgUrl","reqUrl","crossOrigin","emulateHTTP","client","form","body","headers","emulateJSON","json","response","bodyText","text","isJson","start","jsonpClient","script","jsonp","jsonpCallback","removeChild","setTimeout","src","async","appendChild","before","header","Http","common","has","xhrClient","xhr","statusText","getAllResponseHeaders","row","responseType","withCredentials","credentials","progress","downloadProgress","upload","uploadProgress","setRequestHeader","nodeClient","resp","statusCode","statusMessage","error$$1","Client","reqHandlers","sendRequest","resHandlers","_ret","Headers","_this","_proto","getName","getAll","normalizeName","deleteAll","thisArg","_this2","reduce","curr","Response","ok","bodyBlob","isBlobText","blobText","blob","reader","FileReader","readAsText","Request","COMMON_HEADERS","JSON_CONTENT_TYPE","interceptors","interceptor","Resource","actions","resource","action","$http","plugin","http","$url","$resource","$promise","put","post","patch","method$$1","save","update","getNextIndex","formatted","day","month","year","pos","partA","partB","time","language","mask","formatter","Intl","DateTimeFormat","date","format","hour","cases","order","minute","second","limit","_index","padStart","ysecondear","_ref3","yearCases","nextIndex","ampm","_ref4","am","pm","suffix","_objectSpread","hour12","formatter24","dateAM","datePM","formatted24","formattedAM","formattedPM","endsWith","proporsal","withSeconds","number","objDate","isNaN","getTime","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","quasar","iso","success","getDefault","baseDate","maskedDate","maskedTime","masked","metas","masks","today","years","hours","minutes","time12","parts12","array12","metaList","_loop","metaItem","find","item","_loop2","_pos","format12","format24","_quasar","_vue","_excluded","_excluded2","_excluded3","_objectDestructuringEmpty","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","sourceKeys","icons","observable","Render","main","that","isClearable","clearable","disable","readonly","isReadonly","QField","QInput","disablePopup","popup","cbOptions","scopedSlots","format24h","ampmSuffix","displayValue","clear","trigger","rules","rule","stackLabel","control","onInputFilled","blur","onInputBlur","keyup","keyCode","toggleSuffix","_this$self$$props","$props","_this$self$$listeners","$listeners","_this$self$$scopedSlo","$attrs","QIcon","staticClass","clearIcon","$q","iconSet","field","stopPropagation","color","icon","timeIcon","dateIcon","_children","QPopupProxy","card","onPopupShow","onPopupHide","fit","cover","anchor","content","autoUpdateValue","QCardActions","align","dark","QBtn","flat","$refs","hide","lang","label","cancel","onSetClick","QCard","landscape","tabs","hideTabs","tabsContent","tabsTitle","QTabs","tab","vertical","dense","QTab","isoLang","dateTimePicker","QTabPanels","QTabPanel","QDate","dateOptions","dateMask","QTime","timeOptions","timeMask","_default2","_interopRequireWildcard","_render","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","o","ownKeys","enumerable","_defineProperty","getOwnPropertyDescriptors","_toPropertyKey","writable","arg","_toPrimitive","hint","prim","toPrimitive","Number","_QTime$options$props","timeProps","_QDate$options$props","dateProps","_QInput$options$props","maskInput","inputProps","_QDialog$options$prop","QDialog","QMenu","validation","calendar","defaultStandard","ssrContext","mixins","standard","configured","original","computed","isoName","intlLocale","displayDate","displayTime","intlDateOptions","intlTimeOptions","intlOptions","inputBreakpoints","hasPopup","popupBehavior","watch","immediate","_ampm","$set","__configLanguage","__updateValue","methods","__sleep","delay","__updateDates","parsed","$emit","force","dateValue","timeValue","contentClass","_QDatetimePicker","currency","display","places","precision","currencyText","intl","currencyDisplay","minimumFractionDigits","cPrecision","maximumFractionDigits","valueFormatter","NumberFormat","numberFormatter","cPrefix","cSuffix","cValue","onlyNumbers","decimal","parseFloat","texts","evt","checkCursor","deleted","selectionStart","selectionEnd","inc","new","old","updateCursor","nativeOn","keydown","focus","_QDecimal","quasarConfig","brand","primary","secondary","accent","positive","negative","info","warning","_uuid","Enumerable","_jsCookie","_vueRouter","_vueResource","_component","_component2","_siteVueConfig","VueResource","Quasar","QDatetimePicker","QDecimal","$getCookie","$newGuid","uuidv4","$joinStrings","asEnumerable","Where","ToArray","$generateTemporaryId","id","$prepareDialogModel","modelObject","dialogModel","propertyName","includes","$applyModelFields","modelSource","modelDestination","$prepareServerUrl","routeParams","preparedUrl","routeParam","$prepareNavigationUrl","$showNotification","$processException","exception","ArrayBuffer","errorMessage","TextDecoder","jsonResponse","dialog","title","replaceAll","html","traceId","$processServerJsonResponse","refreshScreenAction","serverActionType","$showServerResultMessage","navigateToUrl","redirectToUrl","inNewWindow","onOk","$processServerFileResponse","contentType","contentDisposition","filename","createObjectURL","download"],"mappings":"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","file":"site-vue.28c8ef9a.js","sourceRoot":"js","sourcesContent":["// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js'; // **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || new Array(16);\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n var seedBytes = options.random || (options.rng || rng)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n var msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || stringify(b);\n}\n\nexport default v1;","import validate from './validate.js';\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n var v;\n var arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nexport default parse;","import stringify from './stringify.js';\nimport parse from './parse.js';\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n var bytes = [];\n\n for (var i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nexport var DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport var URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function (name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = parse(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n var bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return stringify(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Uint8Array(msg.length);\n\n for (var i = 0; i < msg.length; ++i) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n var output = [];\n var length32 = input.length * 32;\n var hexTab = '0123456789abcdef';\n\n for (var i = 0; i < length32; i += 8) {\n var x = input[i >> 5] >>> i % 32 & 0xff;\n var hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/**\n * Calculate output length with padding and bit length\n */\n\n\nfunction getOutputLength(inputLength8) {\n return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[getOutputLength(len) - 1] = len;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for (var i = 0; i < x.length; i += 16) {\n var olda = a;\n var oldb = b;\n var oldc = c;\n var oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n if (input.length === 0) {\n return [];\n }\n\n var length8 = input.length * 8;\n var output = new Uint32Array(getOutputLength(length8));\n\n for (var i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nexport default md5;","import v35 from './v35.js';\nimport md5 from './md5.js';\nvar v3 = v35('v3', 0x30, md5);\nexport default v3;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (var i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n var l = bytes.length / 4 + 2;\n var N = Math.ceil(l / 16);\n var M = new Array(N);\n\n for (var _i = 0; _i < N; ++_i) {\n var arr = new Uint32Array(16);\n\n for (var j = 0; j < 16; ++j) {\n arr[j] = bytes[_i * 64 + j * 4] << 24 | bytes[_i * 64 + j * 4 + 1] << 16 | bytes[_i * 64 + j * 4 + 2] << 8 | bytes[_i * 64 + j * 4 + 3];\n }\n\n M[_i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (var _i2 = 0; _i2 < N; ++_i2) {\n var W = new Uint32Array(80);\n\n for (var t = 0; t < 16; ++t) {\n W[t] = M[_i2][t];\n }\n\n for (var _t = 16; _t < 80; ++_t) {\n W[_t] = ROTL(W[_t - 3] ^ W[_t - 8] ^ W[_t - 14] ^ W[_t - 16], 1);\n }\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n for (var _t2 = 0; _t2 < 80; ++_t2) {\n var s = Math.floor(_t2 / 20);\n var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[_t2] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nexport default sha1;","import v35 from './v35.js';\nimport sha1 from './sha1.js';\nvar v5 = v35('v5', 0x50, sha1);\nexport default v5;","export default '00000000-0000-0000-0000-000000000000';","import validate from './validate.js';\n\nfunction version(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nexport default version;","export { default as v1 } from './v1.js';\nexport { default as v3 } from './v3.js';\nexport { default as v4 } from './v4.js';\nexport { default as v5 } from './v5.js';\nexport { default as NIL } from './nil.js';\nexport { default as version } from './version.js';\nexport { default as validate } from './validate.js';\nexport { default as stringify } from './stringify.js';\nexport { default as parse } from './parse.js';","/*! js-cookie v3.0.5 | MIT */\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (function () {\n var current = global.Cookies;\n var exports = global.Cookies = factory();\n exports.noConflict = function () { global.Cookies = current; return exports; };\n })());\n})(this, (function () { 'use strict';\n\n /* eslint-disable no-var */\n function assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n }\n /* eslint-enable no-var */\n\n /* eslint-disable no-var */\n var defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n };\n /* eslint-enable no-var */\n\n /* eslint-disable no-var */\n\n function init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n }\n\n var api = init(defaultConverter, { path: '/' });\n /* eslint-enable no-var */\n\n return api;\n\n}));\n","/*!\n * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (!condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nfunction decode (str) {\n try {\n return decodeURIComponent(str)\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n }\n }\n return str\n}\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n var value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj\n ? Object.keys(obj)\n .map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n })\n .filter(function (x) { return x.length > 0; })\n .join('&')\n : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b, onlyPath) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query))\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n (onlyPath || (\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params))\n )\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key, i) {\n var aVal = a[key];\n var bKey = bKeys[i];\n if (bKey !== key) { return false }\n var bVal = b[key];\n // query values can be null and undefined\n if (aVal == null || bVal == null) { return aVal === bVal }\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction handleRouteEntered (route) {\n for (var i = 0; i < route.matched.length; i++) {\n var record = route.matched[i];\n for (var name in record.instances) {\n var instance = record.instances[name];\n var cbs = record.enteredCbs[name];\n if (!instance || !cbs) { continue }\n delete record.enteredCbs[name];\n for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n if (!instance._isBeingDestroyed) { cbs[i$1](instance); }\n }\n }\n }\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n\n // if the route transition has already been confirmed then we weren't\n // able to call the cbs during confirmation as the component was not\n // registered yet, so we call it here.\n handleRouteEntered(route);\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cache\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/(?:\\s*\\/)+/g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar warnedCustomSlot;\nvar warnedTagProp;\nvar warnedEventProp;\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n custom: Boolean,\n exact: Boolean,\n exactPath: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath);\n classes[activeClass] = this.exact || this.exactPath\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (process.env.NODE_ENV !== 'production' && !this.custom) {\n !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an element. Use the custom prop to remove this warning:\\n\\n');\n warnedCustomSlot = true;\n }\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\" with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if ('tag' in this.$options.propsData && !warnedTagProp) {\n warn(\n false,\n \"'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedTagProp = true;\n }\n if ('event' in this.$options.propsData && !warnedEventProp) {\n warn(\n false,\n \"'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedEventProp = true;\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap,\n parentRoute\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route, parentRoute);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n\n warn(\n // eslint-disable-next-line no-control-regex\n !/[^\\u0000-\\u007F]+/.test(path),\n \"Route with path \\\"\" + path + \"\\\" contains unencoded characters, make sure \" +\n \"your path is correctly encoded before passing it to the router. Use \" +\n \"encodeURI to encode static segments of your path.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n alias: route.alias\n ? typeof route.alias === 'string'\n ? [route.alias]\n : route.alias\n : [],\n instances: {},\n enteredCbs: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'}\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function addRoute (parentOrRoute, route) {\n var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n // $flow-disable-line\n createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n // add aliases of parent\n if (parent && parent.alias.length) {\n createRouteMap(\n // $flow-disable-line route is defined if parent is\n parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }),\n pathList,\n pathMap,\n nameMap,\n parent\n );\n }\n }\n\n function getRoutes () {\n return pathList.map(function (path) { return pathMap[path]; })\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoute: addRoute,\n getRoutes: getRoutes,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return function () {\n window.removeEventListener('popstate', handlePopState);\n }\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n // $flow-disable-line\n if ('scrollBehavior' in document.documentElement.style) {\n window.scrollTo({\n left: position.x,\n top: position.y,\n // $flow-disable-line\n behavior: shouldScroll.behavior\n });\n } else {\n window.scrollTo(position.x, position.y);\n }\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n// When changing thing, also edit router.d.ts\nvar NavigationFailureType = {\n redirected: 2,\n aborted: 4,\n cancelled: 8,\n duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.redirected,\n (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n to\n )) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n var error = createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n );\n // backwards compatible with the first introduction of Errors\n error.name = 'NavigationDuplicated';\n return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.cancelled,\n (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n )\n}\n\nfunction createNavigationAbortedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.aborted,\n (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n var error = new Error(message);\n error._isRouter = true;\n error.from = from;\n error.to = to;\n error.type = type;\n\n return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') { return to }\n if ('path' in to) { return to.path }\n var location = {};\n propertiesToLog.forEach(function (key) {\n if (key in to) { location[key] = to[key]; }\n });\n return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n return (\n isError(err) &&\n err._isRouter &&\n (errorType == null || err.type === errorType)\n )\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1$1 = this;\n\n var route;\n // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n try {\n route = this.router.match(location, this.current);\n } catch (e) {\n this.errorCbs.forEach(function (cb) {\n cb(e);\n });\n // Exception should still be thrown\n throw e\n }\n var prev = this.current;\n this.confirmTransition(\n route,\n function () {\n this$1$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1$1.ensureURL();\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1$1.ready) {\n this$1$1.ready = true;\n this$1$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1$1.ready) {\n // Initial redirection should not mark the history as ready yet\n // because it's triggered by the redirection instead\n // https://github.com/vuejs/vue-router/issues/3225\n // https://github.com/vuejs/vue-router/issues/3331\n if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n this$1$1.ready = true;\n this$1$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1$1 = this;\n\n var current = this.current;\n this.pending = route;\n var abort = function (err) {\n // changed after adding errors with\n // https://github.com/vuejs/vue-router/pull/3047 before that change,\n // redirect and aborted navigation would produce an err == null\n if (!isNavigationFailure(err) && isError(err)) {\n if (this$1$1.errorCbs.length) {\n this$1$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'uncaught error during route navigation:');\n }\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n var lastRouteIndex = route.matched.length - 1;\n var lastCurrentIndex = current.matched.length - 1;\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n lastRouteIndex === lastCurrentIndex &&\n route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n ) {\n this.ensureURL();\n if (route.hash) {\n handleScroll(this.router, current, route, false);\n }\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n var iterator = function (hook, next) {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this$1$1.replace(to);\n } else {\n this$1$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated);\n var queue = enterGuards.concat(this$1$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1$1.pending = null;\n onComplete(route);\n if (this$1$1.router.app) {\n this$1$1.router.app.$nextTick(function () {\n handleRouteEntered(route);\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.prototype.teardown = function teardown () {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\n\n // reset current history route\n // https://github.com/vuejs/vue-router/issues/3294\n this.current = START;\n this.pending = null;\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n if (!match.enteredCbs[key]) {\n match.enteredCbs[key] = [];\n }\n match.enteredCbs[key].push(cb);\n }\n next(cb);\n })\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1$1.base);\n if (this$1$1.current === START && location === this$1$1._startLocation) {\n return\n }\n\n this$1$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n var pathLowerCase = path.toLowerCase();\n var baseLowerCase = base.toLowerCase();\n // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n // https://github.com/vuejs/vue-router/issues/3555\n // so we ensure the trailing slash in the base\n if (base && ((pathLowerCase === baseLowerCase) ||\n (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index + 1).concat(route);\n this$1$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n var prev = this$1$1.current;\n this$1$1.index = targetIndex;\n this$1$1.updateRoute(route);\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n },\n function (err) {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this$1$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\n\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n if (process.env.NODE_ENV !== 'production') {\n warn(this instanceof VueRouter, \"Router must be called with the new operator.\");\n }\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback =\n mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1$1 = this;\n\n process.env.NODE_ENV !== 'production' &&\n assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1$1.apps.indexOf(app);\n if (index > -1) { this$1$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1$1.app === app) { this$1$1.app = this$1$1.apps[0] || null; }\n\n if (!this$1$1.app) { this$1$1.history.teardown(); }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var handleInitialScroll = function (routeOrError) {\n var from = history.current;\n var expectScroll = this$1$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1$1, routeOrError, from, false);\n }\n };\n var setupListeners = function (routeOrError) {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(function (route) {\n this$1$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply(\n [],\n route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n })\n )\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(to, current, append, this);\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.getRoutes = function getRoutes () {\n return this.matcher.getRoutes()\n};\n\nVueRouter.prototype.addRoute = function addRoute (parentOrRoute, route) {\n this.matcher.addRoute(parentOrRoute, route);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.');\n }\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nvar VueRouter$1 = VueRouter;\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\n// We cannot remove this as it would be a breaking change\nVueRouter.install = install;\nVueRouter.version = '3.6.5';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nvar version = '3.6.5';\n\nexport { NavigationFailureType, Link as RouterLink, View as RouterView, START as START_LOCATION, VueRouter$1 as default, isNavigationFailure, version };\n","/*!\n * vue-resource v1.5.3\n * https://github.com/pagekit/vue-resource\n * Released under the MIT License.\n */\n\n/**\n * Promises/A+ polyfill v1.1.4 (https://github.com/bramstein/promis)\n */\nvar RESOLVED = 0;\nvar REJECTED = 1;\nvar PENDING = 2;\nfunction Promise$1(executor) {\n this.state = PENDING;\n this.value = undefined;\n this.deferred = [];\n var promise = this;\n\n try {\n executor(function (x) {\n promise.resolve(x);\n }, function (r) {\n promise.reject(r);\n });\n } catch (e) {\n promise.reject(e);\n }\n}\n\nPromise$1.reject = function (r) {\n return new Promise$1(function (resolve, reject) {\n reject(r);\n });\n};\n\nPromise$1.resolve = function (x) {\n return new Promise$1(function (resolve, reject) {\n resolve(x);\n });\n};\n\nPromise$1.all = function all(iterable) {\n return new Promise$1(function (resolve, reject) {\n var count = 0,\n result = [];\n\n if (iterable.length === 0) {\n resolve(result);\n }\n\n function resolver(i) {\n return function (x) {\n result[i] = x;\n count += 1;\n\n if (count === iterable.length) {\n resolve(result);\n }\n };\n }\n\n for (var i = 0; i < iterable.length; i += 1) {\n Promise$1.resolve(iterable[i]).then(resolver(i), reject);\n }\n });\n};\n\nPromise$1.race = function race(iterable) {\n return new Promise$1(function (resolve, reject) {\n for (var i = 0; i < iterable.length; i += 1) {\n Promise$1.resolve(iterable[i]).then(resolve, reject);\n }\n });\n};\n\nvar p = Promise$1.prototype;\n\np.resolve = function resolve(x) {\n var promise = this;\n\n if (promise.state === PENDING) {\n if (x === promise) {\n throw new TypeError('Promise settled with itself.');\n }\n\n var called = false;\n\n try {\n var then = x && x['then'];\n\n if (x !== null && typeof x === 'object' && typeof then === 'function') {\n then.call(x, function (x) {\n if (!called) {\n promise.resolve(x);\n }\n\n called = true;\n }, function (r) {\n if (!called) {\n promise.reject(r);\n }\n\n called = true;\n });\n return;\n }\n } catch (e) {\n if (!called) {\n promise.reject(e);\n }\n\n return;\n }\n\n promise.state = RESOLVED;\n promise.value = x;\n promise.notify();\n }\n};\n\np.reject = function reject(reason) {\n var promise = this;\n\n if (promise.state === PENDING) {\n if (reason === promise) {\n throw new TypeError('Promise settled with itself.');\n }\n\n promise.state = REJECTED;\n promise.value = reason;\n promise.notify();\n }\n};\n\np.notify = function notify() {\n var promise = this;\n nextTick(function () {\n if (promise.state !== PENDING) {\n while (promise.deferred.length) {\n var deferred = promise.deferred.shift(),\n onResolved = deferred[0],\n onRejected = deferred[1],\n resolve = deferred[2],\n reject = deferred[3];\n\n try {\n if (promise.state === RESOLVED) {\n if (typeof onResolved === 'function') {\n resolve(onResolved.call(undefined, promise.value));\n } else {\n resolve(promise.value);\n }\n } else if (promise.state === REJECTED) {\n if (typeof onRejected === 'function') {\n resolve(onRejected.call(undefined, promise.value));\n } else {\n reject(promise.value);\n }\n }\n } catch (e) {\n reject(e);\n }\n }\n }\n });\n};\n\np.then = function then(onResolved, onRejected) {\n var promise = this;\n return new Promise$1(function (resolve, reject) {\n promise.deferred.push([onResolved, onRejected, resolve, reject]);\n promise.notify();\n });\n};\n\np[\"catch\"] = function (onRejected) {\n return this.then(undefined, onRejected);\n};\n\n/**\n * Promise adapter.\n */\n\nif (typeof Promise === 'undefined') {\n window.Promise = Promise$1;\n}\n\nfunction PromiseObj(executor, context) {\n if (executor instanceof Promise) {\n this.promise = executor;\n } else {\n this.promise = new Promise(executor.bind(context));\n }\n\n this.context = context;\n}\n\nPromiseObj.all = function (iterable, context) {\n return new PromiseObj(Promise.all(iterable), context);\n};\n\nPromiseObj.resolve = function (value, context) {\n return new PromiseObj(Promise.resolve(value), context);\n};\n\nPromiseObj.reject = function (reason, context) {\n return new PromiseObj(Promise.reject(reason), context);\n};\n\nPromiseObj.race = function (iterable, context) {\n return new PromiseObj(Promise.race(iterable), context);\n};\n\nvar p$1 = PromiseObj.prototype;\n\np$1.bind = function (context) {\n this.context = context;\n return this;\n};\n\np$1.then = function (fulfilled, rejected) {\n if (fulfilled && fulfilled.bind && this.context) {\n fulfilled = fulfilled.bind(this.context);\n }\n\n if (rejected && rejected.bind && this.context) {\n rejected = rejected.bind(this.context);\n }\n\n return new PromiseObj(this.promise.then(fulfilled, rejected), this.context);\n};\n\np$1[\"catch\"] = function (rejected) {\n if (rejected && rejected.bind && this.context) {\n rejected = rejected.bind(this.context);\n }\n\n return new PromiseObj(this.promise[\"catch\"](rejected), this.context);\n};\n\np$1[\"finally\"] = function (callback) {\n return this.then(function (value) {\n callback.call(this);\n return value;\n }, function (reason) {\n callback.call(this);\n return Promise.reject(reason);\n });\n};\n\n/**\n * Utility functions.\n */\nvar _ref = {},\n hasOwnProperty = _ref.hasOwnProperty,\n slice = [].slice,\n debug = false,\n ntick;\nvar inBrowser = typeof window !== 'undefined';\nfunction Util (_ref2) {\n var config = _ref2.config,\n nextTick = _ref2.nextTick;\n ntick = nextTick;\n debug = config.debug || !config.silent;\n}\nfunction warn(msg) {\n if (typeof console !== 'undefined' && debug) {\n console.warn('[VueResource warn]: ' + msg);\n }\n}\nfunction error(msg) {\n if (typeof console !== 'undefined') {\n console.error(msg);\n }\n}\nfunction nextTick(cb, ctx) {\n return ntick(cb, ctx);\n}\nfunction trim(str) {\n return str ? str.replace(/^\\s*|\\s*$/g, '') : '';\n}\nfunction trimEnd(str, chars) {\n if (str && chars === undefined) {\n return str.replace(/\\s+$/, '');\n }\n\n if (!str || !chars) {\n return str;\n }\n\n return str.replace(new RegExp(\"[\" + chars + \"]+$\"), '');\n}\nfunction toLower(str) {\n return str ? str.toLowerCase() : '';\n}\nfunction toUpper(str) {\n return str ? str.toUpperCase() : '';\n}\nvar isArray = Array.isArray;\nfunction isString(val) {\n return typeof val === 'string';\n}\nfunction isFunction(val) {\n return typeof val === 'function';\n}\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\nfunction isPlainObject(obj) {\n return isObject(obj) && Object.getPrototypeOf(obj) == Object.prototype;\n}\nfunction isBlob(obj) {\n return typeof Blob !== 'undefined' && obj instanceof Blob;\n}\nfunction isFormData(obj) {\n return typeof FormData !== 'undefined' && obj instanceof FormData;\n}\nfunction when(value, fulfilled, rejected) {\n var promise = PromiseObj.resolve(value);\n\n if (arguments.length < 2) {\n return promise;\n }\n\n return promise.then(fulfilled, rejected);\n}\nfunction options(fn, obj, opts) {\n opts = opts || {};\n\n if (isFunction(opts)) {\n opts = opts.call(obj);\n }\n\n return merge(fn.bind({\n $vm: obj,\n $options: opts\n }), fn, {\n $options: opts\n });\n}\nfunction each(obj, iterator) {\n var i, key;\n\n if (isArray(obj)) {\n for (i = 0; i < obj.length; i++) {\n iterator.call(obj[i], obj[i], i);\n }\n } else if (isObject(obj)) {\n for (key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n iterator.call(obj[key], obj[key], key);\n }\n }\n }\n\n return obj;\n}\nvar assign = Object.assign || _assign;\nfunction merge(target) {\n var args = slice.call(arguments, 1);\n args.forEach(function (source) {\n _merge(target, source, true);\n });\n return target;\n}\nfunction defaults(target) {\n var args = slice.call(arguments, 1);\n args.forEach(function (source) {\n for (var key in source) {\n if (target[key] === undefined) {\n target[key] = source[key];\n }\n }\n });\n return target;\n}\n\nfunction _assign(target) {\n var args = slice.call(arguments, 1);\n args.forEach(function (source) {\n _merge(target, source);\n });\n return target;\n}\n\nfunction _merge(target, source, deep) {\n for (var key in source) {\n if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key])) {\n target[key] = {};\n }\n\n if (isArray(source[key]) && !isArray(target[key])) {\n target[key] = [];\n }\n\n _merge(target[key], source[key], deep);\n } else if (source[key] !== undefined) {\n target[key] = source[key];\n }\n }\n}\n\n/**\n * Root Prefix Transform.\n */\nfunction root (options$$1, next) {\n var url = next(options$$1);\n\n if (isString(options$$1.root) && !/^(https?:)?\\//.test(url)) {\n url = trimEnd(options$$1.root, '/') + '/' + url;\n }\n\n return url;\n}\n\n/**\n * Query Parameter Transform.\n */\nfunction query (options$$1, next) {\n var urlParams = Object.keys(Url.options.params),\n query = {},\n url = next(options$$1);\n each(options$$1.params, function (value, key) {\n if (urlParams.indexOf(key) === -1) {\n query[key] = value;\n }\n });\n query = Url.params(query);\n\n if (query) {\n url += (url.indexOf('?') == -1 ? '?' : '&') + query;\n }\n\n return url;\n}\n\n/**\n * URL Template v2.0.6 (https://github.com/bramstein/url-template)\n */\nfunction expand(url, params, variables) {\n var tmpl = parse(url),\n expanded = tmpl.expand(params);\n\n if (variables) {\n variables.push.apply(variables, tmpl.vars);\n }\n\n return expanded;\n}\nfunction parse(template) {\n var operators = ['+', '#', '.', '/', ';', '?', '&'],\n variables = [];\n return {\n vars: variables,\n expand: function expand(context) {\n return template.replace(/\\{([^{}]+)\\}|([^{}]+)/g, function (_, expression, literal) {\n if (expression) {\n var operator = null,\n values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push.apply(values, getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n variables.push(tmp[1]);\n });\n\n if (operator && operator !== '+') {\n var separator = ',';\n\n if (operator === '?') {\n separator = '&';\n } else if (operator !== '#') {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : '') + values.join(separator);\n } else {\n return values.join(',');\n }\n } else {\n return encodeReserved(literal);\n }\n });\n }\n };\n}\n\nfunction getValues(context, operator, key, modifier) {\n var value = context[key],\n result = [];\n\n if (isDefined(value) && value !== '') {\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n value = value.toString();\n\n if (modifier && modifier !== '*') {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : null));\n } else {\n if (modifier === '*') {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : null));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n var tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeURIComponent(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeURIComponent(key) + '=' + tmp.join(','));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(','));\n }\n }\n }\n } else {\n if (operator === ';') {\n result.push(encodeURIComponent(key));\n } else if (value === '' && (operator === '&' || operator === '?')) {\n result.push(encodeURIComponent(key) + '=');\n } else if (value === '') {\n result.push('');\n }\n }\n\n return result;\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === ';' || operator === '&' || operator === '?';\n}\n\nfunction encodeValue(operator, value, key) {\n value = operator === '+' || operator === '#' ? encodeReserved(value) : encodeURIComponent(value);\n\n if (key) {\n return encodeURIComponent(key) + '=' + value;\n } else {\n return value;\n }\n}\n\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part);\n }\n\n return part;\n }).join('');\n}\n\n/**\n * URL Template (RFC 6570) Transform.\n */\nfunction template (options) {\n var variables = [],\n url = expand(options.url, options.params, variables);\n variables.forEach(function (key) {\n delete options.params[key];\n });\n return url;\n}\n\n/**\n * Service for URL templating.\n */\nfunction Url(url, params) {\n var self = this || {},\n options$$1 = url,\n transform;\n\n if (isString(url)) {\n options$$1 = {\n url: url,\n params: params\n };\n }\n\n options$$1 = merge({}, Url.options, self.$options, options$$1);\n Url.transforms.forEach(function (handler) {\n if (isString(handler)) {\n handler = Url.transform[handler];\n }\n\n if (isFunction(handler)) {\n transform = factory(handler, transform, self.$vm);\n }\n });\n return transform(options$$1);\n}\n/**\n * Url options.\n */\n\nUrl.options = {\n url: '',\n root: null,\n params: {}\n};\n/**\n * Url transforms.\n */\n\nUrl.transform = {\n template: template,\n query: query,\n root: root\n};\nUrl.transforms = ['template', 'query', 'root'];\n/**\n * Encodes a Url parameter string.\n *\n * @param {Object} obj\n */\n\nUrl.params = function (obj) {\n var params = [],\n escape = encodeURIComponent;\n\n params.add = function (key, value) {\n if (isFunction(value)) {\n value = value();\n }\n\n if (value === null) {\n value = '';\n }\n\n this.push(escape(key) + '=' + escape(value));\n };\n\n serialize(params, obj);\n return params.join('&').replace(/%20/g, '+');\n};\n/**\n * Parse a URL and return its components.\n *\n * @param {String} url\n */\n\n\nUrl.parse = function (url) {\n var el = document.createElement('a');\n\n if (document.documentMode) {\n el.href = url;\n url = el.href;\n }\n\n el.href = url;\n return {\n href: el.href,\n protocol: el.protocol ? el.protocol.replace(/:$/, '') : '',\n port: el.port,\n host: el.host,\n hostname: el.hostname,\n pathname: el.pathname.charAt(0) === '/' ? el.pathname : '/' + el.pathname,\n search: el.search ? el.search.replace(/^\\?/, '') : '',\n hash: el.hash ? el.hash.replace(/^#/, '') : ''\n };\n};\n\nfunction factory(handler, next, vm) {\n return function (options$$1) {\n return handler.call(vm, options$$1, next);\n };\n}\n\nfunction serialize(params, obj, scope) {\n var array = isArray(obj),\n plain = isPlainObject(obj),\n hash;\n each(obj, function (value, key) {\n hash = isObject(value) || isArray(value);\n\n if (scope) {\n key = scope + '[' + (plain || hash ? key : '') + ']';\n }\n\n if (!scope && array) {\n params.add(value.name, value.value);\n } else if (hash) {\n serialize(params, value, key);\n } else {\n params.add(key, value);\n }\n });\n}\n\n/**\n * XDomain client (Internet Explorer).\n */\nfunction xdrClient (request) {\n return new PromiseObj(function (resolve) {\n var xdr = new XDomainRequest(),\n handler = function handler(_ref) {\n var type = _ref.type;\n var status = 0;\n\n if (type === 'load') {\n status = 200;\n } else if (type === 'error') {\n status = 500;\n }\n\n resolve(request.respondWith(xdr.responseText, {\n status: status\n }));\n };\n\n request.abort = function () {\n return xdr.abort();\n };\n\n xdr.open(request.method, request.getUrl());\n\n if (request.timeout) {\n xdr.timeout = request.timeout;\n }\n\n xdr.onload = handler;\n xdr.onabort = handler;\n xdr.onerror = handler;\n xdr.ontimeout = handler;\n\n xdr.onprogress = function () {};\n\n xdr.send(request.getBody());\n });\n}\n\n/**\n * CORS Interceptor.\n */\nvar SUPPORTS_CORS = inBrowser && 'withCredentials' in new XMLHttpRequest();\nfunction cors (request) {\n if (inBrowser) {\n var orgUrl = Url.parse(location.href);\n var reqUrl = Url.parse(request.getUrl());\n\n if (reqUrl.protocol !== orgUrl.protocol || reqUrl.host !== orgUrl.host) {\n request.crossOrigin = true;\n request.emulateHTTP = false;\n\n if (!SUPPORTS_CORS) {\n request.client = xdrClient;\n }\n }\n }\n}\n\n/**\n * Form data Interceptor.\n */\nfunction form (request) {\n if (isFormData(request.body)) {\n request.headers[\"delete\"]('Content-Type');\n } else if (isObject(request.body) && request.emulateJSON) {\n request.body = Url.params(request.body);\n request.headers.set('Content-Type', 'application/x-www-form-urlencoded');\n }\n}\n\n/**\n * JSON Interceptor.\n */\nfunction json (request) {\n var type = request.headers.get('Content-Type') || '';\n\n if (isObject(request.body) && type.indexOf('application/json') === 0) {\n request.body = JSON.stringify(request.body);\n }\n\n return function (response) {\n return response.bodyText ? when(response.text(), function (text) {\n var type = response.headers.get('Content-Type') || '';\n\n if (type.indexOf('application/json') === 0 || isJson(text)) {\n try {\n response.body = JSON.parse(text);\n } catch (e) {\n response.body = null;\n }\n } else {\n response.body = text;\n }\n\n return response;\n }) : response;\n };\n}\n\nfunction isJson(str) {\n var start = str.match(/^\\s*(\\[|\\{)/);\n var end = {\n '[': /]\\s*$/,\n '{': /}\\s*$/\n };\n return start && end[start[1]].test(str);\n}\n\n/**\n * JSONP client (Browser).\n */\nfunction jsonpClient (request) {\n return new PromiseObj(function (resolve) {\n var name = request.jsonp || 'callback',\n callback = request.jsonpCallback || '_jsonp' + Math.random().toString(36).substr(2),\n body = null,\n handler,\n script;\n\n handler = function handler(_ref) {\n var type = _ref.type;\n var status = 0;\n\n if (type === 'load' && body !== null) {\n status = 200;\n } else if (type === 'error') {\n status = 500;\n }\n\n if (status && window[callback]) {\n delete window[callback];\n document.body.removeChild(script);\n }\n\n resolve(request.respondWith(body, {\n status: status\n }));\n };\n\n window[callback] = function (result) {\n body = JSON.stringify(result);\n };\n\n request.abort = function () {\n handler({\n type: 'abort'\n });\n };\n\n request.params[name] = callback;\n\n if (request.timeout) {\n setTimeout(request.abort, request.timeout);\n }\n\n script = document.createElement('script');\n script.src = request.getUrl();\n script.type = 'text/javascript';\n script.async = true;\n script.onload = handler;\n script.onerror = handler;\n document.body.appendChild(script);\n });\n}\n\n/**\n * JSONP Interceptor.\n */\nfunction jsonp (request) {\n if (request.method == 'JSONP') {\n request.client = jsonpClient;\n }\n}\n\n/**\n * Before Interceptor.\n */\nfunction before (request) {\n if (isFunction(request.before)) {\n request.before.call(this, request);\n }\n}\n\n/**\n * HTTP method override Interceptor.\n */\nfunction method (request) {\n if (request.emulateHTTP && /^(PUT|PATCH|DELETE)$/i.test(request.method)) {\n request.headers.set('X-HTTP-Method-Override', request.method);\n request.method = 'POST';\n }\n}\n\n/**\n * Header Interceptor.\n */\nfunction header (request) {\n var headers = assign({}, Http.headers.common, !request.crossOrigin ? Http.headers.custom : {}, Http.headers[toLower(request.method)]);\n each(headers, function (value, name) {\n if (!request.headers.has(name)) {\n request.headers.set(name, value);\n }\n });\n}\n\n/**\n * XMLHttp client (Browser).\n */\nfunction xhrClient (request) {\n return new PromiseObj(function (resolve) {\n var xhr = new XMLHttpRequest(),\n handler = function handler(event) {\n var response = request.respondWith('response' in xhr ? xhr.response : xhr.responseText, {\n status: xhr.status === 1223 ? 204 : xhr.status,\n // IE9 status bug\n statusText: xhr.status === 1223 ? 'No Content' : trim(xhr.statusText)\n });\n each(trim(xhr.getAllResponseHeaders()).split('\\n'), function (row) {\n response.headers.append(row.slice(0, row.indexOf(':')), row.slice(row.indexOf(':') + 1));\n });\n resolve(response);\n };\n\n request.abort = function () {\n return xhr.abort();\n };\n\n xhr.open(request.method, request.getUrl(), true);\n\n if (request.timeout) {\n xhr.timeout = request.timeout;\n }\n\n if (request.responseType && 'responseType' in xhr) {\n xhr.responseType = request.responseType;\n }\n\n if (request.withCredentials || request.credentials) {\n xhr.withCredentials = true;\n }\n\n if (!request.crossOrigin) {\n request.headers.set('X-Requested-With', 'XMLHttpRequest');\n } // deprecated use downloadProgress\n\n\n if (isFunction(request.progress) && request.method === 'GET') {\n xhr.addEventListener('progress', request.progress);\n }\n\n if (isFunction(request.downloadProgress)) {\n xhr.addEventListener('progress', request.downloadProgress);\n } // deprecated use uploadProgress\n\n\n if (isFunction(request.progress) && /^(POST|PUT)$/i.test(request.method)) {\n xhr.upload.addEventListener('progress', request.progress);\n }\n\n if (isFunction(request.uploadProgress) && xhr.upload) {\n xhr.upload.addEventListener('progress', request.uploadProgress);\n }\n\n request.headers.forEach(function (value, name) {\n xhr.setRequestHeader(name, value);\n });\n xhr.onload = handler;\n xhr.onabort = handler;\n xhr.onerror = handler;\n xhr.ontimeout = handler;\n xhr.send(request.getBody());\n });\n}\n\n/**\n * Http client (Node).\n */\nfunction nodeClient (request) {\n var client = require('got');\n\n return new PromiseObj(function (resolve) {\n var url = request.getUrl();\n var body = request.getBody();\n var method = request.method;\n var headers = {},\n handler;\n request.headers.forEach(function (value, name) {\n headers[name] = value;\n });\n client(url, {\n body: body,\n method: method,\n headers: headers\n }).then(handler = function handler(resp) {\n var response = request.respondWith(resp.body, {\n status: resp.statusCode,\n statusText: trim(resp.statusMessage)\n });\n each(resp.headers, function (value, name) {\n response.headers.set(name, value);\n });\n resolve(response);\n }, function (error$$1) {\n return handler(error$$1.response);\n });\n });\n}\n\n/**\n * Base client.\n */\nfunction Client (context) {\n var reqHandlers = [sendRequest],\n resHandlers = [];\n\n if (!isObject(context)) {\n context = null;\n }\n\n function Client(request) {\n while (reqHandlers.length) {\n var handler = reqHandlers.pop();\n\n if (isFunction(handler)) {\n var _ret = function () {\n var response = void 0,\n next = void 0;\n response = handler.call(context, request, function (val) {\n return next = val;\n }) || next;\n\n if (isObject(response)) {\n return {\n v: new PromiseObj(function (resolve, reject) {\n resHandlers.forEach(function (handler) {\n response = when(response, function (response) {\n return handler.call(context, response) || response;\n }, reject);\n });\n when(response, resolve, reject);\n }, context)\n };\n }\n\n if (isFunction(response)) {\n resHandlers.unshift(response);\n }\n }();\n\n if (typeof _ret === \"object\") return _ret.v;\n } else {\n warn(\"Invalid interceptor of type \" + typeof handler + \", must be a function\");\n }\n }\n }\n\n Client.use = function (handler) {\n reqHandlers.push(handler);\n };\n\n return Client;\n}\n\nfunction sendRequest(request) {\n var client = request.client || (inBrowser ? xhrClient : nodeClient);\n return client(request);\n}\n\n/**\n * HTTP Headers.\n */\n\nvar Headers = /*#__PURE__*/function () {\n function Headers(headers) {\n var _this = this;\n\n this.map = {};\n each(headers, function (value, name) {\n return _this.append(name, value);\n });\n }\n\n var _proto = Headers.prototype;\n\n _proto.has = function has(name) {\n return getName(this.map, name) !== null;\n };\n\n _proto.get = function get(name) {\n var list = this.map[getName(this.map, name)];\n return list ? list.join() : null;\n };\n\n _proto.getAll = function getAll(name) {\n return this.map[getName(this.map, name)] || [];\n };\n\n _proto.set = function set(name, value) {\n this.map[normalizeName(getName(this.map, name) || name)] = [trim(value)];\n };\n\n _proto.append = function append(name, value) {\n var list = this.map[getName(this.map, name)];\n\n if (list) {\n list.push(trim(value));\n } else {\n this.set(name, value);\n }\n };\n\n _proto[\"delete\"] = function _delete(name) {\n delete this.map[getName(this.map, name)];\n };\n\n _proto.deleteAll = function deleteAll() {\n this.map = {};\n };\n\n _proto.forEach = function forEach(callback, thisArg) {\n var _this2 = this;\n\n each(this.map, function (list, name) {\n each(list, function (value) {\n return callback.call(thisArg, value, name, _this2);\n });\n });\n };\n\n return Headers;\n}();\n\nfunction getName(map, name) {\n return Object.keys(map).reduce(function (prev, curr) {\n return toLower(name) === toLower(curr) ? curr : prev;\n }, null);\n}\n\nfunction normalizeName(name) {\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name');\n }\n\n return trim(name);\n}\n\n/**\n * HTTP Response.\n */\n\nvar Response = /*#__PURE__*/function () {\n function Response(body, _ref) {\n var url = _ref.url,\n headers = _ref.headers,\n status = _ref.status,\n statusText = _ref.statusText;\n this.url = url;\n this.ok = status >= 200 && status < 300;\n this.status = status || 0;\n this.statusText = statusText || '';\n this.headers = new Headers(headers);\n this.body = body;\n\n if (isString(body)) {\n this.bodyText = body;\n } else if (isBlob(body)) {\n this.bodyBlob = body;\n\n if (isBlobText(body)) {\n this.bodyText = blobText(body);\n }\n }\n }\n\n var _proto = Response.prototype;\n\n _proto.blob = function blob() {\n return when(this.bodyBlob);\n };\n\n _proto.text = function text() {\n return when(this.bodyText);\n };\n\n _proto.json = function json() {\n return when(this.text(), function (text) {\n return JSON.parse(text);\n });\n };\n\n return Response;\n}();\nObject.defineProperty(Response.prototype, 'data', {\n get: function get() {\n return this.body;\n },\n set: function set(body) {\n this.body = body;\n }\n});\n\nfunction blobText(body) {\n return new PromiseObj(function (resolve) {\n var reader = new FileReader();\n reader.readAsText(body);\n\n reader.onload = function () {\n resolve(reader.result);\n };\n });\n}\n\nfunction isBlobText(body) {\n return body.type.indexOf('text') === 0 || body.type.indexOf('json') !== -1;\n}\n\n/**\n * HTTP Request.\n */\n\nvar Request = /*#__PURE__*/function () {\n function Request(options$$1) {\n this.body = null;\n this.params = {};\n assign(this, options$$1, {\n method: toUpper(options$$1.method || 'GET')\n });\n\n if (!(this.headers instanceof Headers)) {\n this.headers = new Headers(this.headers);\n }\n }\n\n var _proto = Request.prototype;\n\n _proto.getUrl = function getUrl() {\n return Url(this);\n };\n\n _proto.getBody = function getBody() {\n return this.body;\n };\n\n _proto.respondWith = function respondWith(body, options$$1) {\n return new Response(body, assign(options$$1 || {}, {\n url: this.getUrl()\n }));\n };\n\n return Request;\n}();\n\n/**\n * Service for sending network requests.\n */\nvar COMMON_HEADERS = {\n 'Accept': 'application/json, text/plain, */*'\n};\nvar JSON_CONTENT_TYPE = {\n 'Content-Type': 'application/json;charset=utf-8'\n};\nfunction Http(options$$1) {\n var self = this || {},\n client = Client(self.$vm);\n defaults(options$$1 || {}, self.$options, Http.options);\n Http.interceptors.forEach(function (handler) {\n if (isString(handler)) {\n handler = Http.interceptor[handler];\n }\n\n if (isFunction(handler)) {\n client.use(handler);\n }\n });\n return client(new Request(options$$1)).then(function (response) {\n return response.ok ? response : PromiseObj.reject(response);\n }, function (response) {\n if (response instanceof Error) {\n error(response);\n }\n\n return PromiseObj.reject(response);\n });\n}\nHttp.options = {};\nHttp.headers = {\n put: JSON_CONTENT_TYPE,\n post: JSON_CONTENT_TYPE,\n patch: JSON_CONTENT_TYPE,\n \"delete\": JSON_CONTENT_TYPE,\n common: COMMON_HEADERS,\n custom: {}\n};\nHttp.interceptor = {\n before: before,\n method: method,\n jsonp: jsonp,\n json: json,\n form: form,\n header: header,\n cors: cors\n};\nHttp.interceptors = ['before', 'method', 'jsonp', 'json', 'form', 'header', 'cors'];\n['get', 'delete', 'head', 'jsonp'].forEach(function (method$$1) {\n Http[method$$1] = function (url, options$$1) {\n return this(assign(options$$1 || {}, {\n url: url,\n method: method$$1\n }));\n };\n});\n['post', 'put', 'patch'].forEach(function (method$$1) {\n Http[method$$1] = function (url, body, options$$1) {\n return this(assign(options$$1 || {}, {\n url: url,\n method: method$$1,\n body: body\n }));\n };\n});\n\n/**\n * Service for interacting with RESTful services.\n */\nfunction Resource(url, params, actions, options$$1) {\n var self = this || {},\n resource = {};\n actions = assign({}, Resource.actions, actions);\n each(actions, function (action, name) {\n action = merge({\n url: url,\n params: assign({}, params)\n }, options$$1, action);\n\n resource[name] = function () {\n return (self.$http || Http)(opts(action, arguments));\n };\n });\n return resource;\n}\n\nfunction opts(action, args) {\n var options$$1 = assign({}, action),\n params = {},\n body;\n\n switch (args.length) {\n case 2:\n params = args[0];\n body = args[1];\n break;\n\n case 1:\n if (/^(POST|PUT|PATCH)$/i.test(options$$1.method)) {\n body = args[0];\n } else {\n params = args[0];\n }\n\n break;\n\n case 0:\n break;\n\n default:\n throw 'Expected up to 2 arguments [params, body], got ' + args.length + ' arguments';\n }\n\n options$$1.body = body;\n options$$1.params = assign({}, options$$1.params, params);\n return options$$1;\n}\n\nResource.actions = {\n get: {\n method: 'GET'\n },\n save: {\n method: 'POST'\n },\n query: {\n method: 'GET'\n },\n update: {\n method: 'PUT'\n },\n remove: {\n method: 'DELETE'\n },\n \"delete\": {\n method: 'DELETE'\n }\n};\n\n/**\n * Install plugin.\n */\n\nfunction plugin(Vue) {\n if (plugin.installed) {\n return;\n }\n\n Util(Vue);\n Vue.url = Url;\n Vue.http = Http;\n Vue.resource = Resource;\n Vue.Promise = PromiseObj;\n Object.defineProperties(Vue.prototype, {\n $url: {\n get: function get() {\n return options(Vue.url, this, this.$options.url);\n }\n },\n $http: {\n get: function get() {\n return options(Vue.http, this, this.$options.http);\n }\n },\n $resource: {\n get: function get() {\n return Vue.resource.bind(this);\n }\n },\n $promise: {\n get: function get() {\n var _this = this;\n\n return function (executor) {\n return new Vue.Promise(executor, _this);\n };\n }\n }\n });\n}\n\nif (typeof window !== 'undefined' && window.Vue && !window.Vue.resource) {\n window.Vue.use(plugin);\n}\n\nexport default plugin;\nexport { Url, Http, Resource };\n","let getNextIndex = ({ meta, formatted, index }) => {\r\n let next = [meta.day, meta.month, meta.year].filter(part => part.pos > index).sort((partA, partB) => partA.pos - partB.pos)[0]\r\n if (next) {\r\n return next.pos\r\n } else {\r\n return formatted.length\r\n }\r\n}\r\n\r\nexport function time ({ language, options }) {\r\n let meta = {}\r\n let mask = ''\r\n let formatter = new Intl.DateTimeFormat(language, options)\r\n let date = new Date(2011, 11, 11, 11, 22, 44)\r\n let formatted = formatter.format(date)\r\n meta.separator = ''\r\n meta.hour = {\r\n pos: formatted.indexOf('11'),\r\n cases: 2,\r\n order: -1\r\n }\r\n meta.minute = {\r\n pos: formatted.indexOf('22'),\r\n cases: 2,\r\n order: -1\r\n }\r\n meta.second = {\r\n pos: formatted.indexOf('44'),\r\n cases: 2,\r\n order: -1\r\n }\r\n let limit = [ meta.hour, meta.minute, meta.second ].filter(meta => meta.pos !== -1).length\r\n\r\n let _index = 0\r\n for (let i = 0; i < limit; i++) {\r\n if (meta.hour.pos === _index) {\r\n meta.hour.order = i\r\n mask = mask + ''.padStart(meta.hour.cases, '#')\r\n if (i < limit - 1) {\r\n _index += meta.hour.cases\r\n meta.separator = formatted.substring(_index, ++_index)\r\n mask = mask + meta.separator\r\n }\r\n } else if (meta.minute.pos === _index) {\r\n meta.minute.order = i\r\n mask = mask + ''.padStart(meta.minute.cases, '#')\r\n if (i < limit - 1) {\r\n _index += meta.minute.cases\r\n meta.separator = formatted.substring(_index, ++_index)\r\n mask = mask + meta.separator\r\n }\r\n continue\r\n } else if (meta.second.pos === _index) {\r\n meta.second.order = i\r\n mask = mask + ''.padStart(meta.second.cases, '#')\r\n if (i < limit - 1) {\r\n _index += meta.ysecondear.cases\r\n meta.separator = formatted.substring(_index, ++_index)\r\n mask = mask + meta.separator\r\n }\r\n }\r\n }\r\n return { meta, mask }\r\n}\r\n\r\nexport function date ({ language, options }) {\r\n let meta = {}\r\n let mask = ''\r\n let formatter = new Intl.DateTimeFormat(language, options)\r\n let date = new Date(2048, 11, 24)\r\n let formatted = formatter.format(date)\r\n let yearCases = formatted.indexOf('2048') !== -1 ? 4 : 2\r\n meta.separator = ''\r\n meta.year = {\r\n pos: yearCases === 4 ? formatted.indexOf('2048') : formatted.indexOf('48'),\r\n cases: yearCases,\r\n order: -1\r\n }\r\n meta.month = {\r\n pos: formatted.indexOf('12'),\r\n cases: 2,\r\n order: -1\r\n }\r\n meta.day = {\r\n pos: formatted.indexOf('24'),\r\n cases: 2,\r\n order: -1\r\n }\r\n let limit = [ meta.year, meta.month, meta.day ].filter(meta => meta.pos !== -1).length\r\n \r\n let _index = 0\r\n for (let i = 0; i < limit; i++) {\r\n if (meta.day.pos === _index) {\r\n meta.day.order = i\r\n mask = mask + ''.padStart(meta.day.cases, '#')\r\n if (i < limit - 1) {\r\n _index += meta.day.cases\r\n let nextIndex = getNextIndex({ meta, formatted, index: _index })\r\n meta.separator = formatted.substring(_index, nextIndex)\r\n _index = nextIndex\r\n mask = mask + meta.separator\r\n }\r\n } else if (meta.month.pos === _index) {\r\n meta.month.order = i\r\n mask = mask + ''.padStart(meta.month.cases, '#')\r\n if (i < limit - 1) {\r\n _index += meta.month.cases\r\n let nextIndex = getNextIndex({ meta, formatted, index: _index })\r\n meta.separator = formatted.substring(_index, nextIndex)\r\n _index = nextIndex\r\n mask = mask + meta.separator\r\n }\r\n continue\r\n } else if (meta.year.pos === _index) {\r\n meta.year.order = i\r\n mask = mask + ''.padStart(meta.year.cases, '#')\r\n if (i < limit - 1) {\r\n _index += meta.year.cases\r\n let nextIndex = getNextIndex({ meta, formatted, index: _index })\r\n meta.separator = formatted.substring(_index, nextIndex)\r\n _index = nextIndex\r\n mask = mask + meta.separator\r\n }\r\n }\r\n }\r\n return { meta, mask }\r\n}\r\n\r\nexport function ampm ({ language, options }) {\r\n let ampm = { am: 'AM', pm: 'PM', suffix: true }\r\n let formatter = new Intl.DateTimeFormat(language, { ...options, hour12: true })\r\n let formatter24 = new Intl.DateTimeFormat(language, { ...options, hour12: false })\r\n let dateAM = new Date(2011, 11, 11, 11, 22, 44)\r\n let datePM = new Date(2011, 11, 11, 23, 22, 44)\r\n let formatted24 = formatter24.format(dateAM)\r\n let formattedAM = formatter.format(dateAM)\r\n let formattedPM = formatter.format(datePM)\r\n ampm.am = formattedAM.replace(formatted24, '').trim()\r\n ampm.pm = formattedPM.replace(formatted24, '').trim()\r\n ampm.suffix = formattedAM.endsWith(ampm.am)\r\n return ampm\r\n}","export function parse ({ proporsal, withSeconds }) {\r\n let padStart = (number, length = 2) => {\r\n return ('' + number).padStart(length, '0')\r\n }\r\n let objDate = new Date(proporsal)\r\n let isValid = !isNaN(objDate.getTime())\r\n if (isValid) {\r\n let year = padStart(objDate.getFullYear(), 4)\r\n let month = padStart(objDate.getMonth() + 1)\r\n let day = padStart(objDate.getDate())\r\n let hour = padStart(objDate.getHours())\r\n let minute = padStart(objDate.getMinutes())\r\n let formatted = `${year}/${month}/${day} ${hour}:${minute}`\r\n if (withSeconds) {\r\n let second = padStart(objDate.getSeconds())\r\n formatted = formatted + `:${second}`\r\n }\r\n let quasar = formatted\r\n let iso = quasar.replace(/[/]/g, '-').replace(' ', 'T')\r\n return { success: true, quasar, iso }\r\n }\r\n return { success: false, quasar: '', iso: '' }\r\n}\r\n\r\nexport function getDefault ({ base, mode }) {\r\n let meta, quasar, baseDate\r\n if (mode === 'time') {\r\n if (base) {\r\n baseDate = new Date(base)\r\n }\r\n } else {\r\n if (base) {\r\n baseDate = new Date(base)\r\n } else {\r\n baseDate = new Date()\r\n }\r\n }\r\n if (baseDate) {\r\n meta = {\r\n year: ('' + baseDate.getFullYear()).padStart(4, '0'),\r\n month: ('' + (baseDate.getMonth() + 1)).padStart(2, '0'),\r\n day: ('' + baseDate.getDate()).padStart(2, '0'),\r\n }\r\n } else {\r\n meta = { year: '1970', month: '01', day: '01' }\r\n }\r\n quasar = `${meta.year}/${meta.month}/${meta.day}`\r\n return {\r\n meta,\r\n quasar\r\n }\r\n}\r\n\r\nexport function quasar ({ base, masked, ampm, mode, metas, masks }) {\r\n let today = getDefault({ base, mode })\r\n let date = today.quasar\r\n let time = '00:00:00'\r\n if (base) {\r\n const baseDate = new Date(base)\r\n let hour = (baseDate.getHours() + '').padStart(2, '0')\r\n let minute = (baseDate.getMinutes() + '').padStart(2, '0')\r\n let second = (baseDate.getSeconds() + '').padStart(2, '0')\r\n time = `${hour}:${minute}:${second}`\r\n }\r\n let maskedDate, maskedTime\r\n switch (mode) {\r\n case 'date':\r\n maskedDate = masked\r\n break\r\n case 'time':\r\n maskedTime = masked\r\n break\r\n default:\r\n maskedDate = masked.substring(0, masks.date.length)\r\n maskedTime = masked.substring(masks.date.length + 1)\r\n break\r\n }\r\n if (maskedDate) {\r\n let meta = metas.date\r\n let parts = maskedDate.split(meta.separator)\r\n let year = meta.year.order === -1 ? today.meta.years : parts[meta.year.order]\r\n let month = meta.month.order === -1 ? today.meta.month : parts[meta.month.order]\r\n let day = meta.day.order === -1 ? today.meta.day : parts[meta.day.order]\r\n date = `${year}/${month}/${day}`\r\n }\r\n if (maskedTime) {\r\n let meta = metas.time\r\n let parts = maskedTime.split(meta.separator)\r\n let hour = meta.hour.order === -1 ? '00' : parts[meta.hour.order].padStart(2, '0')\r\n let minute = meta.minute.order === -1 ? '00' : parts[meta.minute.order].padStart(2, '0')\r\n let second = meta.second.order === -1 ? '00' : parts[meta.second.order].padStart(2, '0')\r\n if (ampm) {\r\n let hours = parseInt(hour)\r\n let minutes = parseInt(minute)\r\n if (hours === 12 && minutes === 0) {\r\n ampm = ampm === 'PM' ? 'AM' : 'PM'\r\n } else if (hours >= 12) {\r\n hours -= 12\r\n ampm = 'PM'\r\n }\r\n if (ampm === 'PM') {\r\n hours += 12\r\n }\r\n if (hours === 24) {\r\n hours = 0\r\n }\r\n hour = ('' + hours).padStart(2, '0')\r\n }\r\n time = `${hour}:${minute}:${second}`\r\n }\r\n return `${date} ${time}`\r\n}\r\n\r\nexport function masked ({ values, metas, masks }) {\r\n let date, time, time12, ampm, meta, parts, parts12, array, array12, metaList\r\n if (masks.date) {\r\n date = values.date\r\n meta = metas.date\r\n parts = date.split('/')\r\n array = []\r\n metaList = [meta.year, meta.month, meta.day].map((meta, index) => ({ meta, index }))\r\n for (let pos = 0; pos < 3; pos++) {\r\n let metaItem = metaList.find(item => item.meta.order === pos)\r\n if (metaItem && metaItem.index !== -1) {\r\n let value = parts[metaItem.index]\r\n if (value) {\r\n array.push(parts[metaItem.index])\r\n }\r\n }\r\n }\r\n date = array.join(meta.separator)\r\n }\r\n if (masks.time) {\r\n meta = metas.time\r\n\r\n time = values.time\r\n time12 = values.time \r\n parts = time.split(':')\r\n parts12 = time12.split(':')\r\n array = []\r\n array12 = []\r\n\r\n let hours = parseInt(parts12[0])\r\n let minutes = parseInt(parts12[1])\r\n ampm = hours >= 12 ? 'PM' : 'AM'\r\n if (ampm === 'PM') {\r\n hours -= 12\r\n }\r\n if (hours === 0 && minutes === 0) {\r\n hours += 12\r\n }\r\n parts12[0] = ('' + hours).padStart(2, '0')\r\n\r\n metaList = [meta.hour, meta.minute, meta.second].map((meta, index) => ({ meta, index }))\r\n for (let pos = 0; pos < 3; pos++) {\r\n let metaItem = metaList.find(item => item.meta.order === pos)\r\n if (metaItem && metaItem.index !== -1) {\r\n let value = parts[metaItem.index]\r\n if (value) {\r\n array.push(parts[metaItem.index])\r\n array12.push(parts12[metaItem.index])\r\n }\r\n }\r\n }\r\n time = array.join(meta.separator)\r\n time12 = array12.join(meta.separator)\r\n }\r\n if (masks.date && masks.time) {\r\n return {\r\n format12: `${date} ${time12}`,\r\n format24: `${date} ${time}`,\r\n ampm\r\n }\r\n } else if (masks.date) {\r\n return { format12: date, format24: date, ampm }\r\n } else {\r\n return { format12: time12, format24: time, ampm }\r\n }\r\n}\r\n","import {\r\n QBtn,\r\n QField,\r\n QInput,\r\n QIcon,\r\n QDate,\r\n QTime,\r\n QPopupProxy,\r\n QCard,\r\n QCardActions,\r\n QTabs,\r\n QTab,\r\n QTabPanels,\r\n QTabPanel\r\n} from 'quasar'\r\n\r\nimport Vue from 'vue'\r\nconst icons = Vue.observable({\r\n date: 'event',\r\n time: 'access_time'\r\n})\r\n\r\nconst Render = function (self, h) {\r\n this.h = h\r\n this.self = self\r\n}\r\n \r\nRender.prototype.main = function () {\r\n let that = this\r\n let { h, self } = that\r\n \r\n let isClearable = !!self.values.input && self.clearable && !self.disable && !self.readonly\r\n let component = self.isReadonly ? QField : QInput\r\n let children = []\r\n if (self.isReadonly && !self.disablePopup) {\r\n children.push(this.popup())\r\n }\r\n\r\n let input = this.factory({\r\n component,\r\n children,\r\n cbOptions (options) {\r\n options.scopedSlots.append = function (props) {\r\n let icons = []\r\n if (!self.format24h && self.ampmSuffix && typeof self.displayValue !== 'string') {\r\n icons.push(that.suffix())\r\n }\r\n if (isClearable) {\r\n icons.push(that.clear())\r\n }\r\n if (!self.isReadonly && !self.disablePopup) {\r\n icons.push(that.trigger())\r\n }\r\n return icons\r\n }\r\n\r\n if (self.rules) {\r\n options.props.rules = self.rules.map(rule => {\r\n return (val) => {\r\n return rule(self.value)\r\n }\r\n })\r\n }\r\n\r\n if (!self.isReadonly) {\r\n options.props.clearable = false\r\n options.props.mask = self.mask\r\n options.props.value = self.values.input || ''\r\n options.on.input = function (value) {\r\n self.values.input = value\r\n if (self.values.input.length === self.mask.length || self.values.input.length === 0) {\r\n self.onInputFilled()\r\n }\r\n }\r\n options.on.blur = function (value) {\r\n self.onInputBlur()\r\n }\r\n options.on.keyup = function (value) {\r\n switch (true) {\r\n case self.format24h: return\r\n case event.keyCode === 65 && self.values.suffix === 'PM':\r\n case event.keyCode === 80 && self.values.suffix === 'AM': self.toggleSuffix(); break\r\n case event.shiftKey: return\r\n case event.keyCode === 38:\r\n case event.keyCode === 40: self.toggleSuffix()\r\n }\r\n }\r\n } else {\r\n let text = typeof self.displayValue === 'string' ? self.displayValue : self.values.input\r\n options.props.stackLabel = !!text\r\n options.scopedSlots.control = function (props) {\r\n return h('span', {}, text || '')\r\n }\r\n }\r\n }\r\n })\r\n\r\n return input\r\n}\r\n\r\nRender.prototype.factory = function ({ component, ref, children, cbOptions }) {\r\n const { value, rules, ...props } = this.self.$props\r\n const { input, ...listeners } = this.self.$listeners\r\n const { append, ...scopedSlots } = this.self.$scopedSlots\r\n const { ...attrs } = this.self.$attrs\r\n const options = {\r\n attrs,\r\n props,\r\n on: listeners,\r\n scopedSlots: scopedSlots\r\n }\r\n if (ref) {\r\n options.ref = ref\r\n }\r\n if (cbOptions) {\r\n cbOptions(options)\r\n }\r\n return this.h(component, options, children)\r\n}\r\n\r\nRender.prototype.clear = function () {\r\n let { h, self } = this\r\n return h(QIcon, {\r\n staticClass: 'cursor-pointer',\r\n props: { \r\n name: self.clearIcon || self.$q.iconSet.field.clear\r\n },\r\n on: {\r\n click: e => {\r\n e.stopPropagation()\r\n self.values.input = ''\r\n self.onInputFilled()\r\n }\r\n }\r\n })\r\n}\r\n\r\nRender.prototype.suffix = function () {\r\n let { h, self } = this\r\n return h('h6', {\r\n class: `text-${self.color || 'primary'} cursor-pointer q-pr-xs`,\r\n on: {\r\n click (event) {\r\n if (!self.disable && !self.readonly)\r\n self.toggleSuffix()\r\n }\r\n }\r\n }, self.ampmSuffix)\r\n\r\n}\r\n\r\nRender.prototype.trigger = function () {\r\n let { h, self } = this\r\n let icon = self.mode === 'time' ? self.timeIcon : self.dateIcon;\r\n let _default = self.mode === 'time' ? icons.time : icons.date\r\n let _children = !self.disablePopup ? [this.popup()] : []\r\n let trigger = h(QIcon, {\r\n staticClass: 'cursor-pointer',\r\n props: {\r\n name: icon || self.icon || _default\r\n }\r\n }, _children)\r\n return trigger\r\n}\r\n\r\nRender.prototype.popup = function () {\r\n let that = this\r\n let { self } = that\r\n return that.factory({ \r\n ref: 'popup', \r\n component: QPopupProxy, \r\n children: [that.card()],\r\n cbOptions (options) {\r\n delete options.props.target\r\n options.on['before-show'] = self.onPopupShow\r\n options.on['before-hide'] = self.onPopupHide\r\n if (self.target === 'self' || !!self.displayValue) {\r\n options.attrs.fit = true\r\n options.attrs.cover = true\r\n options.attrs.anchor = self.anchor === void 0 ? 'top left' : self.anchor\r\n } else {\r\n options.attrs.fit = false\r\n options.attrs.cover = true\r\n }\r\n }\r\n })\r\n}\r\n\r\nRender.prototype.card = function () {\r\n let that = this\r\n let { h, self } = that\r\n let children = [ that.content() ]\r\n if (!self.autoUpdateValue) {\r\n children.push(h(QCardActions, {\r\n props: {\r\n align: 'right',\r\n dark: self.dark\r\n }\r\n }, [\r\n h(QBtn, {\r\n props: {\r\n dark: self.dark,\r\n flat: true,\r\n color: 'default'\r\n },\r\n on: {\r\n click () { self.$refs.popup.hide() }\r\n },\r\n scopedSlots: {\r\n default (props) {\r\n return self.$q.lang.label.cancel || 'Cancel'\r\n }\r\n }\r\n }, []),\r\n h(QBtn, {\r\n props: {\r\n dark: self.dark,\r\n flat: true,\r\n color: self.color || 'primary'\r\n },\r\n on: {\r\n click () { self.onSetClick() }\r\n },\r\n scopedSlots: {\r\n default (props) {\r\n return self.$q.lang.label.set || 'Set'\r\n }\r\n }\r\n }, [])\r\n ]))\r\n }\r\n return that.factory({\r\n ref: 'card',\r\n component: QCard,\r\n children,\r\n cbOptions (options) {\r\n options.class = {\r\n 'q-datetimepicker': true,\r\n 'q-datetimepicker-full-width': self.target === 'self' || !!self.displayValue,\r\n 'q-datetimepicker-landscape': self.landscape,\r\n 'q-datetimepicker-portrait': !self.landscape\r\n }\r\n }\r\n })\r\n}\r\n\r\nRender.prototype.content = function () {\r\n let that = this\r\n let { h, self } = that\r\n\r\n switch (self.mode) {\r\n case 'date': return that.date()\r\n case 'time': return that.time()\r\n default: return that.tabs()\r\n }\r\n}\r\n\r\nRender.prototype.tabs = function () {\r\n let that = this\r\n let { h, self } = that\r\n if (self.hideTabs) {\r\n return [that.tabsContent()]\r\n }\r\n if (self.landscape) {\r\n return [\r\n h('div', {\r\n class: { 'row': true }\r\n }, [\r\n h('div', {\r\n class: { 'col-auto': true },\r\n style: { 'min-width': '75px' }\r\n }, [that.tabsTitle()]),\r\n h('div', {\r\n class: { 'col': true }\r\n }, [that.tabsContent()])\r\n ])\r\n ]\r\n } else {\r\n return [\r\n that.tabsTitle(),\r\n that.tabsContent()\r\n ]\r\n }\r\n}\r\n\r\nRender.prototype.tabsTitle = function () {\r\n let that = this\r\n let { h, self } = that\r\n\r\n return h(QTabs, {\r\n class: `bg-${self.color || 'primary'} text-white`,\r\n props: {\r\n value: self.tab,\r\n vertical: self.landscape,\r\n dense: true\r\n },\r\n on: {\r\n input (value) {\r\n self.tab = value\r\n }\r\n }\r\n }, [\r\n h(QTab, {\r\n props: {\r\n name: 'date',\r\n icon: self.dateIcon || icons.date,\r\n label: self.isoLang.dateTimePicker.date\r\n }\r\n }, []),\r\n h(QTab, {\r\n props: {\r\n name: 'time',\r\n icon: self.timeIcon || icons.time,\r\n label: self.isoLang.dateTimePicker.time\r\n }\r\n }, [])\r\n ])\r\n}\r\n\r\nRender.prototype.tabsContent = function () {\r\n let that = this\r\n let { h, self } = that\r\n\r\n return h(QTabPanels, {\r\n props: {\r\n value: self.tab\r\n },\r\n on: {\r\n input (value) {\r\n self.tab = value\r\n }\r\n }\r\n }, [\r\n h(QTabPanel, {\r\n props: {\r\n name: 'date'\r\n }\r\n }, [that.date()]),\r\n h(QTabPanel, {\r\n props: {\r\n name: 'time'\r\n }\r\n }, [that.time()])\r\n ])\r\n}\r\n\r\nRender.prototype.date = function () {\r\n let that = this\r\n let { h, self } = that\r\n\r\n return that.factory({\r\n component: QDate,\r\n cbOptions (options) {\r\n options.props.options = self.dateOptions\r\n options.props.mask = self.dateMask\r\n options.props.value = self.values.date\r\n options.on.input = function (value) {\r\n self.values.date = value\r\n if (self.autoUpdateValue) {\r\n self.onSetClick()\r\n }\r\n }\r\n }\r\n })\r\n}\r\n\r\nRender.prototype.time = function () {\r\n let that = this\r\n let { h, self } = that\r\n\r\n return that.factory({\r\n component: QTime,\r\n cbOptions (options) {\r\n options.props.options = self.timeOptions\r\n options.props.mask = self.timeMask\r\n options.props.value = self.values.time\r\n options.on.input = function (value) {\r\n self.values.time = value\r\n if (self.autoUpdateValue) {\r\n self.onSetClick()\r\n }\r\n }\r\n }\r\n })\r\n}\r\n\r\nexport default Render\r\nexport { icons }\r\n","export default {\r\n lang: 'en-us',\r\n dateTimePicker: {\r\n date: 'Date',\r\n time: 'Time'\r\n }\r\n}\r\n","import Vue from 'vue'\r\nimport * as meta from 'quasar-app-extension-qdatetimepicker/src/services/meta.js'\r\nimport * as date from 'quasar-app-extension-qdatetimepicker/src/services/date.js'\r\nimport Render, { icons } from 'quasar-app-extension-qdatetimepicker/src/services/render.js'\r\n\r\nimport {\r\n dom,\r\n QField,\r\n QInput,\r\n QMenu,\r\n QDialog,\r\n QDate,\r\n QTime\r\n} from 'quasar'\r\n\r\nlet { options: timeOptions, mask: timeMask, ...timeProps } = QTime.options.props\r\nlet { options: dateOptions, mask: dateMask, ...dateProps } = QDate.options.props\r\nlet { mask: maskInput, ...inputProps } = QInput.options.props\r\n\r\nconst { value, clearable, ...props } = {\r\n ...QDialog.options.props,\r\n ...QMenu.options.props,\r\n ...timeProps,\r\n ...dateProps,\r\n ...inputProps,\r\n timeOptions,\r\n dateOptions,\r\n timeMask,\r\n dateMask,\r\n lang: String,\r\n mode: {\r\n type: String,\r\n default: 'date',\r\n validation (value) {\r\n return ['date', 'time', 'datetime'].indexOf(value) !== -1\r\n }\r\n },\r\n calendar: {\r\n type: String,\r\n default: 'gregorian',\r\n validation (value) {\r\n return ['gregorian', 'persian'].indexOf(value) !== -1\r\n }\r\n },\r\n target: {\r\n type: String,\r\n default: 'icon',\r\n validation (value) {\r\n return ['self', 'icon'].indexOf(value) !== -1\r\n }\r\n },\r\n icon: {\r\n type: String,\r\n default: undefined\r\n },\r\n dateIcon: {\r\n type: String,\r\n default: undefined\r\n },\r\n timeIcon: {\r\n type: String,\r\n default: undefined\r\n },\r\n defaultStandard: {\r\n type: String,\r\n default: 'iso',\r\n validation (value) {\r\n return ['iso', 'quasar'].indexOf(value) !== -1\r\n }\r\n },\r\n disablePopup: {\r\n type: Boolean,\r\n default: false\r\n },\r\n displayValue: {\r\n type: [ Boolean, String ],\r\n default: false\r\n },\r\n clearIcon: String,\r\n autoUpdateValue: Boolean,\r\n hideTabs: {\r\n type: Boolean,\r\n default: false\r\n }\r\n}\r\ndelete props.fit.default\r\ndelete props.cover.default\r\ndelete props.anchor.default\r\ndelete props.contentClass\r\n\r\nexport default function ({ ssrContext }) {\r\n return Vue.extend({\r\n name: 'QDatetimePicker',\r\n mixins: [ QField ],\r\n props: props,\r\n data () {\r\n return {\r\n tab: 'date',\r\n popup: false,\r\n standard: '',\r\n configured: false,\r\n original: {\r\n input: '',\r\n date: '',\r\n time: '',\r\n },\r\n values: {\r\n input: '',\r\n date: '',\r\n time: '',\r\n quasar: '',\r\n iso: '',\r\n suffix: 'AM'\r\n },\r\n metas: {\r\n date: {},\r\n time: {},\r\n ampm: {\r\n am: 'AM',\r\n pm: 'PM',\r\n suffix: true\r\n }\r\n },\r\n masks: {\r\n date: '##/##/####',\r\n time: '##:##'\r\n },\r\n isoLang: {\r\n lang: '',\r\n dateTimePicker: {}\r\n },\r\n }\r\n },\r\n computed: {\r\n language () {\r\n return (this.lang || this.$q.lang.isoName || navigator.language) + this.intlLocale\r\n },\r\n displayDate () {\r\n return ['date', 'datetime'].indexOf(this.mode) !== -1\r\n },\r\n displayTime () {\r\n return ['time', 'datetime'].indexOf(this.mode) !== -1\r\n },\r\n intlLocale () {\r\n var calendar = 'gregory'\r\n switch (this.calendar) {\r\n case 'gregorian': calendar = 'gregory'; break\r\n case 'persian': calendar = 'persian'; break\r\n }\r\n return `-u-ca-${calendar}-nu-latn`\r\n },\r\n intlDateOptions () {\r\n return this.displayDate ? { day: '2-digit', month: '2-digit', year: 'numeric' } : {}\r\n },\r\n intlTimeOptions () {\r\n let options = {}\r\n if (this.displayTime) {\r\n options = { hour: '2-digit', minute: '2-digit', hour12: !this.format24h }\r\n if (this.withSeconds) {\r\n options.second = '2-digit'\r\n }\r\n }\r\n return options\r\n },\r\n intlOptions () {\r\n return { ...this.intlDateOptions, ...this.intlTimeOptions }\r\n },\r\n ampmSuffix () {\r\n switch (true) {\r\n case !this.values.time: return ''\r\n case this.values.suffix === 'AM': return this.metas.ampm.am\r\n case this.values.suffix === 'PM': return this.metas.ampm.pm\r\n }\r\n },\r\n mask () {\r\n if (this.masks.date && this.masks.time) {\r\n return `${this.masks.date} ${this.masks.time}`\r\n } else {\r\n return this.masks.date || this.masks.time\r\n }\r\n },\r\n inputBreakpoints () {\r\n if (this.masks.date && this.masks.time) {\r\n return `${this.masks.date} ${this.masks.time}`\r\n } else {\r\n return this.masks.date || this.masks.time\r\n }\r\n },\r\n isReadonly () {\r\n return this.disable || this.target === 'self' || !!this.displayValue\r\n },\r\n hasPopup () {\r\n switch (this.popupBehavior) {\r\n case 'never': return false\r\n case 'always': return true\r\n }\r\n }\r\n },\r\n watch: {\r\n defaultStandard: {\r\n immediate: true,\r\n handler () {\r\n if (!this.value) {\r\n this.standard = this.defaultStandard \r\n } else {\r\n let standard = this.defaultStandard \r\n switch (true) {\r\n case this.value.indexOf('-') !== -1: standard = 'iso'; break\r\n case this.value.indexOf('/') !== -1: standard = 'quasar'; break\r\n }\r\n this.standard = standard\r\n }\r\n }\r\n },\r\n language: {\r\n immediate: true,\r\n handler () {\r\n let date = { meta: {}, mask: '' }\r\n let time = { meta: {}, mask: '' }\r\n let ampm = { am: 'AM', am: 'PM', suffix: true }\r\n\r\n if (this.displayDate) {\r\n date = meta.date({ language: this.language, options: this.intlDateOptions })\r\n }\r\n if (this.displayTime) {\r\n time = meta.time({ language: this.language, options: this.intlTimeOptions })\r\n }\r\n if (!this.format24h) {\r\n ampm = meta.ampm({ language: this.language, options: this.intlTimeOptions })\r\n }\r\n\r\n this.$set(this.metas, 'date', date.meta)\r\n this.$set(this.masks, 'date', date.mask)\r\n this.$set(this.metas, 'time', time.meta)\r\n this.$set(this.masks, 'time', time.mask)\r\n this.$set(this.metas, 'ampm', ampm)\r\n this.__configLanguage()\r\n this.configured = true\r\n this.__updateValue(true)\r\n }\r\n },\r\n value: {\r\n immediate: true,\r\n handler () {\r\n if (this.configured) {\r\n this.__updateValue()\r\n }\r\n }\r\n }\r\n },\r\n methods: {\r\n __sleep (delay) {\r\n return new Promise(resolve => window.setTimeout(resolve, delay))\r\n },\r\n __configLanguage () {\r\n let isoName = this.$q.lang.isoName || this.lang || navigator.language\r\n let lang\r\n try {\r\n lang = require(`./lang/${isoName}`)\r\n } catch (e) {\r\n lang = require(`./lang/en-us`)\r\n }\r\n this.$set(this, 'isoLang', lang.default)\r\n },\r\n __updateDates (parsed) {\r\n let parts = parsed.quasar.split(' ')\r\n this.values.quasar = parsed.quasar\r\n this.values.iso = parsed.iso\r\n this.values.date = this.original.date = parts[0]\r\n this.values.time = this.original.time = parts[1]\r\n\r\n let formatted = date.masked({ values: this.values, metas: this.metas, masks: this.masks })\r\n let masked = this.format24h ? formatted.format24 : formatted.format12\r\n if (this.values.suffix !== formatted.ampm || this.values.original !== masked) {\r\n this.$nextTick().then(() => {\r\n this.values.suffix = formatted.ampm\r\n this.values.input = this.values.original = masked\r\n })\r\n }\r\n let current = this.standard === 'quasar' ? this.values.quasar : this.values.iso\r\n this.$emit('input', current)\r\n },\r\n __updateValue (force = false) {\r\n if (this.value) {\r\n let current = this.standard === 'quasar' ? this.values.quasar : this.values.iso\r\n if (force || current !== this.value) {\r\n let proporsal = this.value\r\n if (this.standard === 'iso')\r\n proporsal = proporsal.replace(/-/g, '/').replace('T', ' ')\r\n let parts = proporsal.split(' ')\r\n if (parts.length === 1) {\r\n let today = date.getDefault({ mode: this.mode })\r\n switch (this.mode) {\r\n case 'date': proporsal = proporsal + ' 00:00:00'; break\r\n case 'time': proporsal = today.quasar + ' ' + proporsal; break\r\n }\r\n }\r\n let parsed = date.parse({ proporsal, withSeconds: this.withSeconds })\r\n if (parsed.success) {\r\n this.__updateDates(parsed)\r\n }\r\n }\r\n } else {\r\n this.values.input = this.original.input = ''\r\n this.values.date = this.original.date = ''\r\n this.values.time = this.original.time = ''\r\n }\r\n },\r\n onInputFilled () {\r\n let { input: value } = this.values\r\n if (!value) {\r\n this.$emit('input', '')\r\n } else {\r\n let proporsal = date.quasar({ \r\n base: this.value,\r\n masked: value,\r\n ampm: this.format24h ? void 0 : this.values.suffix,\r\n mode: this.mode,\r\n metas: this.metas,\r\n masks: this.masks\r\n })\r\n let parsed = date.parse({ proporsal, withSeconds: this.withSeconds })\r\n if (parsed.success) {\r\n this.__updateDates(parsed)\r\n } else {\r\n let { input: original } = this.original\r\n this.$nextTick().then(() => {\r\n this.values.input = original\r\n })\r\n }\r\n }\r\n },\r\n onInputBlur () {\r\n this.masked = this.original.input\r\n },\r\n onSetClick () {\r\n let today = date.getDefault({ mode: this.mode })\r\n switch (true) {\r\n case this.mode === 'date':\r\n this.original.date = this.values.date\r\n this.$refs.popup.hide()\r\n break\r\n case this.mode === 'time':\r\n this.original.time = this.values.time\r\n this.$refs.popup.hide()\r\n break\r\n case this.mode === 'datetime' && this.tab === 'date':\r\n this.original.date = this.values.date\r\n this.tab = 'time'\r\n break\r\n case this.mode === 'datetime' && this.tab === 'time':\r\n this.original.date = this.values.date\r\n this.original.time = this.values.time\r\n this.$refs.popup.hide()\r\n break\r\n }\r\n let dateValue = this.original.date // || today.quasar\r\n let timeValue = this.original.time // || (this.withSeconds ? '00:00:00' : '00:00')\r\n if (!dateValue && timeValue) {\r\n dateValue = today.quasar\r\n }\r\n if (!timeValue && dateValue) {\r\n timeValue = (this.withSeconds ? '00:00:00' : '00:00')\r\n }\r\n if (dateValue && timeValue) {\r\n let proporsal = `${dateValue} ${timeValue}`\r\n let parsed = date.parse({ proporsal, withSeconds: this.withSeconds })\r\n if (parsed.success) {\r\n this.__updateDates(parsed)\r\n }\r\n }\r\n },\r\n onPopupShow () {\r\n this.tab = 'date'\r\n },\r\n onPopupHide () {\r\n this.values.date = this.original.date\r\n this.values.time = this.original.time\r\n },\r\n toggleSuffix () {\r\n this.values.suffix = this.values.suffix === 'PM' ? 'AM' : 'PM'\r\n if (this.values.input.length === this.mask.length) {\r\n this.onInputFilled()\r\n }\r\n }\r\n },\r\n render (h) {\r\n var self = this\r\n var render = new Render(self, h)\r\n return render.main()\r\n }\r\n })\r\n}\r\n\r\nexport { icons }\r\n","import QDatetimePicker, { icons } from './QDatetimePicker.js'\r\n\r\nexport {\r\n QDatetimePicker,\r\n icons\r\n}","import Vue from 'vue'\r\nimport { Quasar } from 'quasar'\r\n\r\nimport {\r\n QField,\r\n QInput\r\n} from 'quasar'\r\n\r\nexport default function ({ ssrContext }) {\r\n return Vue.extend({\r\n name: 'QDecimal',\r\n mixins: [ QField ],\r\n props: {\r\n value: Number,\r\n lang: String,\r\n suffix: [String, Boolean],\r\n prefix: [String, Boolean],\r\n type: {\r\n type: String,\r\n default: \"tel\"\r\n },\r\n mode: {\r\n type: String,\r\n default: \"decimal\",\r\n validation (value) {\r\n return [\"decimal\", \"currency\", \"percent\"].indexOf(value) !== -1\r\n }\r\n },\r\n currency: {\r\n type: String,\r\n validation (value) {\r\n return !value || value.length === 3\r\n }\r\n },\r\n display: {\r\n type: String,\r\n default: \"symbol\",\r\n validation (value) {\r\n return [\"symbol\", \"code\", \"name\"].indexOf(value) !== -1\r\n }\r\n },\r\n places: {\r\n type: Number,\r\n validation (value) {\r\n return value >= 1 && value <= 16\r\n }\r\n },\r\n precision: {\r\n type: Number,\r\n default: 2,\r\n validation (value) {\r\n return value >= 0 && value <= 15\r\n }\r\n },\r\n step: {\r\n type: Number,\r\n default: 1,\r\n validation (value) {\r\n return value >= 0\r\n }\r\n }\r\n },\r\n data () {\r\n return {\r\n currencyText: ''\r\n }\r\n },\r\n computed: {\r\n language () {\r\n return (this.lang || this.$q.lang.isoName || navigator.language) + '-u-nu-latn'\r\n },\r\n intl () {\r\n return {\r\n language: this.language,\r\n options: { \r\n style: this.mode, \r\n currency: this.currency, \r\n currencyDisplay: this.display, \r\n minimumFractionDigits: this.cPrecision, \r\n maximumFractionDigits: this.cPrecision\r\n }\r\n }\r\n },\r\n valueFormatter () {\r\n return Intl.NumberFormat(this.intl.language, this.intl.options)\r\n },\r\n numberFormatter () {\r\n return Intl.NumberFormat(this.intl.language, { style: 'decimal', minimumFractionDigits: this.cPrecision, maximumFractionDigits: this.cPrecision })\r\n },\r\n formatter () {\r\n if (!this.prefix && !this.suffix) {\r\n return this.valueFormatter\r\n }\r\n if (typeof this.prefix === \"boolean\" || typeof this.suffix === \"boolean\") {\r\n return this.numberFormatter\r\n }\r\n return this.valueFormatter\r\n },\r\n cPrecision () {\r\n return this.mode === 'percent' ? 0 : this.precision\r\n },\r\n cPrefix () {\r\n return this.prefix ? (typeof this.prefix === \"boolean\" ? this.currencyText : this.prefix) : null\r\n },\r\n cSuffix () {\r\n return this.suffix ? (typeof this.suffix === \"boolean\" ? this.currencyText : this.suffix) : null\r\n },\r\n cValue: {\r\n get () { \r\n return this.formatter.format(this.value)\r\n },\r\n set (value) {\r\n let onlyNumbers = value.replace(/\\D/gi, '') || '0'\r\n let limit = this.places && this.places + this.precision <= 16 ? this.places + this.precision : 16\r\n if (onlyNumbers.length > limit) {\r\n onlyNumbers = onlyNumbers.substring(onlyNumbers.length - limit)\r\n }\r\n let interger = parseInt(onlyNumbers)\r\n let decimal = interger / Math.pow(10, this.cPrecision)\r\n this.$emit('input', parseFloat(decimal))\r\n },\r\n }\r\n },\r\n watch: {\r\n intl: {\r\n immediate: true,\r\n handler () {\r\n switch(this.mode)\r\n {\r\n case 'decimal': \r\n this.currencyText = ''\r\n break\r\n case 'percent': \r\n this.currencyText = '%'\r\n break\r\n default:\r\n var number = 12.34\r\n var texts = {\r\n value: this.valueFormatter.format(number),\r\n number: this.numberFormatter.format(number)\r\n }\r\n this.currencyText = texts.value.replace(texts.number, '').trim()\r\n break\r\n }\r\n }\r\n }\r\n },\r\n methods: {\r\n validate () {\r\n return this.$refs.input.validate()\r\n }\r\n },\r\n render (h) {\r\n var self = this\r\n var attrs = { ...self.$attrs };\r\n var props = { ...self.$props, value: self.cValue }\r\n props.prefix = self.cPrefix\r\n props.suffix = self.cSuffix\r\n props.rules = props.rules ? props.rules.map(rule => {\r\n return (val) => rule(self.value)\r\n }) : void 0\r\n let evt = null\r\n let updateCursor = (event) => {\r\n if (!evt) {\r\n return\r\n }\r\n let len, inc, pos, del = 1\r\n switch (true) {\r\n case !evt.shiftKey && [38, 40].indexOf(evt.keyCode) !== -1:\r\n case evt.keyCode === 46:\r\n event.target.selectionStart = event.target.selectionEnd = evt.end\r\n break\r\n // len = { new: event.target.value.length, old: evt.value.length }\r\n // inc = len.new - len.old + del\r\n // pos = evt.end - inc < 0 ? evt.end : evt.end - inc\r\n // event.target.selectionStart = event.target.selectionEnd = pos\r\n // break\r\n case evt.keyCode === 8:\r\n // len = { new: event.target.value.length, old: evt.value.length }\r\n // inc = len.new - len.old - del\r\n // pos = evt.end + inc < 0 ? evt.end : evt.end + inc\r\n // event.target.selectionStart = event.target.selectionEnd = pos\r\n case evt.value !== event.target.value:\r\n len = { new: event.target.value.length, old: evt.value.length }\r\n inc = len.new - len.old\r\n pos = evt.end + inc < 0 ? evt.end : evt.end + inc\r\n event.target.selectionStart = event.target.selectionEnd = pos\r\n break\r\n }\r\n }\r\n let checkCursor = (event) => {\r\n if (evt && [46, 8].indexOf(evt.keyCode) !== -1 && evt.start === evt.end) {\r\n let start = evt.keyCode === 46 ? evt.end : evt.end - 1\r\n let deleted = self.cValue.substring(start, start + 1)\r\n if (/\\D/.test(deleted)) {\r\n let pos = evt.keyCode === 46 ? evt.end + 1 : evt.end - 1\r\n event.target.selectionStart = event.target.selectionEnd = pos\r\n event.preventDefault();\r\n return\r\n }\r\n }\r\n setTimeout(() => updateCursor(event), 0)\r\n }\r\n return h(QInput, {\r\n ref: 'input',\r\n props: props,\r\n attrs: attrs,\r\n nativeOn: {\r\n keydown (event) {\r\n evt = {\r\n start: event.target.selectionStart,\r\n end: event.target.selectionEnd,\r\n value: event.target.value,\r\n shiftKey: event.shiftKey,\r\n keyCode: event.keyCode\r\n }\r\n checkCursor(event)\r\n },\r\n input (event) {\r\n checkCursor(event)\r\n },\r\n keyup (event) {\r\n checkCursor(event)\r\n evt = null\r\n }\r\n },\r\n on: {\r\n input (value) {\r\n self.cValue = value\r\n },\r\n keyup (event) {\r\n if (event.target !== event.currentTarget) {\r\n return\r\n }\r\n if (!event.shiftKey) {\r\n switch (event.keyCode) {\r\n case 38: \r\n self.$emit('input', self.value + self.step) \r\n break\r\n case 40: \r\n if (self.value - self.step > 0) {\r\n self.$emit('input', self.value - self.step)\r\n } else {\r\n self.$emit('input', 0)\r\n }\r\n break\r\n }\r\n }\r\n },\r\n focus () {\r\n var el = self.$refs.input.$refs.input\r\n window.setTimeout(function () {\r\n el.selectionStart = el.selectionEnd = el.value.length;\r\n })\r\n }\r\n }\r\n }, [])\r\n }\r\n })\r\n}","import QDecimal from './QDecimal.js'\r\n\r\nexport {\r\n QDecimal\r\n}","const quasarConfig = {\r\n config: {\r\n brand: {\r\n primary: '#002257',\r\n secondary: '#2A6ED9',\r\n accent: '#2FCC71',\r\n\r\n dark: '#1D1D1D',\r\n\r\n positive: '#21BA45',\r\n negative: '#C10015',\r\n info: '#66B3FF',\r\n warning: '#F2C037'\r\n }\r\n }\r\n};\r\n\r\nexport { quasarConfig };","import { v4 as uuidv4 } from 'uuid';\r\nimport * as Enumerable from 'linq-es2015';\r\nimport Cookies from 'js-cookie';\r\n\r\nimport Vue from 'vue';\r\nimport VueRouter from 'vue-router';\r\nimport VueResource from 'vue-resource';\r\n\r\nVue.use(VueRouter);\r\nVue.use(VueResource);\r\n\r\nimport Quasar from 'quasar';\r\nimport { QDatetimePicker, icons } from 'quasar-app-extension-qdatetimepicker/src/component';\r\nimport { QDecimal } from './../lib/quasar-app-extension-qdecimal/src/component';\r\nimport { quasarConfig } from './site-vue-config'\r\n\r\nVue.use(Quasar, quasarConfig);\r\n\r\nVue.component('q-datetime-picker', QDatetimePicker({}));\r\nVue.component('q-decimal', QDecimal({}));\r\n\r\nVue.prototype.$getCookie = function(name) {\r\n return Cookies.get(name);\r\n};\r\n\r\nVue.prototype.$newGuid = function () {\r\n return uuidv4();\r\n};\r\n\r\nVue.prototype.$joinStrings = function (...args) {\r\n return Enumerable.asEnumerable(...args).Where(e => e).ToArray().join(', ');\r\n};\r\n\r\nVue.prototype.$generateTemporaryId = function (id) {\r\n if (typeof id === \"number\") {\r\n return -1;\r\n }\r\n\r\n return this.$newGuid();\r\n};\r\n\r\nVue.prototype.$prepareDialogModel = function (modelObject) {\r\n let dialogModel = {};\r\n\r\n if (modelObject) {\r\n for (var propertyName in modelObject) {\r\n if (propertyName.toUpperCase() != 'ID' && propertyName.toUpperCase().includes('ID')) {\r\n dialogModel[propertyName] = modelObject[propertyName];\r\n }\r\n }\r\n }\r\n\r\n return dialogModel;\r\n};\r\n\r\nVue.prototype.$applyModelFields = function (modelSource, modelDestination) {\r\n if (modelDestination && modelSource) {\r\n for (var propertyName in modelSource) {\r\n if (propertyName.toUpperCase() != 'ID' && modelDestination.hasOwnProperty(propertyName)) {\r\n modelDestination[propertyName] = modelSource[propertyName];\r\n }\r\n }\r\n }\r\n};\r\n\r\nVue.prototype.$prepareServerUrl = function (url, id, params, routeParams) {\r\n\r\n let preparedUrl = url\r\n .replace('{id}', id)\r\n .replace('{id?}', id);\r\n\r\n if (params) {\r\n for (let param in params) {\r\n preparedUrl = preparedUrl.replace(new RegExp('{' + param + '}', \"ig\"), params[param]);\r\n }\r\n }\r\n\r\n if (routeParams) {\r\n for (let routeParam in routeParams) {\r\n preparedUrl = preparedUrl.replace(new RegExp('{' + routeParam + '}', \"ig\"), routeParams[routeParam]);\r\n }\r\n }\r\n\r\n return preparedUrl;\r\n};\r\n\r\nVue.prototype.$prepareNavigationUrl = function (url, id, params, routeParams) {\r\n\r\n let preparedUrl = url\r\n .replace('(\\\\d+)', '')\r\n .replace(':id', id);\r\n\r\n if (params) {\r\n for (let param in params) {\r\n preparedUrl = preparedUrl.replace(new RegExp(':' + param, \"ig\"), params[param]);\r\n }\r\n }\r\n\r\n if (routeParams) {\r\n for (let routeParam in routeParams) {\r\n preparedUrl = preparedUrl.replace(new RegExp(':' + routeParam, \"ig\"), routeParams[routeParam]);\r\n }\r\n }\r\n\r\n return preparedUrl;\r\n};\r\n\r\nVue.prototype.$showNotification = function (type, message) {\r\n this.$q.notify({\r\n position: 'top-right',\r\n type: type,\r\n message: message,\r\n timeout: 5000\r\n });\r\n};\r\n\r\nVue.prototype.$processException = function (exception) {\r\n if (exception.ok === false) {\r\n\r\n if (exception.body && exception.body instanceof ArrayBuffer) {\r\n const decoder = new TextDecoder();\r\n const errorMessage = decoder.decode(exception.body);\r\n\r\n try {\r\n const jsonResponse = JSON.parse(errorMessage);\r\n\r\n this.$q.notify({\r\n message: jsonResponse.message || 'Not Found',\r\n color: 'negative',\r\n position: 'top-right',\r\n timeout: 5000\r\n });\r\n } catch (e) {\r\n this.$q.notify({\r\n message: errorMessage || 'Not Found',\r\n color: 'negative',\r\n position: 'top-right',\r\n timeout: 5000\r\n });\r\n }\r\n \r\n return;\r\n }\r\n \r\n if (exception.status === 403) {\r\n if (exception.body.message) {\r\n this.$q.dialog({\r\n title: 'Forbidden',\r\n message: exception.body.message.replaceAll('\\r\\n', '
'),\r\n html: true\r\n });\r\n return;\r\n }\r\n\r\n this.$router.replace({ path: '/Forbidden' });\r\n return;\r\n }\r\n\r\n if (exception.status === 404) {\r\n this.$router.replace({ path: '/NotFound' });\r\n return;\r\n }\r\n\r\n let message = exception.data.message || exception.body.message;\r\n\r\n if (exception.status === 500) {\r\n message = message + ' Trace ID: ' + exception.data.traceId || exception.body.traceId;\r\n }\r\n\r\n this.$q.dialog({\r\n title: 'Error',\r\n message: message.replaceAll('\\r\\n', '
'),\r\n html: true\r\n });\r\n }\r\n};\r\n\r\nVue.prototype.$processServerJsonResponse = function (response, refreshScreenAction) {\r\n // Check if resposne contains ServerActionResult model.\r\n if (response.hasOwnProperty('serverActionType') === false) {\r\n return;\r\n }\r\n\r\n if (response.success === false) {\r\n var msg = response.message ? response.message : 'Something went wrong';\r\n\r\n if (response.popup) {\r\n this.$showNotification(response.popup, msg);\r\n } else {\r\n this.$q.dialog({\r\n title: 'Failure',\r\n message: msg.replaceAll('\\r\\n', '
'),\r\n html: true\r\n });\r\n }\r\n\r\n return;\r\n }\r\n\r\n // ServerActionType.RefreshScreen.\r\n if (response.serverActionType === 1 && refreshScreenAction) {\r\n if (this.$route.path === '/Users') {\r\n window.location.href = '/';\r\n\r\n return;\r\n }\r\n\r\n this.$showServerResultMessage(response, (response) => {\r\n refreshScreenAction();\r\n });\r\n\r\n return;\r\n }\r\n\r\n // ServerActionType.NavigateToUrl.\r\n if (response.serverActionType === 2 && response.navigateToUrl && response.navigateToUrl !== '') {\r\n this.$showServerResultMessage(response, (response) => {\r\n if (this.$router.currentRoute.path == response.navigateToUrl) {\r\n // Refresh the current page.\r\n this.$router.go();\r\n } else {\r\n // Route to the page.\r\n this.$router.push(response.navigateToUrl);\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n // ServerActionType.RedirectToUrl.\r\n if (response.serverActionType === 3 && response.redirectToUrl && response.redirectToUrl !== '') {\r\n this.$showServerResultMessage(response, (response) => {\r\n if (response.inNewWindow) {\r\n window.open(response.redirectToUrl, '_blank');\r\n } else {\r\n window.location.href = response.redirectToUrl;\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n var msg = response.message ? response.message : 'Success';\r\n\r\n if (response.popup) {\r\n this.$showNotification(response.popup, msg);\r\n } else {\r\n this.$q.dialog({\r\n title: 'Success',\r\n message: msg.replaceAll('\\r\\n', '
'),\r\n html: true\r\n });\r\n }\r\n};\r\n\r\nVue.prototype.$showServerResultMessage = function (response, callback) {\r\n if (response.message) {\r\n if (response.popup) {\r\n if (callback) {\r\n callback(response);\r\n }\r\n\r\n // Show message as popup notification.\r\n this.$showNotification(response.popup, response.message);\r\n\r\n return;\r\n }\r\n else {\r\n // Show message as dialog.\r\n this.$q.dialog({\r\n title: 'Success',\r\n message: response.message.replaceAll('\\r\\n', '
'),\r\n html: true\r\n }).onOk(() => {\r\n if (callback) {\r\n callback(response);\r\n }\r\n\r\n return;\r\n });\r\n }\r\n }\r\n\r\n if (callback) {\r\n callback(response);\r\n }\r\n};\r\n\r\nVue.prototype.$processServerFileResponse = function (response) {\r\n let contentType = response.headers.get('content-type');\r\n let contentDisposition = response.headers.get('content-disposition') || '';\r\n\r\n let blob = new Blob([response.data], { type: contentType });\r\n let filename = contentDisposition.split(';')[1].replace('filename=', '').trim();\r\n\r\n let result = document.createElement('a');\r\n result.href = window.URL.createObjectURL(blob);\r\n result.download = filename;\r\n result.click();\r\n};\r\n\r\nexport {\r\n Vue, VueRouter, VueResource\r\n}"]}