{"version":3,"sources":["webpack:///./node_modules/core-js/internals/symbol-constructor-detection.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/length-of-array-like.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/try-to-string.js","webpack:///./node_modules/core-js/internals/make-built-in.js","webpack:///./node_modules/core-js/modules/es.array.push.js","webpack:///./node_modules/core-js/internals/is-callable.js","webpack:///./node_modules/core-js/internals/has-own-property.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/esm/utils/dom.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack:///./node_modules/@vue/runtime-core/index.js","webpack:///./node_modules/core-js/internals/array-set-length.js","webpack:///./node_modules/core-js/internals/object-is-prototype-of.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/const.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/proxy.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/index.js","webpack:///./node_modules/core-js/internals/function-bind-native.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/@intlify/message-compiler/dist/message-compiler.esm-bundler.js","webpack:///./node_modules/@intlify/devtools-if/dist/devtools-if.esm-bundler.js","webpack:///./node_modules/@intlify/core-base/dist/core-base.esm-bundler.js","webpack:///./node_modules/@intlify/vue-devtools/dist/vue-devtools.esm-bundler.js","webpack:///./node_modules/vue-i18n/dist/vue-i18n.esm-bundler.js","webpack:///./node_modules/core-js/internals/ordinary-to-primitive.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/vue-clipboard2/vue-clipboard.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/time.js","webpack:///./node_modules/swiper/esm/vue/utils.js","webpack:///./node_modules/vuex/dist/vuex.esm-browser.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/to-integer-or-infinity.js","webpack:///./node_modules/core-js/internals/a-callable.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/swiper/esm/components/pagination/pagination.js","webpack:///./node_modules/core-js/internals/function-name.js","webpack:///./node_modules/core-js/internals/define-global-property.js","webpack:///./node_modules/vue-router/dist/vue-router.mjs","webpack:///./node_modules/clipboard/dist/clipboard.min.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/vue-loader-v16/dist/exportHelper.js","webpack:///./node_modules/vue-tel-input/dist/vue-tel-input.es.js","webpack:///./node_modules/swiper/esm/utils/get-support.js","webpack:///./node_modules/swiper/esm/utils/get-device.js","webpack:///./node_modules/swiper/esm/utils/get-browser.js","webpack:///./node_modules/swiper/esm/modules/resize/resize.js","webpack:///./node_modules/swiper/esm/modules/observer/observer.js","webpack:///./node_modules/swiper/esm/components/core/modular.js","webpack:///./node_modules/swiper/esm/components/core/events-emitter.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSize.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlides.js","webpack:///./node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/update/index.js","webpack:///./node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/translateTo.js","webpack:///./node_modules/swiper/esm/components/core/translate/index.js","webpack:///./node_modules/swiper/esm/components/core/transition/setTransition.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/esm/components/core/transition/index.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideTo.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideNext.js","webpack:///./node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideReset.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/slide/index.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopFix.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/esm/components/core/loop/index.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/index.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/esm/components/core/events/onResize.js","webpack:///./node_modules/swiper/esm/components/core/events/onClick.js","webpack:///./node_modules/swiper/esm/components/core/events/onScroll.js","webpack:///./node_modules/swiper/esm/components/core/events/index.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/index.js","webpack:///./node_modules/swiper/esm/components/core/classes/addClasses.js","webpack:///./node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack:///./node_modules/swiper/esm/components/core/classes/index.js","webpack:///./node_modules/swiper/esm/components/core/images/loadImage.js","webpack:///./node_modules/swiper/esm/components/core/images/preloadImages.js","webpack:///./node_modules/swiper/esm/components/core/images/index.js","webpack:///./node_modules/swiper/esm/components/core/check-overflow/index.js","webpack:///./node_modules/swiper/esm/components/core/defaults.js","webpack:///./node_modules/swiper/esm/components/core/core-class.js","webpack:///./node_modules/swiper/esm/utils/utils.js","webpack:///./node_modules/core-js/internals/is-null-or-undefined.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js","webpack:///./node_modules/swiper/esm/components/effect-coverflow/effect-coverflow.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/vue/dist/vue.runtime.esm-bundler.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/@popperjs/core/lib/enums.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack:///./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/math.js","webpack:///./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack:///./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/within.js","webpack:///./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack:///./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack:///./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack:///./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack:///./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack:///./node_modules/@popperjs/core/lib/utils/debounce.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack:///./node_modules/@popperjs/core/lib/createPopper.js","webpack:///./node_modules/@popperjs/core/lib/popper.js","webpack:///./node_modules/@popperjs/core/lib/popper-lite.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.esm.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack:///./node_modules/swiper/esm/components/navigation/navigation.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/core-js/internals/document-all.js","webpack:///./node_modules/vue-loading-overlay/dist/vue-loading.min.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/swiper/esm/vue/params-list.js","webpack:///./node_modules/swiper/esm/vue/get-params.js","webpack:///./node_modules/swiper/esm/vue/init-swiper.js","webpack:///./node_modules/swiper/esm/vue/loop.js","webpack:///./node_modules/swiper/esm/vue/get-changed-params.js","webpack:///./node_modules/swiper/esm/vue/get-children.js","webpack:///./node_modules/swiper/esm/vue/update-swiper.js","webpack:///./node_modules/swiper/esm/vue/virtual.js","webpack:///./node_modules/swiper/esm/vue/swiper.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack:///./node_modules/core-js/internals/to-property-key.js","webpack:///./node_modules/swiper/esm/vue/swiper-slide.js","webpack:///./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/env.js","webpack:///./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack:///./node_modules/core-js/internals/math-trunc.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/vue3-marquee/dist/vue3-marquee.es.js","webpack:///./node_modules/core-js/internals/function-call.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/vue-lazyload/vue-lazyload.esm.js","webpack:///./node_modules/core-js/internals/define-built-in.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/internals/weak-map-basic-detection.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/swiper/esm/components/autoplay/autoplay.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/internals/is-symbol.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/internals/get-method.js","webpack:///./node_modules/core-js/internals/function-uncurry-this.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/@intlify/shared/dist/shared.esm-bundler.js","webpack:///./node_modules/vue-sweetalert2/dist/vue-sweetalert.umd.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/ssr-window/ssr-window.esm.js"],"names":["V8_VERSION","fails","module","exports","Object","getOwnPropertySymbols","symbol","Symbol","String","sham","DESCRIPTORS","call","propertyIsEnumerableModule","createPropertyDescriptor","toIndexedObject","toPropertyKey","hasOwn","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","f","O","P","error","toLength","obj","length","createElement","defineProperty","get","a","$String","argument","uncurryThis","isCallable","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","inspectSource","InternalStateModule","enforceInternalState","enforce","getInternalState","stringSlice","slice","replace","join","CONFIGURABLE_LENGTH","value","TEMPLATE","split","makeBuiltIn","name","options","getter","setter","configurable","arity","constructor","writable","prototype","undefined","state","source","Function","toString","this","$","toObject","lengthOfArrayLike","setArrayLength","doesNotExceedSafeInteger","INCORRECT_TO_LENGTH","push","properErrorOnNonWritableLength","TypeError","FORCED","target","proto","forced","item","len","argCount","arguments","i","$documentAll","documentAll","all","IS_HTMLDDA","hasOwnProperty","it","key","isNullOrUndefined","$TypeError","toIntegerOrInfinity","max","Math","min","index","integer","global","createNonEnumerableProperty","defineBuiltIn","defineGlobalProperty","copyConstructorProperties","isForced","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","internalObjectKeys","enumBugKeys","hiddenKeys","concat","getOwnPropertyNames","_inheritsLoose","subClass","superClass","create","__proto__","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","_setPrototypeOf","p","_isNativeReflectConstruct","Reflect","construct","Proxy","Date","e","_construct","Parent","args","Class","apply","Constructor","bind","instance","_isNativeFunction","fn","indexOf","_wrapNativeSuper","_cache","Map","has","set","Wrapper","enumerable","_assertThisInitialized","self","ReferenceError","makeReactive","Dom7","_Array","items","_this","Array","arrayFlat","arr","res","forEach","el","isArray","arrayFilter","callback","filter","arrayUnique","uniqueArray","qsa","selector","context","querySelectorAll","window","document","html","trim","toCreate","tempParent","innerHTML","childNodes","nodeType","addClass","_len","classes","_key","classNames","map","c","_el$classList","classList","add","removeClass","_len2","_key2","_el$classList2","remove","toggleClass","_len3","_key3","className","toggle","hasClass","_len4","_key4","contains","attr","attrs","getAttribute","setAttribute","attrName","removeAttr","removeAttribute","transform","style","transition","duration","transitionDuration","on","_len5","_key5","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","_parents","parents","k","handleEvent","j","events","_event","dom7LiveListeners","proxyListener","addEventListener","event","dom7Listeners","off","_len6","_key6","handlers","handler","dom7proxy","removeEventListener","splice","trigger","_len9","_key9","CustomEvent","evt","detail","bubbles","cancelable","data","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","includeMargins","_styles","styles","offsetWidth","parseFloat","getPropertyValue","_styles2","offsetHeight","offset","box","getBoundingClientRect","body","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","getComputedStyle","css","props","_prop","each","result","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","_next","prev","previousElementSibling","prevAll","prevEls","_prev","parentNode","_parent","closest","find","foundElements","found","children","removeChild","noTrigger","shortcut","eventHandler","Methods","outerWidth","outerHeight","parent","keys","methodName","match","version","userAgent","process","Deno","versions","v8","navigator","MAX_SAFE_INTEGER","SILENT_ON_NON_WRITABLE_LENGTH_SET","isPrototypeOf","HOOK_SETUP","HOOK_PLUGIN_SETTINGS_SET","plugin","hook","targetQueue","onQueue","defaultSettings","settings","id","defaultValue","localSettingsSaveId","currentSettings","assign","raw","localStorage","getItem","JSON","parse","fallbacks","setItem","stringify","pluginId","setSettings","proxiedOn","_target","prop","method","proxiedTarget","includes","resolve","Promise","setupDevtoolsPlugin","pluginDescriptor","setupFn","enableProxy","enableEarlyProxy","__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__","proxy","list","__VUE_DEVTOOLS_PLUGINS__","emit","test","classof","$Object","propertyIsEnumerable","CompileErrorCodes","EXPECTED_TOKEN","INVALID_TOKEN_IN_PLACEHOLDER","UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER","UNKNOWN_ESCAPE_SEQUENCE","INVALID_UNICODE_ESCAPE_SEQUENCE","UNBALANCED_CLOSING_BRACE","UNTERMINATED_CLOSING_BRACE","EMPTY_PLACEHOLDER","NOT_ALLOW_NEST_PLACEHOLDER","INVALID_LINKED_FORMAT","MUST_HAVE_MESSAGES_IN_PLURAL","UNEXPECTED_EMPTY_LINKED_MODIFIER","UNEXPECTED_EMPTY_LINKED_KEY","UNEXPECTED_LEXICAL_ANALYSIS","__EXTEND_POINT__","createCompileError","code","loc","domain","messages","msg","SyntaxError","location","defaultOnError","createPosition","line","column","createLocation","start","end","CHAR_SP","CHAR_CR","CHAR_LF","CHAR_LS","fromCharCode","CHAR_PS","createScanner","str","_buf","_index","_line","_column","_peekOffset","isCRLF","isLF","isPS","isLS","isLineEnd","peekOffset","charAt","currentChar","currentPeek","peek","reset","resetPeek","skipToPeek","EOF","LITERAL_DELIMITER","ERROR_DOMAIN$1","createTokenizer","_scnr","currentOffset","currentPosition","_initLoc","_initOffset","_context","currentType","startLoc","endLoc","lastType","lastOffset","lastStartLoc","lastEndLoc","braceNest","inLinked","onError","emitError","pos","ctx","err","getToken","type","token","getEndToken","eat","scnr","ch","peekSpaces","buf","skipSpaces","isIdentifierStart","cc","charCodeAt","isNumberStart","isNamedIdentifierStart","ret","isListIdentifierStart","isLiteralStart","isLinkedDotStart","isLinkedModifierStart","isLinkedDelimiterStart","isLinkedReferStart","isPluralStart","detectModuloStart","spaces","isModulo","hasSpace","isTextStart","detectModulo","takeChar","takeIdentifierChar","closure","takeDigit","takeHexDigit","getDigits","num","readModulo","readText","readNamedIdentifier","readListIdentifier","readLiteral","literal","x","readEscapeSequence","current","readUnicodeEscapeSequence","unicode","digits","sequence","readInvalidIdentifier","identifiers","readLinkedModifier","readLinkedRefer","detect","readPlural","plural","readTokenInPlaceholder","readTokenInLinked","validNamedIdentifier","validListIdentifier","validLiteral","readToken","nextToken","ERROR_DOMAIN","KNOWN_ESCAPES","fromEscapeSequence","codePoint4","codePoint6","codePoint","parseInt","fromCodePoint","createParser","tokenzer","startNode","node","endNode","parseText","tokenizer","parseList","parseNamed","parseLiteral","parseLinkedModifier","nextConsumeToken","getTokenCaption","parseLinkedKey","parseLinked","linkedNode","parsed","modifier","nextContext","emptyLinkedKeyNode","parseMessage","startOffset","endOffset","parsePlural","msgNode","hasEmptyMessage","cases","parseResource","createTransformer","ast","helpers","Set","helper","traverseNodes","nodes","transformer","traverseNode","linked","from","createCodeGenerator","sourceMap","filename","breakLineCode","needIndent","_needIndent","indentLevel","_newline","n","withBreakLine","_breakLineCode","repeat","indent","withNewLine","level","deindent","newline","generateLinkedNode","generator","generateNode","generateMessageNode","generatePluralNode","generateResource","generate","mode","s","toJSON","baseCompile","assignedOptions","parser","IntlifyDevToolsHooks","I18nInit","FunctionTranslate","pathStateMachine","literalValueRE","isLiteral","exp","stripQuotes","b","getPathCharType","formatSubPath","path","trimmed","isNaN","newChar","action","typeMap","subPathDepth","actions","maybeUnescapeQuote","nextChar","cache","resolveWithKeyValue","hit","last","val","DEFAULT_MODIFIER","DEFAULT_MESSAGE","DEFAULT_MESSAGE_DATA_TYPE","DEFAULT_NORMALIZE","values","DEFAULT_INTERPOLATE","pluralDefault","choice","choicesLength","abs","getPluralIndex","pluralIndex","named","count","normalizeNamed","createMessageContext","locale","pluralRule","pluralRules","orgPluralRule","_list","_named","message","_modifier","modifiers","normalize","processor","interpolate","arg1","arg2","devtools","setDevToolsHook","initI18nDevTools","i18n","meta","timestamp","now","translateDevTools","createDevToolsHook","payloads","CoreWarnCodes","NOT_FOUND_KEY","FALLBACK_TO_TRANSLATE","CANNOT_FORMAT_NUMBER","FALLBACK_TO_NUMBER_FORMAT","CANNOT_FORMAT_DATE","FALLBACK_TO_DATE_FORMAT","fallbackWithSimple","fallback","fallbackWithLocaleChain","startLocale","DEFAULT_LOCALE","__localeChainCache","chain","block","appendBlockToChain","defaults","blocks","follow","appendLocaleToChain","tokens","appendItemToChain","VERSION","NOT_REOSLVED","MISSING_RESOLVE_VALUE","capitalize","toLocaleUpperCase","substr","getDefaultLinkedModifiers","upper","toUpperCase","lower","toLowerCase","_compiler","_resolver","_fallbacker","registerMessageCompiler","compiler","registerMessageResolver","resolver","registerLocaleFallbacker","fallbacker","_additionalMeta","setAdditionalMeta","getAdditionalMeta","_fallbackContext","setFallbackContext","getFallbackContext","_cid","createCoreContext","fallbackLocale","datetimeFormats","numberFormats","missing","missingWarn","fallbackWarn","fallbackFormat","unresolving","postTranslation","warnHtmlMessage","escapeParameter","messageCompiler","messageResolver","localeFallbacker","fallbackContext","onWarn","internalOptions","__datetimeFormatters","__numberFormatters","__meta","cid","__INTLIFY_PROD_DEVTOOLS__","handleMissing","updateFallbackLocale","defaultOnCacheKey","compileCache","compileToFunction","onCacheKey","cached","occurred","inc","CoreErrorCodes","INVALID_ARGUMENT","INVALID_DATE_ARGUMENT","INVALID_ISO_DATE_ARGUMENT","createCoreError","NOOP_MESSAGE_FUNCTION","isMessageFunction","translate","parseTranslateArgs","resolvedMessage","defaultMsgOrKey","default","enableDefaultMsg","escapeParams","formatScope","targetLocale","resolveMessageFormat","format","cacheBaseKey","errorDetector","compileMessageFormat","ctxOptions","getMessageContextOptions","msgContext","messaged","evaluateMessage","resolveValue","locales","to","missingRet","getCompileOptions","msgCtx","arg3","resolveMessage","intlDefined","Intl","DateTimeFormat","NumberFormat","datetime","overrides","parseDateTimeArgs","part","datetimeFormat","formatter","formatToParts","DATETIME_FORMAT_OPTIONS_KEYS","arg4","dateTime","startsWith","toISOString","getTime","clearDateTimeFormat","delete","number","parseNumberArgs","numberFormat","NUMBER_FORMAT_OPTIONS_KEYS","clearNumberFormat","initFeatureFlags","needWarn","__VUE_I18N_FULL_INSTALL__","__VUE_I18N_LEGACY_API__","code$1","inc$1","I18nWarnCodes","FALLBACK_TO_ROOT","NOT_SUPPORTED_PRESERVE","NOT_SUPPORTED_FORMATTER","NOT_SUPPORTED_PRESERVE_DIRECTIVE","NOT_SUPPORTED_GET_CHOICE_INDEX","COMPONENT_NAME_LEGACY_COMPATIBLE","NOT_FOUND_PARENT_SCOPE","I18nErrorCodes","UNEXPECTED_RETURN_TYPE","MUST_BE_CALL_SETUP_TOP","NOT_INSLALLED","NOT_AVAILABLE_IN_LEGACY_MODE","REQUIRED_VALUE","INVALID_VALUE","CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN","NOT_INSLALLED_WITH_PROVIDE","UNEXPECTED_ERROR","NOT_COMPATIBLE_LEGACY_VUE_I18N","BRIDGE_SUPPORT_VUE_2_ONLY","MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION","NOT_AVAILABLE_COMPOSITION_IN_LEGACY","createI18nError","TransrateVNodeSymbol","DatetimePartsSymbol","NumberPartsSymbol","SetPluralRulesSymbol","InejctWithOption","handleFlatJson","subKeys","lastIndex","currentObj","getLocaleMessages","__i18n","flatJson","custom","resource","deepCopy","isNotObjectOrIsArray","src","des","getComponentOptions","adjustI18nResources","componentOptions","__i18nGlobal","mergeLocaleMessage","mergeDateTimeFormat","mergeNumberFormat","createTextNode","DEVTOOLS_META","composerID","defineCoreMissingHandler","getMetaInfo","createComposer","VueI18nLegacy","__root","_isGlobal","_inheritLocale","inheritLocale","_locale","_fallbackLocale","_messages","_datetimeFormats","_numberFormats","_missingWarn","_fallbackWarn","_fallbackRoot","fallbackRoot","_fallbackFormat","_missing","_runtimeMissing","_postTranslation","_warnHtmlMessage","_escapeParameter","_modifiers","_pluralRules","getCoreContext","framework","trackReactivityValues","getPostTranslationHandler","setPostTranslationHandler","getMissingHandler","setMissingHandler","wrapWithDeps","argumentParser","warnType","fallbackSuccess","fallbackFail","successCondition","t","root","rt","d","transrateVNode","numberParts","datetimeParts","setPluralRules","rules","te","getLocaleMessage","resolveMessages","targetLocaleMessages","messageValue","tm","setLocaleMessage","getDateTimeFormat","setDateTimeFormat","getNumberFormat","setNumberFormat","composer","sort","__injectWithOption","convertComposerOptions","silentTranslationWarn","silentFallbackWarn","formatFallbackMessages","pluralizationRules","warnHtmlInMessage","escapeParameterHtml","sync","sharedMessages","reduce","createVueI18n","vueI18n","availableLocales","__composer","componentInstanceCreatedListener","baseFormatProps","tag","scope","validator","getInterpolateArg","slots","slot","arg","getFragmentableTag","Translation","keypath","required","Number","useI18n","useScope","__useComponent","assignedAttrs","isVNode","renderFormatter","slotKeys","partFormatter","parts","DatetimeFormat","getComposer$2","i18nInternal","__getInstance","vTDirective","_process","binding","parsedValue","parseValue","makeParams","register","__i18nWatcher","$forceUpdate","unregister","update","getSSRProps","created","unmounted","beforeUpdate","app","pluginOptions","useI18nComponentName","globalInstall","component","directive","defineMixin","vuei18n","$options","optionsI18n","$root","$i18n","mergeToRoot","__onComponentInstanceCreated","__setInstance","$t","$rt","$tc","tc","$te","$d","$n","$tm","__deleteInstance","I18nInjectionKey","createI18n","__legacyMode","legacy","__globalInjection","globalInjection","__allowComposition","allowComposition","__instances","globalScope","__global","createGlobal","__VUE_I18N_SYMBOL__","provide","injectGlobalFields","mixin","unmountApp","unmount","dispose","stop","isCE","appContext","getI18nInstance","getGlobalComposer","getScope","useI18nForLegacy","getComposer","composerOptions","setupLifeCycle","legacyMode","run","useComponent","isLocale","_composer","warpWithDeps","wrapper","isGlobal","globalExportProps","globalExportMethods","desc","wrap","config","globalProperties","__INTLIFY__","__INTLIFY_DEVTOOLS_GLOBAL_HOOK__","isObject","input","pref","valueOf","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","Clipboard","VueClipboardConfig","autoSetContainer","appendToBody","VueClipboard","install","Vue","globalPrototype","$clipboardConfig","$copyText","container","reject","fakeElement","clipboard","destroy","click","vnode","_vClipboard_success","_vClipboard_error","_vClipboard","unbind","supported","perf","isPerformanceSupported","_a","performance","perf_hooks","extend","noExtend","__swiper__","needsNavigation","navigation","nextEl","prevEl","needsPagination","pagination","needsScrollbar","scrollbar","uniqueClasses","unique","storeKey","forEachValue","isPromise","then","assert","condition","Error","partial","genericSubscribe","subs","resetStore","store","hot","_actions","_mutations","_wrappedGetters","_modulesNamespaceMap","installModule","_modules","resetStoreState","oldState","_state","oldScope","_scope","getters","_makeLocalGettersCache","wrappedGetters","computedObj","computedCache","strict","enableStrictMode","_withCommit","rootState","isRoot","namespace","getNamespace","namespaced","console","parentState","getNestedState","moduleName","warn","local","makeLocalContext","forEachMutation","mutation","namespacedType","registerMutation","forEachAction","registerAction","forEachGetter","registerGetter","forEachChild","noNamespace","dispatch","_type","_payload","_options","unifyObjectStyle","payload","commit","defineProperties","makeLocalGetters","gettersProxy","splitPos","localType","entry","rootGetters","_devtoolHook","catch","rawGetter","_committing","deep","flush","LABEL_VUEX_BINDINGS","MUTATIONS_LAYER_ID","ACTIONS_LAYER_ID","INSPECTOR_ID","actionId","addDevtools","label","homepage","logo","packageName","componentStateTypes","api","addTimelineLayer","color","COLOR_LIME_500","addInspector","icon","treeFilterPlaceholder","getInspectorTree","inspectorId","flattenStoreForInspectorTree","rootNodes","formatStoreForInspectorTree","getInspectorState","modulePath","nodeId","formatStoreForInspectorState","getStoreModule","editInspectorState","Boolean","subscribe","notifyComponentUpdate","sendInspectorTree","sendInspectorState","addTimelineEvent","layerId","time","title","subscribeAction","before","_id","_time","groupId","subtitle","after","_custom","display","tooltip","COLOR_DARK","COLOR_WHITE","TAG_NAMESPACED","textColor","backgroundColor","extractNameFromPath","tags","_children","endsWith","gettersKeys","storeState","editable","tree","transformPathsToObjectTree","canThrow","leafKey","pop","abstract","moduleMap","names","cb","Module","rawModule","runtime","_rawModule","rawState","prototypeAccessors$1","addChild","getChild","hasChild","mutations","ModuleCollection","rawRootModule","targetModule","newModule","assertRawModule","modules","this$1$1","rawChildModule","isRegistered","functionAssert","expected","objectAssert","assertTypes","assertOptions","makeAssertionMessage","createStore","Store","plugins","_actionSubscribers","_subscribers","_devtools","ref","prototypeAccessors","injectKey","$store","useDevtools","v","sub","silent","watch","replaceState","registerModule","preserveState","unregisterModule","hasModule","hotUpdate","newOptions","committing","normalizeNamespace","states","isValidMap","normalizeMap","getModuleByNamespace","vuex","mapGetters","IS_PURE","copyright","license","getBuiltIn","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","anObject","trunc","tryToString","bitmap","_extends","Pagination","swiper","rtl","params","$el","slidesLength","virtual","enabled","slides","total","loop","ceil","loopedSlides","slidesPerGroup","snapGrid","activeIndex","paginationType","snapIndex","bullets","firstIndex","midIndex","dynamicBullets","bulletSize","isHorizontal","dynamicMainBullets","previousIndex","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","_i","dynamicBulletsLength","bulletsOffset","offsetProp","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","progressbarFillClass","speed","renderCustom","watchOverflow","isLocked","lockClass","render","paginationHTML","numberOfBullets","freeMode","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","init","createElements","uniqueNavElements","clickable","clickableClass","modifierClass","progressbarOppositeClass","preventDefault","slideTo","hiddenClass","hideOnClick","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","targetEl","isHidden","FunctionPrototype","getDescriptor","EXISTS","PROPER","isBrowser","isESModule","__esModule","toStringTag","applyToParams","newParams","noop","TRAILING_SLASH_RE","removeTrailingSlash","parseURL","parseQuery","currentLocation","query","searchString","hash","hashPos","searchPos","resolveRelativePath","fullPath","stringifyURL","stringifyQuery","stripBase","pathname","base","isSameRouteLocation","aLastIndex","matched","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","aliasOf","isSameRouteLocationParamsValue","isEquivalentArray","every","fromSegments","toSegments","toPosition","segment","position","NavigationType","NavigationDirection","normalizeBase","baseEl","querySelector","BEFORE_HASH_RE","createHref","getElementPosition","docRect","documentElement","elRect","behavior","computeScrollPosition","pageXOffset","pageYOffset","scrollToPosition","scrollToOptions","positionEl","isIdSelector","getElementById","scrollTo","getScrollKey","delta","history","scrollPositions","saveScrollPosition","scrollPosition","getSavedScrollPosition","scroll","createBaseLocation","protocol","host","createCurrentLocation","search","slicePos","pathFromHash","useHistoryListeners","historyState","listeners","teardowns","pauseState","popStateHandler","fromState","direction","forward","back","unknown","pauseListeners","listen","teardown","beforeUnloadListener","buildState","replaced","computeScroll","useHistoryStateNavigation","changeLocation","hashIndex","url","currentState","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","createWebHashHistory","isRouteLocation","route","isRouteName","START_LOCATION_NORMALIZED","redirectedFrom","NavigationFailureSymbol","NavigationFailureType","createRouterError","isNavigationFailure","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","sensitive","REGEX_CHARS_RE","tokensToParser","segments","extraOptions","score","pattern","segmentScores","tokenIndex","subSegmentScore","repeatable","optional","regexp","re","RegExp","subPattern","avoidDuplicatedSlash","param","compareScoreArray","diff","comparePathParserScore","aScore","bScore","comp","isLastScoreNegative","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","buffer","previousState","finalizeSegment","char","customRe","consumeBuffer","addCharToBuffer","createRouteRecordMatcher","record","matcher","alias","createRouterMatcher","routes","globalOptions","matchers","matcherMap","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","mergeOptions","normalizedRecords","aliases","components","originalMatcher","normalizedRecord","parentPath","connectingSlash","isAliasRecord","removeRoute","redirect","insertMatcher","matcherRef","getRoutes","isRecordChildOf","paramsFromLocation","m","parentMatcher","mergeMetaFields","beforeEnter","normalizeRecordProps","instances","leaveGuards","updateGuards","enterCallbacks","propsObject","partialOptions","some","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","encodeURI","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","decode","decodeURIComponent","hasLeadingIM","searchParams","searchParam","eqPos","currentValue","normalizeQuery","normalizedQuery","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","useCallbacks","guardToPromiseFn","guard","enterCallbackArray","valid","guardReturn","guardCall","extractComponentsGuards","guardType","guards","rawComponent","isRouteComponent","__vccOpts","componentPromise","resolved","resolvedComponent","useLink","router","currentRoute","activeRecordIndex","routeMatched","currentMatched","findIndex","parentRecordPath","getOriginalPath","isActive","includesParams","isExactActive","navigate","guardEvent","href","RouterLinkImpl","compatConfig","MODE","activeClass","exactActiveClass","ariaCurrentValue","link","elClass","getLinkClass","linkActiveClass","linkExactActiveClass","onClick","class","RouterLink","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","outer","inner","innerValue","outerValue","propClass","globalClass","defaultClass","RouterViewImpl","inheritAttrs","injectedRoute","routeToDisplay","injectedDepth","depth","initialDepth","matchedRoute","matchedRouteRef","viewRef","oldInstance","oldName","size","currentName","ViewComponent","normalizeSlot","Component","routePropsOption","routeProps","onVnodeUnmounted","isUnmounted","slotContent","RouterView","createRouter","parseQuery$1","stringifyQuery$1","beforeGuards","beforeResolveGuards","afterGuards","pendingLocation","scrollBehavior","scrollRestoration","normalizeParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","matcherLocation","targetParams","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","newTargetLocation","targetLocation","force","shouldRedirect","toLocation","failure","handleScroll","markAsReady","triggerError","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","leavingRecords","updatingRecords","enteringRecords","extractChangingRecords","reverse","canceledNavigationCheck","runGuardQueue","isPush","isFirstNavigation","removeHistoryListener","setupListeners","_from","info","listening","ready","readyHandlers","errorHandlers","isReady","started","installedApps","beforeEach","beforeResolve","afterEach","$router","reactiveRoute","promise","recordFrom","recordTo","686","u","r","execCommand","fontSize","border","padding","margin","HTMLInputElement","l","iterator","hasAttribute","y","h","resolveOptions","listenClick","queryCommandSupported","defaultAction","defaultTarget","defaultText","delegateTarget","clearSelection","focus","getSelection","removeAllRanges","828","Element","matchesSelector","mozMatchesSelector","oMatchesSelector","438","879","HTMLElement","nodeList","string","370","817","nodeName","select","setSelectionRange","createRange","selectNodeContents","addRange","279","once","_","TinyEmitter","NATIVE_WEAK_MAP","shared","sharedKey","OBJECT_ALREADY_INITIALIZED","WeakMap","getterFor","TYPE","metadata","facade","STATE","sfc","allCountries","allCountries$1","iso2","dialCode","getCountry","fetch","response","result2","setCaretPosition","ctrl","createTextRange","range","collapse","moveEnd","moveStart","allProps","description","inDemo","defaultOptions","prv","crr","nestedKey","utils","withMetadataArgument","func","_arguments","_typeof$2","obj2","_defineProperties$2","_createClass$2","protoProps","staticProps","_classCallCheck$2","_inherits","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","_possibleConstructorReturn","Class2","Parent2","args2","o2","p2","ParseError","_Error","ParseError2","_super","MIN_LENGTH_FOR_NSN","MAX_LENGTH_FOR_NSN","MAX_LENGTH_COUNTRY_CODE","VALID_DIGITS","DASHES","SLASHES","DOTS","WHITESPACE","BRACKETS","TILDES","VALID_PUNCTUATION","PLUS_CHARS","compare","pa","pb","na","nb","_typeof$1","_classCallCheck$1","_defineProperties$1","_createClass$1","V3","V4","DEFAULT_EXT_PREFIX","CALLING_CODE_REG_EXP","Metadata","Metadata2","metadata2","validateMetadata","setVersion","countries","countryCode","v1","v2","v3","nonGeographic","nonGeographical","country","getCountryMetadata","callingCode","getCountryCodesForCallingCode","countryCodes","countryCallingCodes","selectNumberingPlan","hasCountry","numberingPlan","NumberingPlan","hasCallingCode","getNumberingPlanMetadata","getCountryCodeForCallingCode","IDDPrefix","defaultIDDPrefix","nationalNumberPattern","possibleLengths","formats","nationalPrefixForParsing","nationalPrefixTransformRule","leadingDigits","hasTypes","ext","country_phone_code_to_countries","country_calling_codes","NumberingPlan2","globalMetadataObject","formats2","_getFormats","getDefaultCountryMetadataForRegion","Format","_getNationalPrefixFormattingRule","_nationalPrefixForParsing","nationalPrefix","_getNationalPrefixIsOptionalWhenFormatting","types","_type2","getType","Type","Format2","_format","nationalPrefixFormattingRule","nationalPrefixIsOptionalWhenFormattingInNationalFormat","usesNationalPrefix","FIRST_GROUP_ONLY_PREFIX_PATTERN","Type2","is_object","type_of","getCountryCallingCode","countryCallingCode","isSupportedCountry","v4","RFC3966_EXTN_PREFIX","getExtensionDigitsPattern","maxLength","createExtensionPattern","purpose","extLimitAfterExplicitLabel","extLimitAfterLikelyLabel","extLimitAfterAmbiguousChar","extLimitWhenNotSure","possibleSeparatorsBetweenNumberAndExtLabel","possibleCharsAfterExtLabel","optionalExtnSuffix","explicitExtLabels","ambiguousExtLabels","ambiguousSeparator","possibleSeparatorsNumberExtLabelNoComma","autoDiallingAndExtLabelsFound","rfcExtn","explicitExtn","ambiguousExtn","americanStyleExtnWithSuffix","autoDiallingExtn","onlyCommasExtn","MIN_LENGTH_PHONE_NUMBER_PATTERN","VALID_PHONE_NUMBER","VALID_PHONE_NUMBER_START_REG_EXP","VALID_PHONE_NUMBER_WITH_EXTENSION","VALID_PHONE_NUMBER_PATTERN","isViablePhoneNumber","isViablePhoneNumberStart","EXTN_PATTERN","extractExtension","numberWithoutExtension","DIGITS","parseDigit","character","_createForOfIteratorHelperLoose$5","allowArrayLike","_unsupportedIterableToArray$6","done","minLen","_arrayLikeToArray$6","arr2","parseIncompletePhoneNumber","_step","_iterator","parsePhoneNumberCharacter","prevParsedCharacters","_createForOfIteratorHelperLoose$4","_unsupportedIterableToArray$5","_arrayLikeToArray$5","mergeArrays","merged","element","a2","b2","checkNumberLength","nationalNumber","checkNumberLengthForType","type_info","possible_lengths","mobile_type","actual_length","minimum_length","isPossiblePhoneNumber","phone","isPossibleNumber","isNonGeographicCallingCode","_slicedToArray$1","_arrayWithHoles$1","_iterableToArrayLimit$1","_unsupportedIterableToArray$4","_nonIterableRest$1","_s","_e","_arr","_n","_d","_createForOfIteratorHelperLoose$3","_arrayLikeToArray$4","parseRFC3966","_part$split","_part$split2","formatRFC3966","_ref","matchesEntirely","regular_expression","_createForOfIteratorHelperLoose$2","_unsupportedIterableToArray$3","_arrayLikeToArray$3","NON_FIXED_LINE_PHONE_TYPES","getNumberType","isNumberTypeEqualTo","isValidNumber","national_number","applyInternationalSeparatorStyle","formattedNumber","FIRST_GROUP_PATTERN","formatNationalNumberUsingFormat","useInternationalFormat","withNationalPrefix","carrierCode","internationalFormat","SINGLE_IDD_PREFIX_REG_EXP","getIddPrefix","countryMetadata","_createForOfIteratorHelperLoose$1","_unsupportedIterableToArray$2","_arrayLikeToArray$2","ownKeys$4","object","enumerableOnly","symbols","sym","_objectSpread$4","_defineProperty$4","getOwnPropertyDescriptors","DEFAULT_OPTIONS","formatExtension","extension","formatNumber","formatNationalNumber","addExtension","fromCountry","formatIDD","formatAs","chooseFormatForNumber","availableFormats","nationalNnumber","leadingDigitsPatterns","lastLeadingDigitsPattern","formatExtension2","fromCountryCallingCode","iddPrefix","ownKeys$3","_objectSpread$3","_defineProperty$3","_classCallCheck","_defineProperties","_createClass","PhoneNumber","PhoneNumber2","_metadata","isCountryCode","phoneNumber","CAPTURING_DIGIT_PATTERN","stripIddPrefix","IDDPrefixPattern","matchedGroups","extractNationalNumberFromPossiblyIncompleteNumber","prefixPattern","prefixMatch","exec","capturedGroupsCount","hasCapturedGroups","prefixBeforeNationalNumber","possiblePositionOfTheFirstCapturedGroup","possibleNationalPrefix","extractNationalNumber","_extractNationalNumbe","shouldHaveExtractedNationalPrefix","isPossibleIncompleteNationalNumber","nationalNumberBefore","nationalNumberAfter","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","possibleShorterNumber","possibleShorterNationalNumber","_extractNationalNumbe2","extractCountryCallingCode","numberWithoutIDD","_extractCountryCallin","shorterNumber","_countryCallingCode","_createForOfIteratorHelperLoose","_unsupportedIterableToArray$1","_arrayLikeToArray$1","USE_NON_GEOGRAPHIC_COUNTRY_CODE","getCountryByCallingCode","nationalPhoneNumber","possibleCountries","selectCountryFromList","MAX_INPUT_STRING_LENGTH","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","defaultCountry","_parseInput","parseInput","extract","formattedPhoneNumber","_parsePhoneNumber","parsePhoneNumber$1","defaultCallingCode","hasSelectedNumberingPlan","extended","possible","extractFormattedPhoneNumber","throwOnError","startsAt","withExtensionStripped","exactCountry","ownKeys$2","_objectSpread$2","_defineProperty$2","parsePhoneNumber","_typeof","ownKeys$1","_objectSpread$1","_defineProperty$1","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","normalizeArguments","_Array$prototype$slic","_Array$prototype$slic2","arg_1","arg_2","arg_3","arg_4","ownKeys","_objectSpread","_defineProperty","parsePhoneNumberFromString$2","parsePhoneNumberFromString$1","_normalizeArguments","parsePhoneNumberFromString","clickOutside","vNode","compName","expression","clickOutsideEvent","_export_sfc","getDefault","_sfc_main","directives","modelValue","autoFormat","customValidate","disabled","autoDefaultCountry","dropdownOptions","ignoredCountries","inputOptions","invalidMsg","onlyCountries","preferredCountries","validCharactersOnly","styleClasses","activeCountryCode","open","finishMounted","selectedIndex","typeToFindInput","typeToFindTimer","dropdownOpenDirection","parsedPlaceholder","placeholder","computed","findCountry","getCountries","preferred","filteredCountries","_b","_c","phoneObject","isValid","formatted","parsedMode","activeCountry","oldValue","$emit","emitInput","$nextTick","resetPlaceholder","testCharacters","onInput","isDropdownOpened","setDropdownPosition","cleanInvalidCharacters","initializeCountry","showDialCode","methods","choose","findCountryByDialCode","fallbackCountry","iso","index2","highlighted","lastPreferred","parsedCountry","formatInternational","currentPhone","results","testCustomValidate","$refs","setCustomValidity","keyCode","sortedCountries","selEle","offsetTop","clientHeight","clearTimeout","setTimeout","typedCountryI","needToScrollTop","needToScrollBottom","spaceBelow","innerHeight","bottom","hasEnoughSpaceBelow","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_sfc_render","_ctx","$props","$setup","$data","_directive_click_outside","role","tabindex","onKeydown","keyboardNav","toggleDropdown","showFlags","showDialCodeInSelection","$slots","getItemClass","$event","onMousemove","showDialCodeInList","clickedOutside","autocomplete","autofocus","maxlength","readonly","onBlur","onFocus","onKeyup","onEnter","onSpace","VueTelInput","customOptions","customDropdownOptions","customInputOptions","otherCustomOptions","defaultDropdownOptions","defaultInputOptions","otherDefaultOptions","browser","calcSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","opts","gestures","getSupport","calcDevice","_temp","support","platform","ua","device","ios","android","screenWidth","screen","width","screenHeight","height","ipad","ipod","iphone","windows","macos","iPadScreens","os","getDevice","calcBrowser","isSafari","isEdge","isWebView","getBrowser","ResizeObserver","resize","createObserver","destroyed","initialized","entries","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","resizeHandler","observe","removeObserver","unobserve","orientationChangeHandler","resizeObserver","Observer","attach","ObserverFunc","MutationObserver","WebkitMutationObserver","observerUpdate","requestAnimationFrame","attributes","childList","characterData","observers","observeParents","containerParents","observeSlideChildren","$wrapperEl","disconnect","useParams","instanceParams","useModules","modulesParams","moduleParams","moduleEventName","priority","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventsArray","updateSize","clientWidth","isVertical","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","swiperSize","rtlTranslate","wrongRTL","isVirtual","previousSlidesLength","slideClass","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","slidesPerColumn","floor","slidesPerView","slidesPerColumnFill","newSlidesGrid","_$wrapperEl$css","_$wrapperEl$css2","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","row","groupIndex","slideIndexInGroup","columnsInGroup","order","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","_slide$","swiperSlideSize","centeredSlides","slidesPerGroupSkip","effect","setWrapperSize","slidesGridItem","_i2","_slidesGridItem","_slides$filter$css","slideIndex","cssMode","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","_allSlidesSize","allSlidesOffset","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","activeSlides","setTransition","getSlideByIndex","visibleSlides","swiperSlideOffset","offsetLeft","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideProgress","minTranslate","autoHeight","slideBefore","slideAfter","isVisible","progress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","activeSlide","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","getSwiperTranslate","axis","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","wrapperEl","z","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","_wrapperEl$scrollTo","isH","onTranslateToWrapperTransitionEnd","getTranslate","transitionStart","dir","initial","indexAsNumber","isFinite","initialSlide","normalizedTranslate","normalizedGird","normalizedGridNext","allowSlideNext","allowSlidePrev","scrollWidth","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","increment","loopPreventsSlide","loopFix","_clientLeft","slidePrev","prevIndex","normalizedSnapGrid","prevSnap","slideReset","slideToClosest","threshold","currentSnap","nextSnap","_currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","snapTranslate","slideChanged","_slideChanged","loopDestroy","setGrabCursor","moving","simulateTouch","cursor","unsetGrabCursor","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","closestElement","__closestFrom","assignedSlot","getRootNode","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","which","isTouched","isMoved","swipingClassHasValue","noSwipingClass","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","activeElement","blur","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","pow","touchAngle","atan2","PI","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","grabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","velocities","onTouchEnd","currentPos","touchEndTime","timeDiff","lastClickTime","freeModeMomentum","lastMoveEvent","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","freeModeSticky","moveDistance","currentSlideSize","longSwipesMs","stopIndex","groupSize","_increment","ratio","longSwipes","longSwipesRatio","shortSwipes","isNavButtonTarget","onResize","breakpoints","setBreakpoint","autoplay","running","paused","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","dummyEventAttached","dummyEventListener","attachEvents","touchEvents","move","passiveListeners","passive","cancel","updateOnWindowResize","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointOnlyParams","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","containerModifierClass","emitContainerClasses","directionChanged","needsReLoop","changeDirection","isEnabled","disable","enable","containerEl","currentHeight","points","point","minRatio","_points$i","matchMedia","prepareClasses","prefix","resultClasses","addClasses","suffixes","removeClasses","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","isPicture","complete","Image","onload","onerror","preloadImages","imagesLoaded","imagesToLoad","updateOnImagesReady","currentSrc","wasLocked","lastSlidePosition","wrapperClass","_emitClasses","prototypes","modular","eventsEmitter","manipulation","images","extendedDefaults","Swiper","swipers","moduleParamName","auto","swiperParams","passedParams","eventName","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","_proto","setProgress","getSlideClasses","slideEl","updates","spv","breakLoop","translated","translateValue","newDirection","needUpdate","currentDirection","mount","mounted","getWrapperSelector","getWrapper","deleteInstance","cleanStyles","extendDefaults","newDefaults","use","prototypeGroup","protoMethod","deleteProps","nextTick","delay","currentStyle","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","isNode","nextSource","keysArray","nextIndex","nextKey","bindModuleMethods","subKey","classesToSelector","createElementIfNotDefined","$container","checkProps","reactivity","assertNumber","callWithErrorHandling","handleError","callWithAsyncErrorHandling","isFunction","throwInDev","contextVNode","cur","exposedInstance","errorInfo","errorCapturedHooks","ec","appErrorHandler","errorHandler","logError","isFlushing","isFlushPending","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","findInsertionIndex","middle","middleJobId","getId","queueJob","job","allowRecurse","queueFlush","flushJobs","invalidateJob","queuePostFlushCb","flushPreFlushCbs","seen","pre","flushPostFlushCbs","deduped","Infinity","comparator","NOOP","active","setDevtoolsHook","replay","__VUE_DEVTOOLS_HOOK_REPLAY__","newHook","rawArgs","EMPTY_OBJ","isModelListener","modelArg","modifiersKey","isString","looseToNumber","handlerName","toHandlerKey","camelize","hyphenate","emitted","normalizeEmitsOptions","asMixin","emitsCache","emits","normalized","hasExtends","extendEmits","normalizedFromExtend","mixins","extends","isEmitListener","isOn","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","__scopeId","pushScopeId","popScopeId","withScopeId","withCtx","isNonScopedSlot","renderFnWithContext","setBlockTracking","prevInstance","renderComponentRoot","withProxy","propsOptions","renderCache","setupState","fallthroughAttrs","shapeFlag","proxyToUse","normalizeVNode","getFunctionalFallthrough","blockStack","createVNode","Comment","filterModelListeners","cloneVNode","dirs","filterSingleRoot","singleRoot","shouldUpdateComponent","prevVNode","nextVNode","optimized","prevProps","prevChildren","nextProps","nextChildren","patchFlag","emitsOptions","$stable","hasPropsChanged","dynamicProps","nextKeys","updateHOCHostEl","subTree","isSuspense","__isSuspense","SuspenseImpl","n1","n2","anchor","parentComponent","parentSuspense","isSVG","slotScopeIds","rendererInternals","mountSuspense","patchSuspense","hydrate","hydrateSuspense","createSuspenseBoundary","normalizeSuspenseChildren","Suspense","triggerEvent","eventListener","patch","hiddenContainer","suspense","pendingBranch","ssContent","deps","ssFallback","setActiveBranch","um","newBranch","newFallback","activeBranch","isInFallback","isHydrating","isSameVNodeType","pendingId","effects","timeout","toNumber","resume","delayEnter","afterLeave","hasUnresolvedAncestor","fallbackVNode","mountFallback","setupRenderEffect","isInPendingSuspense","hydratedEl","asyncDep","asyncSetupResult","suspenseId","asyncResolved","handleSetupResult","doRemove","hydrateNode","isSlotChildren","normalizeSuspenseSlot","trackBlock","isBlockTreeEnabled","openBlock","currentBlock","closeBlock","singleChild","dynamicChildren","queueEffectWithSuspense","branch","currentInstance","provides","parentProvides","inject","treatDefaultAsFactory","watchEffect","doWatch","watchPostEffect","watchSyncEffect","INITIAL_WATCHER_VALUE","immediate","onTrack","onTrigger","getCurrentScope","cleanup","forceTrigger","isMultiSource","isRef","isShallow","isReactive","traverse","onCleanup","baseGetter","ssrCleanup","onStop","isInSSRComponentSetup","useSSRContext","__watcherHandles","fill","newValue","hasChanged","scheduler","queuePostRenderEffect","uid","ReactiveEffect","unwatch","instanceWatch","publicThis","createPathGetter","setCurrentInstance","unsetCurrentInstance","isSet","isMap","isPlainObject","useTransitionState","isMounted","isLeaving","isUnmounting","leavingVNodes","onMounted","onBeforeUnmount","TransitionHookValidator","BaseTransitionImpl","appear","persisted","onBeforeEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","getCurrentInstance","prevTransitionKey","getTransitionRawChildren","rawProps","toRaw","emptyPlaceholder","innerChild","getKeepAliveChild","enterHooks","resolveTransitionHooks","setTransitionHooks","oldChild","oldInnerChild","transitionKeyChanged","getTransitionKey","leavingHooks","delayLeave","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","_leaveCb","BaseTransition","callHook","callAsyncHook","hooks","leavingVNode","afterHook","cancelHook","called","_enterCb","cancelled","isKeepAlive","clone","keepComment","parentKey","keyedFragmentCount","Fragment","defineComponent","setup","isAsyncWrapper","__asyncLoader","defineAsyncComponent","loader","loadingComponent","errorComponent","suspensible","userOnError","resolvedComp","pendingRequest","retries","retry","load","thisRequest","userRetry","userFail","createInnerComp","loaded","delayed","ce","__isKeepAlive","KeepAliveImpl","include","exclude","sharedContext","renderer","_unmount","storageContainer","resetShapeFlag","pruneCache","getComponentName","pruneCacheEntry","activate","isDeactivated","invokeArrayFns","vnodeHook","onVnodeMounted","invokeVNodeHook","deactivate","da","pendingCacheKey","cacheSubtree","getInnerChild","onUpdated","rawVNode","__asyncResolved","cachedVNode","KeepAlive","isRegExp","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","__wdc","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","__weh","pauseTracking","resetTracking","createHook","lifecycle","onBeforeMount","onBeforeUpdate","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","withDirectives","internalInstance","getExposeProxy","bindings","updated","invokeDirectiveHook","oldBindings","COMPONENTS","DIRECTIVES","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","resolveDirective","warnMissing","selfName","registry","renderList","renderItem","createSlots","dynamicSlots","renderSlot","noSlotted","validSlotContent","ensureValidVNode","rendered","createBlock","scopeId","vnodes","toHandlers","preserveCaseIfNecessary","getPublicInstance","isStatefulComponent","publicPropertiesMap","$attrs","$parent","resolveMergedOptions","$watch","hasSetupBinding","__isScriptSetup","PublicInstanceProxyHandlers","accessCache","normalizedProps","shouldCacheAccess","publicGetter","cssModule","track","__cssModules","RuntimeCompiledPublicInstanceProxyHandlers","unscopables","isGloballyWhitelisted","applyOptions","beforeCreate","dataOptions","computedOptions","watchOptions","provideOptions","injectOptions","beforeMount","activated","deactivated","beforeDestroy","beforeUnmount","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","filters","checkDuplicateProperties","resolveInjections","unwrapInjectedRef","methodHandler","reactive","opt","createWatcher","registerLifecycleHook","_hook","exposed","unwrapRef","normalizeInject","extendsOptions","globalMixins","optionsCache","optionMergeStrategies","strats","strat","internalOptionMergeStrats","mergeDataFn","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","initProps","isStateful","isSSR","def","InternalObjectKey","propsDefaults","setFullProps","shallowReactive","updateProps","rawPrevProps","rawCurrentProps","hasAttrsChanged","kebabKey","resolvePropValue","propsToUpdate","camelizedKey","needCastKeys","rawCastValues","isReservedProp","camelKey","castValues","isAbsent","hasDefault","normalizePropsOptions","propsCache","extendProps","EMPTY_ARR","normalizedKey","validatePropName","booleanIndex","getTypeIndex","stringIndex","ctor","isSameType","expectedTypes","isInternalKey","normalizeSlotValue","rawSlot","normalizeObjectSlots","rawSlots","normalizeVNodeSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","createAppContext","isNativeTag","NO","warnHandler","compilerOptions","uid$1","createAppAPI","rootComponent","rootProps","installedPlugins","_uid","_component","_props","_container","_instance","rootContainer","isHydrate","__vue_app__","setRef","rawRef","oldRawRef","isUnmount","refValue","owner","oldRef","refs","_isString","_isRef","doSet","existing","hasMismatch","isSVGContainer","namespaceURI","tagName","isComment","createHydrationFunctions","mt","mountComponent","patchProp","createText","nextSibling","insert","createComment","hasChildNodes","_vnode","isFragmentStart","onMismatch","handleMismatch","domType","nextNode","Text","Static","needToAdoptContent","staticCount","outerHTML","hydrateFragment","hydrateElement","locateClosingAsyncAnchor","lastChild","createTextVNode","hydrateChildren","forcePatchValue","vnodeHooks","onVnodeBeforeMount","parentVNode","fragmentSlotScopeIds","isFragment","createRenderer","baseCreateRenderer","createHydrationRenderer","createHydrationFns","getGlobalThis","__VUE__","hostInsert","hostRemove","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","setText","hostSetText","setElementText","hostSetElementText","hostParentNode","hostNextSibling","setScopeId","hostSetScopeId","insertStaticContent","hostInsertStaticContent","getNextHostNode","processText","processCommentNode","mountStaticNode","processFragment","processElement","processComponent","internals","moveStaticNode","removeStaticNode","mountElement","patchElement","mountChildren","unmountChildren","needCallTransitionHooks","enter","cloneIfMounted","oldProps","newProps","toggleRecurse","onVnodeBeforeUpdate","areChildrenSVG","patchBlockChildren","patchChildren","patchProps","onVnodeUpdated","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","traverseStaticChildren","updateComponent","initialVNode","createComponentInstance","setupComponent","registerDep","updateComponentPreRender","componentUpdateFn","bu","originNext","nextTree","prevTree","bm","isAsyncWrapperVNode","hydrateSubTree","scopedInitialVNode","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","oldLength","newLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","increasingNewIndexSequence","getSequence","moveType","needTransition","leave","performLeave","shouldInvokeDirs","shouldInvokeVnodeHook","onVnodeBeforeUnmount","unmountComponent","removeFragment","performRemove","bum","mc","pc","pbc","createApp","allowed","shallow","ch1","ch2","arrI","isTeleport","__isTeleport","isTeleportDisabled","isTargetSVG","SVGElement","resolveTarget","TeleportImpl","mainAnchor","targetAnchor","wasDisabled","currentContainer","currentAnchor","moveTeleport","nextTarget","updateCssVars","hydrateTeleport","isReorder","targetNode","_lpa","Teleport","ut","disableTracking","setupBlock","createElementBlock","createBaseVNode","__v_isVNode","transformVNodeArgs","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","__v_skip","normalizeChildren","_createVNode","cloned","isClassComponent","guardReactiveProps","klass","normalizeClass","isProxy","normalizeStyle","extraProps","mergeRef","mergedProps","mergeProps","flag","createStaticVNode","content","numberOfNodes","createCommentVNode","asBlock","memo","slotFlag","toMerge","incoming","emptyAppContext","EffectScope","exposeProxy","setupContext","bc","rtg","rtc","sp","compile","installWithProxy","setupResult","setupStatefulComponent","markRaw","createSetupContext","resolvedResult","finishComponentSetup","__ssrInlineRender","ssrRender","proxyRefs","registerRuntimeCompiler","_compile","_rc","isRuntimeOnly","skipOptions","template","isCustomElement","delimiters","componentCompilerOptions","finalCompilerOptions","createAttrsProxy","includeInferred","displayName","__name","getterOrOptions","debugOptions","defineProps","defineEmits","defineExpose","withDefaults","useSlots","getContext","useAttrs","mergeDefaults","createPropsRestProxy","excludedKeys","withAsyncContext","getAwaitable","awaitable","propsOrChildren","ssrContextKey","initCustomFormatter","withMemo","isMemoSame","_ssrUtils","ssrUtils","resolveFilter","compatUtils","customRef","effectScope","isReadonly","onScopeDispose","shallowReadonly","shallowRef","toRef","toRefs","triggerRef","unref","normalizeProps","toDisplayString","createElementVNode","Coverflow","swiperWidth","swiperHeight","coverflowEffect","center","rotate","$slideEl","slideOffset","offsetMultiplier","rotateY","rotateX","translateZ","stretch","translateY","translateX","slideTransform","zIndex","round","slideShadows","$shadowBeforeEl","$shadowAfterEl","opacity","beforeInit","requireObjectCoercible","right","basePlacements","viewport","variationPlacements","acc","placement","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","getNodeName","getWindow","ownerDocument","defaultView","isElement","OwnElement","isHTMLElement","isShadowRoot","ShadowRoot","applyStyles","elements","_ref2","initialStyles","popper","strategy","arrow","reference","styleProperties","attribute","phase","requires","getBasePlacement","getUAString","uaData","userAgentData","brands","brand","isLayoutViewport","includeScale","isFixedStrategy","clientRect","visualViewport","addVisualOffsets","getLayoutRect","rootNode","isSameNode","isTableElement","getDocumentElement","getParentNode","getTrueOffsetParent","offsetParent","getContainingBlock","isFirefox","isIE","elementCss","currentNode","perspective","contain","willChange","getOffsetParent","getMainAxisFromPlacement","within","withinMaxClamp","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","hashMap","rects","_state$modifiersData$","arrowElement","popperOffsets","modifiersData","basePlacement","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","axisProp","centerOffset","_options$element","requiresIfExists","getVariation","unsetSides","roundOffsetsByDPR","win","dpr","devicePixelRatio","mapToStyles","_Object$assign2","popperRect","variation","offsets","gpuAcceleration","adaptive","roundOffsets","isFixed","_offsets$x","_offsets$y","_ref3","hasX","hasY","sideX","sideY","heightProp","widthProp","offsetY","offsetX","_Object$assign","commonStyles","_ref4","computeStyles","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","_options$scroll","_options$resize","scrollParents","scrollParent","getOppositePlacement","getOppositeVariationPlacement","getWindowScroll","getWindowScrollBarX","getViewportRect","layoutViewport","getDocumentRect","_element$ownerDocumen","winScroll","scrollHeight","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","getScrollParent","listScrollParents","isBody","updatedList","rectToClientRect","rect","getInnerBoundingClientRect","getClientRectFromMixedType","clippingParent","getClippingParents","clippingParents","canEscapeClipping","clipperElement","getClippingRect","boundary","rootBoundary","mainClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","placements","allowedPlacements","overflows","getExpandedFallbackPlacements","oppositePlacement","flip","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","preferredPlacement","isBasePlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","check","numberOfChecks","_loop","fittingPlacement","_ret","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","hide","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","distanceAndSkiddingToXY","invertDistance","skidding","_options$offset","_data$state$placement","getAltAxis","_options$tether","tether","_options$tetherOffset","tetherOffset","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","getHTMLElementScroll","getNodeScroll","isElementScaled","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","visited","dep","depModifier","orderModifiers","orderedModifiers","debounce","pending","mergeByName","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","runModifierEffects","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","_ref$options","cleanupFn","noopFn","onFirstUpdate","eventListeners","elementMap","Data","instanceMap","MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","parseSelector","CSS","escape","toType","getUID","random","getTransitionDurationFromElement","transitionDelay","floatTransitionDuration","floatTransitionDelay","triggerTransitionEnd","Event","jquery","getElement","getClientRects","elementIsVisible","closedDetails","summary","isDisabled","Node","ELEMENT_NODE","findShadowRoot","attachShadow","reflow","getjQuery","jQuery","DOMContentLoadedCallbacks","onDOMContentLoaded","readyState","isRTL","defineJQueryPlugin","NAME","JQUERY_NO_CONFLICT","jQueryInterface","noConflict","execute","possibleCallback","executeAfterTransition","transitionElement","waitForTransition","durationPadding","emulatedDuration","getNextActiveElement","shouldGetNext","isCycleAllowed","listLength","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","makeEventUid","getElementEvents","bootstrapHandler","hydrateObj","oneOff","EventHandler","bootstrapDelegationHandler","domElements","domElement","findHandler","callable","delegationSelector","normalizeParameters","originalTypeEvent","delegationFunction","isDelegated","typeEvent","getTypeEvent","addHandler","wrapFunction","relatedTarget","previousFunction","removeHandler","removeNamespacedHandlers","storeElementEvent","handlerKey","inNamespace","isNamespace","elementEvent","keyHandlers","jQueryEvent","nativeDispatch","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","_unused","normalizeData","normalizeDataKey","chr","Manipulator","bsKeys","dataset","pureKey","Config","_mergeConfigObj","_configAfterMerge","_typeCheckConfig","jsonConfig","getDataAttribute","Default","getDataAttributes","configTypes","DefaultType","valueType","BaseComponent","super","_element","_config","_getConfig","DATA_KEY","EVENT_KEY","propertyName","isAnimated","getInstance","getSelector","hrefAttribute","SelectorEngine","ancestor","previous","focusables","findOne","enableDismissTrigger","clickEvent","getElementFromSelector","getOrCreateInstance","NAME$f","DATA_KEY$a","EVENT_KEY$b","EVENT_CLOSE","EVENT_CLOSED","CLASS_NAME_FADE$5","CLASS_NAME_SHOW$8","Alert","closeEvent","_queueCallback","_destroyElement","NAME$e","DATA_KEY$9","EVENT_KEY$a","DATA_API_KEY$6","CLASS_NAME_ACTIVE$3","SELECTOR_DATA_TOGGLE$5","EVENT_CLICK_DATA_API$6","Button","NAME$d","EVENT_KEY$9","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","CLASS_NAME_POINTER_EVENT","SWIPE_THRESHOLD","Default$c","endCallback","leftCallback","rightCallback","DefaultType$c","Swipe","isSupported","_deltaX","_supportPointerEvents","_initEvents","_eventIsPointerPenTouch","clientX","_handleSwipe","absDeltaX","_start","_end","_move","pointerType","NAME$c","DATA_KEY$8","EVENT_KEY$8","DATA_API_KEY$5","ARROW_LEFT_KEY$1","ARROW_RIGHT_KEY$1","TOUCHEVENT_COMPAT_WAIT","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN$1","EVENT_MOUSEENTER$1","EVENT_MOUSELEAVE$1","EVENT_DRAG_START","EVENT_LOAD_DATA_API$3","EVENT_CLICK_DATA_API$5","CLASS_NAME_CAROUSEL","CLASS_NAME_ACTIVE$2","CLASS_NAME_SLIDE","CLASS_NAME_END","CLASS_NAME_START","CLASS_NAME_NEXT","CLASS_NAME_PREV","SELECTOR_ACTIVE","SELECTOR_ITEM","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM_IMG","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","KEY_TO_DIRECTION","Default$b","interval","keyboard","pause","ride","DefaultType$b","Carousel","_interval","_activeElement","_isSliding","touchTimeout","_swipeHelper","_indicatorsElement","_addEventListeners","cycle","_slide","hidden","_clearInterval","_updateInterval","setInterval","nextWhenVisible","one","_getItems","_getItemIndex","_getActive","defaultInterval","_keydown","_maybeEnableCycle","_addTouchEventListeners","img","endCallBack","swipeConfig","_directionToOrder","activeIndicator","newActiveIndicator","elementInterval","isNext","nextElement","nextElementIndex","_orderToDirection","slideEvent","isCycling","_setActiveIndicatorElement","directionalClassName","orderClassName","completeCallBack","_isAnimated","clearInterval","carousel","carousels","NAME$b","DATA_KEY$7","EVENT_KEY$7","DATA_API_KEY$4","EVENT_SHOW$6","EVENT_SHOWN$6","EVENT_HIDE$6","EVENT_HIDDEN$6","EVENT_CLICK_DATA_API$4","CLASS_NAME_SHOW$7","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","CLASS_NAME_DEEPER_CHILDREN","CLASS_NAME_HORIZONTAL","WIDTH","HEIGHT","SELECTOR_ACTIVES","SELECTOR_DATA_TOGGLE$4","Default$a","DefaultType$a","Collapse","_isTransitioning","_triggerArray","toggleList","elem","getSelectorFromElement","filterElement","foundElement","_initializeChildren","_addAriaAndCollapsedClass","_isShown","show","activeChildren","_getFirstLevelChildren","startEvent","activeInstance","dimension","_getDimension","capitalizedDimension","scrollSize","selected","triggerArray","isOpen","getMultipleElementsFromSelector","NAME$a","DATA_KEY$6","EVENT_KEY$6","DATA_API_KEY$3","ESCAPE_KEY$2","TAB_KEY$1","ARROW_UP_KEY$1","ARROW_DOWN_KEY$1","RIGHT_MOUSE_BUTTON","EVENT_HIDE$5","EVENT_HIDDEN$5","EVENT_SHOW$5","EVENT_SHOWN$5","EVENT_CLICK_DATA_API$3","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_SHOW$6","CLASS_NAME_DROPUP","CLASS_NAME_DROPEND","CLASS_NAME_DROPSTART","CLASS_NAME_DROPUP_CENTER","CLASS_NAME_DROPDOWN_CENTER","SELECTOR_DATA_TOGGLE$3","SELECTOR_DATA_TOGGLE_SHOWN","SELECTOR_MENU","SELECTOR_NAVBAR","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","PLACEMENT_TOPCENTER","PLACEMENT_BOTTOMCENTER","Default$9","autoClose","popperConfig","DefaultType$9","_popper","_menu","_inNavbar","_detectNavbar","showEvent","_createPopper","_completeHide","hideEvent","removeDataAttribute","referenceElement","_getPopperConfig","parentDropdown","popperData","defaultBsPopperConfig","_getPlacement","_getOffset","setDataAttribute","openToggles","composedPath","isMenuTarget","isInput","isEscapeEvent","isUpOrDownEvent","getToggleButton","_selectMenuItem","dataApiKeydownHandler","clearMenus","NAME$9","CLASS_NAME_FADE$4","CLASS_NAME_SHOW$5","EVENT_MOUSEDOWN","Default$8","clickCallback","rootElement","DefaultType$8","Backdrop","_isAppended","_append","_getElement","_emulateAnimation","backdrop","NAME$8","DATA_KEY$5","EVENT_KEY$5","EVENT_FOCUSIN$2","EVENT_KEYDOWN_TAB","TAB_KEY","TAB_NAV_FORWARD","TAB_NAV_BACKWARD","Default$7","trapElement","DefaultType$7","FocusTrap","_isActive","_lastTabNavDirection","_handleFocusin","_handleKeydown","focusableChildren","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","PROPERTY_PADDING","PROPERTY_MARGIN","ScrollBarHelper","documentWidth","getWidth","_disableOverFlow","_setElementAttributes","calculatedValue","_resetElementAttributes","_saveInitialAttribute","styleProperty","scrollbarWidth","manipulationCallBack","setProperty","_applyManipulationCallback","actualValue","removeProperty","callBack","sel","NAME$7","DATA_KEY$4","EVENT_KEY$4","DATA_API_KEY$2","ESCAPE_KEY$1","EVENT_HIDE$4","EVENT_HIDE_PREVENTED$1","EVENT_HIDDEN$4","EVENT_SHOW$4","EVENT_SHOWN$4","EVENT_RESIZE$1","EVENT_CLICK_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_KEYDOWN_DISMISS$1","EVENT_CLICK_DATA_API$2","CLASS_NAME_OPEN","CLASS_NAME_FADE$3","CLASS_NAME_SHOW$4","CLASS_NAME_STATIC","OPEN_SELECTOR$1","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_TOGGLE$2","Default$6","DefaultType$6","Modal","_dialog","_backdrop","_initializeBackDrop","_focustrap","_initializeFocusTrap","_scrollBar","_adjustDialog","_showElement","_hideModal","modalBody","transitionComplete","_triggerBackdropTransition","event2","_resetAdjustments","isModalOverflowing","initialOverflowY","isBodyOverflowing","alreadyOpen","NAME$6","DATA_KEY$3","EVENT_KEY$3","DATA_API_KEY$1","EVENT_LOAD_DATA_API$2","ESCAPE_KEY","CLASS_NAME_SHOW$3","CLASS_NAME_SHOWING$1","CLASS_NAME_HIDING","CLASS_NAME_BACKDROP","OPEN_SELECTOR","EVENT_SHOW$3","EVENT_SHOWN$3","EVENT_HIDE$3","EVENT_HIDE_PREVENTED","EVENT_HIDDEN$3","EVENT_RESIZE","EVENT_CLICK_DATA_API$1","EVENT_KEYDOWN_DISMISS","SELECTOR_DATA_TOGGLE$1","Default$5","DefaultType$5","Offcanvas","completeCallback","ARIA_ATTRIBUTE_PATTERN","DefaultAllowlist","area","br","col","div","em","hr","h1","h2","h3","h4","h5","h6","li","ol","small","span","sup","strong","ul","uriAttributes","SAFE_URL_PATTERN","allowedAttribute","allowedAttributeList","attributeName","nodeValue","attributeRegex","regex","sanitizeHtml","unsafeHtml","allowList","sanitizeFunction","domParser","DOMParser","createdDocument","parseFromString","elementName","attributeList","allowedAttributes","NAME$5","Default$4","extraClass","sanitize","sanitizeFn","DefaultType$4","DefaultContentType","TemplateFactory","_resolvePossibleFunction","getContent","_checkContent","templateWrapper","_maybeSanitize","_setContent","templateElement","_putElementInTemplate","NAME$4","DISALLOWED_ATTRIBUTES","CLASS_NAME_FADE$2","CLASS_NAME_MODAL","CLASS_NAME_SHOW$2","SELECTOR_TOOLTIP_INNER","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","EVENT_HIDE$2","EVENT_HIDDEN$2","EVENT_SHOW$2","EVENT_SHOWN$2","EVENT_INSERTED","EVENT_CLICK$1","EVENT_FOCUSIN$1","EVENT_FOCUSOUT$1","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default$3","animation","customClass","DefaultType$3","_isEnabled","_timeout","_isHovered","_activeTrigger","_templateFactory","_newContent","tip","_setListeners","_fixTitle","_leave","_enter","_hideModalHandler","_disposePopper","_isWithContent","isInTheDom","_getTipElement","_isWithActiveTrigger","_getTitle","_createTipElement","_getContentForTemplate","_getTemplateFactory","toHtml","tipId","changeContent","_getDelegateConfig","attachment","triggers","_initializeOnDelegatedTarget","eventIn","eventOut","_setTimeout","dataAttributes","dataAttribute","NAME$3","SELECTOR_TITLE","SELECTOR_CONTENT","Default$2","DefaultType$2","Popover","_getContent","NAME$2","DATA_KEY$2","EVENT_KEY$2","DATA_API_KEY","EVENT_ACTIVATE","EVENT_CLICK","EVENT_LOAD_DATA_API$1","CLASS_NAME_DROPDOWN_ITEM","CLASS_NAME_ACTIVE$1","SELECTOR_DATA_SPY","SELECTOR_TARGET_LINKS","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_LINK_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE$1","Default$1","rootMargin","smoothScroll","DefaultType$1","ScrollSpy","_targetLinks","_observableSections","_rootElement","_activeTarget","_observer","_previousScrollData","visibleEntryTop","parentScrollTop","refresh","_initializeTargetsAndObservables","_maybeEnableSmoothScroll","_getNewObserver","section","observableSection","IntersectionObserver","_observerCallback","targetElement","userScrollsDown","isIntersecting","_clearActiveClass","entryIsLowerThanPrevious","targetLinks","decodeURI","_activateParents","listGroup","activeNodes","spy","NAME$1","DATA_KEY$1","EVENT_KEY$1","EVENT_HIDE$1","EVENT_HIDDEN$1","EVENT_SHOW$1","EVENT_SHOWN$1","EVENT_CLICK_DATA_API","EVENT_KEYDOWN","EVENT_LOAD_DATA_API","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","CLASS_NAME_ACTIVE","CLASS_NAME_FADE$1","CLASS_NAME_SHOW$1","CLASS_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","SELECTOR_DROPDOWN_MENU","NOT_SELECTOR_DROPDOWN_TOGGLE","SELECTOR_TAB_PANEL","SELECTOR_OUTER","SELECTOR_INNER","SELECTOR_DATA_TOGGLE","SELECTOR_INNER_ELEM","SELECTOR_DATA_TOGGLE_ACTIVE","Tab","_setInitialAttributes","_getChildren","innerElem","_elemIsActive","_getActiveElem","_deactivate","_activate","relatedElem","_toggleDropDown","nextActiveElement","preventScroll","_setAttributeIfNotExists","_setInitialAttributesOnChild","_getInnerElement","outerElem","_getOuterElement","_setInitialAttributesOnTargetPanel","EVENT_MOUSEOVER","EVENT_MOUSEOUT","EVENT_FOCUSIN","EVENT_FOCUSOUT","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","CLASS_NAME_FADE","CLASS_NAME_HIDE","CLASS_NAME_SHOW","CLASS_NAME_SHOWING","autohide","Toast","_hasMouseInteraction","_hasKeyboardInteraction","_clearTimeout","_maybeScheduleHide","isShown","isInteracting","_onInteraction","svgNS","doc","templateContainer","nodeOps","createElementNS","multiple","patchClass","transitionClasses","_vtc","patchStyle","isCssString","setStyle","currentDisplay","cssText","importantRE","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","removeAttributeNS","setAttributeNS","isBoolean","patchDOMProp","_value","needRemove","patchEvent","prevValue","nextValue","invokers","_vei","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","cachedNow","getNow","initialValue","_vts","attached","patchStopImmediatePropagation","originalStop","_stopped","nativeOnRE","shouldSetAsProp","_trueValue","_falseValue","defineCustomElement","Comp","VueCustomElement","VueElement","initialProps","defineSSRCustomElement","BaseClass","_def","_connected","_resolved","_numberProps","_resolveProps","_update","_resolveDef","_setAttr","isAsync","numberProps","_applyStyles","asyncDef","declaredPropKeys","_setProp","_getProp","shouldReflect","shouldUpdate","useCssModule","mod","useCssVars","updateTeleports","vars","setVarsOnNode","setVars","setVarsOnVNode","ob","TRANSITION","ANIMATION","Transition","resolveTransitionProps","DOMTransitionPropsValidators","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","TransitionPropsValidators","hasExplicitCallback","baseProps","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","removeTransitionClass","finishLeave","_isLeaving","makeEnterHook","nextFrame","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","cls","endId","expectedType","explicitTimeout","_endId","resolveIfNotStale","propCount","getTransitionInfo","endEvent","ended","onEnd","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","toMs","positionMap","newPositionMap","TransitionGroupImpl","moveClass","hasCSSTransform","callPendingCbs","recordPosition","movedChildren","applyTranslation","_moveCb","cssTransitionProps","TransitionGroup","oldPos","newPos","dx","dy","getModelAssigner","onCompositionStart","composing","onCompositionEnd","vModelText","lazy","_assign","castToNumber","domValue","vModelCheckbox","_modelValue","elementValue","getValue","checked","filtered","getCheckboxValue","setChecked","vModelRadio","vModelSelect","isSetModel","selectedVal","setSelected","_binding","isMultiple","option","optionValue","vModelDynamic","callModelHook","resolveDynamicModel","modelToUse","initVModelForSSR","systemModifiers","modifierGuards","prevent","shift","alt","exact","withModifiers","keyNames","esc","space","up","down","withKeys","eventKey","vShow","_vod","setDisplay","initVShowForSSR","rendererOptions","enabledHydration","ensureRenderer","ensureHydrationRenderer","containerOrSelector","normalizeContainer","createSSRApp","ssrDirectiveInitialized","initDirectivesForSSR","Navigation","toggleEl","disabledClass","_swiper$navigation","$nextEl","$prevEl","onPrevClick","onNextClick","_swiper$navigation2","toEdge","fromEdge","_swiper$navigation3","_swiper$navigation4","functionToString","982","useLoading","w","enforceFocus","focusIn","isFullPage","parentElement","cx","cy","dur","repeatCount","viewBox","xmlns","stroke","begin","calcMode","attributeType","g","Spinner","Dots","Bars","programmatic","lockScroll","canCancel","onCancel","keyPress","disableScroll","enableScroll","background","backdropFilter","bgStyle","N","$loading","postfix","paramsList","getParams","rest","allowedParams","plainObj","initSwiper","mountSwiper","paginationEl","scrollbarEl","calcLoopedSlides","slidesPerViewParams","renderLoop","swiperRef","modifiedSlides","duplicateSlide","blankSlide","getChangedParams","oldParams","addKey","oldChildrenKeys","childrenKeys","watchParams","newKeys","oldKeys","newKey","oldKey","getChildren","originalSlots","slidesRef","oldSlidesRef","getSlidesFromElements","els","slotName","updateSwiper","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","changedParams","updateParams","currentParams","thumbs","controller","control","destroyModule","updateOnVirtualData","parallax","renderVirtual","virtualData","wrapperTag","a11y","cubeEffect","fadeEffect","flipEffect","hashNavigation","mousewheel","zoom","Tag","WrapperTag","containerClasses","breakpointChanged","initializedRef","swiperElRef","oldPassedParamsRef","nextElRef","prevElRef","paginationElRef","scrollbarElRef","_getParams","onBeforeBreakpoint","_beforeBreakpoint","_containerClasses","extendWith","renderExternal","renderExternalUpdate","renderSlides","_getParams2","newPassedParams","definePropertyModule","replacement","feature","detection","POLYFILL","NATIVE","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","ENUMERABLE","WRITABLE","Attributes","makeMap","expectsLowerCase","PatchFlagNames","slotFlagsText","GLOBALS_WHITE_LISTED","generateCodeFrame","lines","newlineSequences","idx","lineLength","newLineSeqLength","pad","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","tmp","stringifyStyle","HTML_TAGS","SVG_TAGS","VOID_TAGS","isHTMLTag","isSVGTag","isVoidTag","specialBooleanAttrs","isSpecialBooleanAttr","isBooleanAttr","includeBooleanAttr","unsafeAttrCharRE","attrValidationCache","isSSRSafeAttrName","isUnsafe","propsToAttrMap","acceptCharset","htmlFor","httpEquiv","isKnownHtmlAttr","isKnownSvgAttr","escapeRE","escapeHtml","escaped","commentStripRE","escapeHtmlComment","looseCompareArrays","equal","looseEqual","aValidType","isDate","bValidType","isSymbol","aKeysCount","bKeysCount","aHasKey","bHasKey","looseIndexOf","objectToString","replacer","__v_isRef","onRE","toTypeString","toRawType","isIntegerKey","isBuiltInDirective","cacheStringFunction","camelizeRE","hyphenateRE","fns","NaN","_globalThis","globalThis","identRE","genPropsAccessExp","toPrimitive","SwiperSlide","virtualIndex","eventAttached","slideElRef","slideClasses","updateClasses","slideData","isDuplicate","isPrev","activeEffectScope","detached","_active","cleanups","scopes","currentEffectScope","fromParent","recordEffectScope","createDep","wasTracked","trackOpBit","newTracked","initDepMarkers","finalizeDepMarkers","ptr","targetMap","effectTrackDepth","maxMarkerBits","activeEffect","ITERATE_KEY","MAP_KEY_ITERATE_KEY","lastShouldTrack","shouldTrack","cleanupEffect","deferStop","_effect","runner","trackStack","enableTracking","depsMap","eventInfo","trackEffects","debuggerEventExtraInfo","oldTarget","triggerEffects","triggerEffect","getDepFromReactive","isNonTrackableKeys","builtInSymbols","get$1","createGetter","shallowGet","readonlyGet","shallowReadonlyGet","arrayInstrumentations","createArrayInstrumentations","instrumentations","receiver","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","set$1","createSetter","shallowSet","hadKey","deleteProperty","has$1","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","shallowReadonlyHandlers","toShallow","getProto","rawTarget","rawKey","toReadonly","toReactive","deleteEntry","clear","hadItems","createForEach","thisArg","observed","createIterableMethod","targetIsMap","isPair","isKeyOnly","innerIterator","createReadonlyMethod","createInstrumentations","mutableInstrumentations","shallowInstrumentations","readonlyInstrumentations","shallowReadonlyInstrumentations","iteratorMethods","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","shallowReadonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","isExtensible","createReactiveObject","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","trackRefValue","triggerRefValue","newVal","createRef","rawValue","RefImpl","__v_isShallow","_rawValue","useDirectValue","shallowUnwrapHandlers","objectWithRefs","CustomRefImpl","factory","_get","_set","ObjectRefImpl","_object","_defaultValue","_a$1","ComputedRefImpl","_setter","_dirty","_cacheable","onlyGetter","cRef","tick","queued","DeferredComputedRefImpl","compareTarget","hasCompareTarget","scheduled","computedTrigger","valueToCompare","deferredComputed","getDevtoolsGlobalHook","getTarget","__VUE_DEVTOOLS_GLOBAL_HOOK__","isProxyAvailable","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","getMethod","ordinaryToPrimitive","wellKnownSymbol","TO_PRIMITIVE","exoticToPrim","head","__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","vertical","gradient","gradientColor","gradientWidth","gradientLength","pauseOnHover","pauseOnClick","animateOnOverflowOnly","cloneAmount","minWidth","minHeight","componentKey","verticalAnimationPause","animateOnOverflowPause","containerWidth","contentWidth","containerHeight","contentHeight","mouseOverMarquee","mouseDownMarquee","loopCounter","loopInterval","marqueeContent","marqueeOverlayContainer","ForcesUpdate","async","checkForClone","localCloneAmount","oldVal","hoverStarted","hoverEnded","mouseDown","mouseUp","animationState","hoverAnimationState","clickAnimationState","getCurrentStyle","cssVariables","animationStyles","orientation","showGradient","setupMarquee","horizontal","onMouseenter","onMouseleave","onMousedown","onMouseup","Vue3Marquee","NATIVE_BIND","SHARED","createCommonjsModule","assignSymbols$1","isEnumerable","getSymbols","assignSymbols$2","freeze","__moduleExports","assignSymbols","assignDeep","isValidKey","isPrimitive","inBrowser","hasIntersectionObserver","checkIntersectionObserver","IntersectionObserverEntry","intersectionRatio","modeType","getBestSelectionFromSrcset","spaceIndex","tmpSrc","tmpWidth","lastIndexOf","tmpOption","bestSelectedSrc","getDPR","supportWebp","checkWebpFeature","kTestImages","lossy","lossless","alpha","throttle","lastRun","elapsed","runCallback","testSupportsPassive","loadImageAsync","cors","crossOrigin","naturalHeight","naturalWidth","ImageCache","_caches","free","ReactiveListener","loading","bindType","elRenderer","imageCache","attempt","_imageCache","performanceData","loadStart","loadEnd","initState","oldSrc","getRect","preLoad","preLoadTop","onFinish","log","renderLoading","adapter","beforeLoad","DEFAULT_URL","DEFAULT_EVENTS","DEFAULT_OBSERVER_OPTIONS","Lazy","throttleWait","listenEvents","observerOptions","lazyContainerMananger","ListenerQueue","TargetIndex","TargetQueue","_initEvent","lazyLoadHandler","_lazyLoadHandler","setMode","vm","_addListenerTarget","_valueFormatter","newListener","_elRenderer","exist","existItem","_removeListenerTarget","$destroy","_initListen","_initIntersectionObserver","childrenCount","listened","$on","$once","$off","inCache","freeList","catIn","checkInView","_observerHandler","useCheckInView","LazyComponent","addLazyBox","removeComponent","LazyContainerMananger","_queue","LazyContainer","imgs","getImgs","LazyImage","renderSrc","lazyContainer","vueVersion","$Lazyload","lazyComponent","lazyImage","simple","unsafe","nonConfigurable","nonWritable","aFunction","Autoplay","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","onTransitionEnd","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","onMouseLeave","attachMouseEvents","pauseOnMouseEnter","detachMouseEvents","beforeTransitionStart","sliderFirstMove","touchEnd","$propertyIsEnumerable","NASHORN_BUG","1","V","$Symbol","aCallable","uncurryThisWithBind","getOwnPropertyDescriptorModule","exceptions","RE_ARGS","identifier","hasSymbol","makeSymbol","generateFormatCacheKey","friendlyJSONstringify","json","isNumber","isEmptyObject","stack","rawText","toPromise","titleText","footer","iconColor","iconHtml","toast","showClass","popup","hideClass","heightAuto","allowOutsideClick","allowEscapeKey","allowEnterKey","stopKeydownPropagation","keydownListenerCapture","showConfirmButton","showDenyButton","showCancelButton","preConfirm","preDeny","confirmButtonText","confirmButtonAriaLabel","confirmButtonColor","denyButtonText","denyButtonAriaLabel","denyButtonColor","cancelButtonText","cancelButtonAriaLabel","cancelButtonColor","buttonsStyling","reverseButtons","focusConfirm","focusDeny","focusCancel","returnFocus","showCloseButton","closeButtonHtml","closeButtonAriaLabel","loaderHtml","showLoaderOnConfirm","showLoaderOnDeny","imageUrl","imageWidth","imageHeight","imageAlt","timer","timerProgressBar","inputPlaceholder","inputLabel","inputValue","inputAutoTrim","inputAttributes","inputValidator","returnInputValueOnDeny","validationMessage","grow","progressSteps","currentProgressStep","progressStepsDistance","willOpen","didOpen","didRender","willClose","didClose","didDestroy","scrollbarPadding","C","A","B","E","T","S","L","M","D","I","H","q","confirm","deny","R","F","U","W","close","K","Y","Q","Z","J","X","previousBodyPadding","G","tt","et","st","nt","checkbox","radio","ot","at","ct","lt","dt","pt","gt","ht","ft","bt","yt","wt","vt","Ct","kt","previousActiveElement","At","restoreFocusTimeout","Pt","file","textarea","Bt","xt","resetValidationMessage","Et","oninput","onchange","Tt","St","Ot","Lt","jt","Mt","Dt","It","WebkitAnimation","Ht","qt","Vt","Rt","Nt","styled","Ft","Ut","Wt","zt","_t","awaitingPromise","innerParams","domCache","Kt","Jt","Yt","Xt","ee","Zt","Gt","Qt","innerText","insertAdjacentElement","email","password","tel","attributeFilter","ne","oe","ie","se","ue","de","ae","le","pe","question","warning","borderColor","me","ge","he","fe","be","ye","we","modal","ve","Ce","ke","Ae","Pe","Be","je","xe","Ee","Te","Se","Oe","Le","Me","De","Ie","He","qe","Ve","remaining","Ne","Re","Fe","MSStream","iosfix","We","Ue","paddingBottom","ontouchstart","ze","ontouchmove","Ke","touchType","$e","Ye","Ze","Qe","Xe","Ge","Je","shown","tn","_o","en","nn","cn","ln","getInput","sn","rn","an","files","un","dn","hideLoading","pn","mn","disableButtons","Cn","gn","yn","hn","bn","checkValidity","enableButtons","showValidationMessage","disableInput","enableInput","closePopup","isDenied","vn","wn","isConfirmed","rejectPromise","kn","An","xn","En","Tn","onclick","Pn","Bn","onmousedown","onmouseup","Sn","On","Ln","jn","Mn","keydownTarget","keydownHandlerAdded","keydownHandler","qn","Dn","In","Hn","Vn","Nn","Rn","Fn","isComposing","Un","Wn","zn","Kn","_main","getTimerLeft","Yn","Zn","Jn","Xn","increase","Gn","isRunning","Qn","eo","no","fire","oo","isValidParameter","isUpdatableParameter","isDeprecatedParameter","argsToParams","clickConfirm","clickDeny","clickCancel","getContainer","getPopup","getTitle","getHtmlContainer","getImage","getIcon","getInputLabel","getCloseButton","getActions","getConfirmButton","getDenyButton","getCancelButton","getLoader","getFooter","getTimerProgressBar","getFocusableElements","getValidationMessage","isLoading","showLoading","enableLoading","stopTimer","resumeTimer","toggleTimer","increaseTimer","isTimerRunning","bindClickHandler","io","so","confirmButton","denyButton","cancelButton","getElementsByClassName","ro","ao","swalPromiseResolve","swalPromiseReject","co","wo","lo","uo","fo","mo","isAwaitingPromise","isDismissed","ho","po","bo","_destroy","yo","swalCloseEventFinishedCallback","vo","Co","ko","Ao","Po","Bo","xo","inputerror","Eo","To","So","Oo","Lo","deferDisposalTimer","jo","Mo","Do","Io","disableLoading","closeModal","closeToast","getProgressSteps","Ho","qo","No","Ro","Vo","finally","dismiss","closeButton","Fo","Uo","Wo","zo","DismissReason","Sweetalert2","swal","sweetAlert","Swal","SweetAlert","$swal","IndexedObject","ssrDocument","createEvent","initEvent","getElementsByTagName","importNode","hostname","origin","getDocument","ssrWindow","pushState","cancelAnimationFrame"],"mappings":"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AEF,CACE,uBACA,KACA,OAEF,CACE,iBACA,KACA,QAEF,CACE,UACA,KACA,OAEF,CACE,SACA,KACA,OAEF,CACE,WACA,KACA,QAEF,CACE,sBACA,KACA,QAEF,CACE,YACA,KACA,MAEF,CACE,qBACA,KACA,OAEF,CACE,QACA,KACA,OAEF,CACE,YACA,KACA,MAEF,CACE,uBACA,KACA,MAEF,CACE,0BACA,KACA,OAEF,CACE,UACA,KACA,QAEF,CACE,uBACA,KACA,OAEF,CACE,wBACA,KACA,OAEF,CACE,WACA,KACA,QAEF,CACE,qBACA,KACA,OAEF,CACE,mBACA,KACA,MAEF,CACE,SACA,KACA,OAEF,CACE,gBACA,KACA,OAEF,CACE,UACA,KACA,QAEF,CACE,iBACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,+CACA,KACA,OAEF,CACE,WACA,KACA,OAEF,CACE,kBACA,KACA,MAEF,CACE,iCACA,KACA,OAEF,CACE,yBACA,KACA,QAEF,CACE,SACA,KACA,OAEF,CACE,sBACA,KACA,OAEF,CACE,eACA,KACA,OAEF,CACE,qBACA,KACA,OAEF,CACE,qBACA,KACA,OAEF,CACE,sBACA,KACA,OAEF,CACE,SACA,KACA,KAEF,CACE,0BACA,KACA,OAEF,CACE,wBACA,KACA,OAEF,CACE,iBACA,KACA,QAEF,CACE,uDACA,KACA,OAEF,CACE,eACA,KACA,OAEF,CACE,QACA,KACA,MAEF,CACE,aACA,KACA,MAEF,CACE,mBACA,KACA,MAEF,CACE,0BACA,KACA,MAEF,CACE,WACA,KACA,MAEF,CACE,yBACA,KACA,OAEF,CACE,iDACA,KACA,OAEF,CACE,uCACA,KACA,OAEF,CACE,eACA,KACA,OAEF,CACE,aACA,KACA,OAEF,CACE,gBACA,KACA,OAEF,CACE,qBACA,KACA,OAEF,CACE,OACA,KACA,MAEF,CACE,UACA,KACA,OAEF,CACE,kBACA,KACA,OAEF,CACE,mCACA,KACA,OAEF,CACE,oBACA,KACA,MAEF,CACE,WACA,KACA,OAEF,CACE,WACA,KACA,QAEF,CACE,4CACA,KACA,KAEF,CACE,UACA,KACA,OAEF,CACE,iBACA,KACA,MAEF,CACE,cACA,KACA,OAEF,CACE,wCACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,kBACA,KACA,OAEF,CACE,WACA,KACA,OAEF,CACE,oCACA,KACA,OAEF,CACE,0BACA,KACA,OAEF,CACE,OACA,KACA,OAEF,CACE,kBACA,KACA,OAEF,CACE,SACA,KACA,MAEF,CACE,mCACA,KACA,OAEF,CACE,yCACA,KACA,OAEF,CACE,QACA,KACA,OAEF,CACE,SACA,KACA,OAEF,CACE,uBACA,KACA,OAEF,CACE,wBACA,KACA,MAEF,CACE,gBACA,KACA,OAEF,CACE,YACA,KACA,OAEF,CACE,kBACA,KACA,MAEF,CACE,+BACA,KACA,OAEF,CACE,UACA,KACA,QAEF,CACE,aACA,KACA,OAEF,CACE,OACA,KACA,QAEF,CACE,YACA,KACA,OAEF,CACE,WACA,KACA,KACA,GAEF,CACE,kBACA,KACA,OAEF,CACE,+BACA,KACA,OAEF,CACE,SACA,KACA,OAEF,CACE,QACA,KACA,OAEF,CACE,WACA,KACA,OAEF,CACE,iBACA,KACA,OAEF,CACE,yBACA,KACA,MAEF,CACE,mBACA,KACA,OAEF,CACE,eACA,KACA,MAEF,CACE,YACA,KACA,MAEF,CACE,kBACA,KACA,MAEF,CACE,mBACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,cACA,KACA,MAEF,CACE,oBACA,KACA,OAEF,CACE,iBACA,KACA,MAEF,CACE,UACA,KACA,QAEF,CACE,aACA,KACA,MAEF,CACE,SACA,KACA,MAEF,CACE,qBACA,KACA,OAEF,CACE,yBACA,KACA,KAEF,CACE,QACA,KACA,OAEF,CACE,WACA,KACA,OAEF,CACE,SACA,KACA,OAEF,CACE,qBACA,KACA,OAEF,CACE,0BACA,KACA,OAEF,CACE,aACA,KACA,OAEF,CACE,mBACA,KACA,OAEF,CACE,qBACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,mBACA,KACA,OAEF,CACE,gBACA,KACA,OAEF,CACE,sBACA,KACA,OAEF,CACE,aACA,KACA,OAEF,CACE,aACA,KACA,OAEF,CACE,iCACA,KACA,OAEF,CACE,4BACA,KACA,OAEF,CACE,SACA,KACA,OAEF,CACE,WACA,KACA,MAEF,CACE,WACA,KACA,OAEF,CACE,OACA,KACA,OAEF,CACE,QACA,KACA,OAEF,CACE,mBACA,KACA,OAEF,CACE,aACA,KACA,OAEF,CACE,4BACA,KACA,OAEF,CACE,oBACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,kBACA,KACA,MAEF,CACE,aACA,KACA,OAEF,CACE,8BACA,KACA,OAEF,CACE,SACA,KACA,OAEF,CACE,oBACA,KACA,OAEF,CACE,yBACA,KACA,OAEF,CACE,aACA,KACA,QAEF,CACE,sBACA,KACA,OAEF,CACE,0BACA,KACA,OAEF,CACE,2BACA,KACA,MAEF,CACE,oBACA,KACA,OAEF,CACE,QACA,KACA,OAEF,CACE,gBACA,KACA,OAEF,CACE,0BACA,KACA,MAEF,CACE,qCACA,KACA,OAEF,CACE,cACA,KACA,MAEF,CACE,YACA,KACA,OAEF,CACE,gBACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,OACA,KACA,OAEF,CACE,iBACA,KACA,OAEF,CACE,+BACA,KACA,OAEF,CACE,2BACA,KACA,QAEF,CACE,iBACA,KACA,MAEF,CACE,kBACA,KACA,OAEF,CACE,wBACA,KACA,MAEF,CACE,QACA,KACA,OAEF,CACE,wBACA,KACA,OAEF,CACE,kBACA,KACA,OAEF,CACE,mBACA,KACA,OAEF,CACE,WACA,KACA,OAEF,CACE,cACA,KACA,MAEF,CACE,cACA,KACA,MAEF,CACE,kBACA,KACA,MAEF,CACE,WACA,KACA,OAEF,CACE,cACA,KACA,KAEF,CACE,iBACA,KACA,OAEF,CACE,uBACA,KACA,OAEF,CACE,oBACA,KACA,MAEF,CACE,kBACA,KACA,KAEF,CACE,SACA,KACA,OAEF,CACE,mBACA,KACA,OAEF,CACE,eACA,KACA,OAEF,CACE,wBACA,KACA,QAEF,CACE,cACA,KACA,QAEF,CACE,iDACA,KACA,OAEF,CACE,uDACA,KACA,OAEF,CACE,mCACA,KACA,QAEF,CACE,QACA,KACA,OAEF,CACE,aACA,KACA,OAEF,CACE,8CACA,KACA,OAEF,CACE,6CACA,KACA,OAEF,CACE,oBACA,KACA,OAEF,CACE,kBACA,KACA,OAEF,CACE,aACA,KACA,OAEF,CACE,eACA,KACA,OAEF,CACE,YACA,KACA,MAEF,CACE,eACA,KACA,QAEF,CACE,uBACA,KACA,OAEF,CACE,uBACA,KACA,OAEF,CACE,kBACA,KACA,OAEF,CACE,uBACA,KACA,OAEF,CACE,eACA,KACA,MAEF,CACE,qBACA,KACA,MAEF,CACE,gCACA,KACA,OAEF,CACE,iBACA,KACA,MAEF,CACE,0BACA,KACA,MAEF,CACE,qBACA,KACA,OAEF,CACE,WACA,KACA,OAEF,CACE,yBACA,KACA,MAEF,CACE,YACA,KACA,OAEF,CACE,mBACA,KACA,MAEF,CACE,wBACA,KACA,MAEF,CACE,mBACA,KACA,OAEF,CACE,cACA,KACA,OAEF,CACE,aACA,KACA,OAEF,CACE,WACA,KACA,OAEF,CACE,iBACA,KACA,MAEF,CACE,cACA,KACA,OAEF,CACE,OACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,QACA,KACA,OAEF,CACE,sBACA,KACA,QAEF,CACE,oBACA,KACA,OAEF,CACE,mBACA,KACA,MAEF,CACE,eACA,KACA,OAEF,CACE,2BACA,KACA,QAEF,CACE,SACA,KACA,OAEF,CACE,sBACA,KACA,QAEF,CACE,SACA,KACA,OAEF,CACE,oBACA,KACA,OAEF,CACE,qDACA,KACA,OAEF,CACE,iBACA,KACA,MAEF,CACE,gBACA,KACA,KAEF,CACE,UACA,KACA,OAEF,CACE,2BACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,oCACA,KACA,MAEF,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AM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,EAAK,CAAC,KAAM,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,KAAM,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,KAAM,KAAM,KAAM,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,KAAM,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,KAAM,KAAM,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,GAAM,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,KAAM,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,KAAM,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,KAAM,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,KAAM,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,KAAM,KAAM,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IAAO,CAAC,MAAO,IA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","file":"js/chunk-vendors.9381595d.js","sourcesContent":["/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./dist/runtime-core.cjs.prod.js')\n} else {\n module.exports = require('./dist/runtime-core.cjs.js')\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","export const HOOK_SETUP = 'devtools-plugin:setup';\nexport const HOOK_PLUGIN_SETTINGS_SET = 'plugin:settings:set';\n","import { HOOK_PLUGIN_SETTINGS_SET } from './const.js';\nimport { now } from './time.js';\nexport class ApiProxy {\n constructor(plugin, hook) {\n this.target = null;\n this.targetQueue = [];\n this.onQueue = [];\n this.plugin = plugin;\n this.hook = hook;\n const defaultSettings = {};\n if (plugin.settings) {\n for (const id in plugin.settings) {\n const item = plugin.settings[id];\n defaultSettings[id] = item.defaultValue;\n }\n }\n const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`;\n let currentSettings = Object.assign({}, defaultSettings);\n try {\n const raw = localStorage.getItem(localSettingsSaveId);\n const data = JSON.parse(raw);\n Object.assign(currentSettings, data);\n }\n catch (e) {\n // noop\n }\n this.fallbacks = {\n getSettings() {\n return currentSettings;\n },\n setSettings(value) {\n try {\n localStorage.setItem(localSettingsSaveId, JSON.stringify(value));\n }\n catch (e) {\n // noop\n }\n currentSettings = value;\n },\n now() {\n return now();\n },\n };\n if (hook) {\n hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => {\n if (pluginId === this.plugin.id) {\n this.fallbacks.setSettings(value);\n }\n });\n }\n this.proxiedOn = new Proxy({}, {\n get: (_target, prop) => {\n if (this.target) {\n return this.target.on[prop];\n }\n else {\n return (...args) => {\n this.onQueue.push({\n method: prop,\n args,\n });\n };\n }\n },\n });\n this.proxiedTarget = new Proxy({}, {\n get: (_target, prop) => {\n if (this.target) {\n return this.target[prop];\n }\n else if (prop === 'on') {\n return this.proxiedOn;\n }\n else if (Object.keys(this.fallbacks).includes(prop)) {\n return (...args) => {\n this.targetQueue.push({\n method: prop,\n args,\n resolve: () => { },\n });\n return this.fallbacks[prop](...args);\n };\n }\n else {\n return (...args) => {\n return new Promise(resolve => {\n this.targetQueue.push({\n method: prop,\n args,\n resolve,\n });\n });\n };\n }\n },\n });\n }\n async setRealTarget(target) {\n this.target = target;\n for (const item of this.onQueue) {\n this.target.on[item.method](...item.args);\n }\n for (const item of this.targetQueue) {\n item.resolve(await this.target[item.method](...item.args));\n }\n }\n}\n","import { getTarget, getDevtoolsGlobalHook, isProxyAvailable } from './env.js';\nimport { HOOK_SETUP } from './const.js';\nimport { ApiProxy } from './proxy.js';\nexport * from './api/index.js';\nexport * from './plugin.js';\nexport * from './time.js';\nexport function setupDevtoolsPlugin(pluginDescriptor, setupFn) {\n const descriptor = pluginDescriptor;\n const target = getTarget();\n const hook = getDevtoolsGlobalHook();\n const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy;\n if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) {\n hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);\n }\n else {\n const proxy = enableProxy ? new ApiProxy(descriptor, hook) : null;\n const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];\n list.push({\n pluginDescriptor: descriptor,\n setupFn,\n proxy,\n });\n if (proxy)\n setupFn(proxy.proxiedTarget);\n }\n}\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","/*!\n * message-compiler v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { format, assign, isString } from '@intlify/shared';\n\nconst CompileErrorCodes = {\r\n // tokenizer error codes\r\n EXPECTED_TOKEN: 1,\r\n INVALID_TOKEN_IN_PLACEHOLDER: 2,\r\n UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3,\r\n UNKNOWN_ESCAPE_SEQUENCE: 4,\r\n INVALID_UNICODE_ESCAPE_SEQUENCE: 5,\r\n UNBALANCED_CLOSING_BRACE: 6,\r\n UNTERMINATED_CLOSING_BRACE: 7,\r\n EMPTY_PLACEHOLDER: 8,\r\n NOT_ALLOW_NEST_PLACEHOLDER: 9,\r\n INVALID_LINKED_FORMAT: 10,\r\n // parser error codes\r\n MUST_HAVE_MESSAGES_IN_PLURAL: 11,\r\n UNEXPECTED_EMPTY_LINKED_MODIFIER: 12,\r\n UNEXPECTED_EMPTY_LINKED_KEY: 13,\r\n UNEXPECTED_LEXICAL_ANALYSIS: 14,\r\n // Special value for higher-order compilers to pick up the last code\r\n // to avoid collision of error codes. This should always be kept as the last\r\n // item.\r\n __EXTEND_POINT__: 15\r\n};\r\n/** @internal */\r\nconst errorMessages = {\r\n // tokenizer error messages\r\n [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`,\r\n [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`,\r\n [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`,\r\n [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\\\{0}`,\r\n [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`,\r\n [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`,\r\n [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`,\r\n [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`,\r\n [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`,\r\n [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`,\r\n // parser error messages\r\n [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`,\r\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`,\r\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`,\r\n [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`\r\n};\r\nfunction createCompileError(code, loc, options = {}) {\r\n const { domain, messages, args } = options;\r\n const msg = (process.env.NODE_ENV !== 'production')\r\n ? format((messages || errorMessages)[code] || '', ...(args || []))\r\n : code;\r\n const error = new SyntaxError(String(msg));\r\n error.code = code;\r\n if (loc) {\r\n error.location = loc;\r\n }\r\n error.domain = domain;\r\n return error;\r\n}\r\n/** @internal */\r\nfunction defaultOnError(error) {\r\n throw error;\r\n}\n\nconst LocationStub = {\r\n start: { line: 1, column: 1, offset: 0 },\r\n end: { line: 1, column: 1, offset: 0 }\r\n};\r\nfunction createPosition(line, column, offset) {\r\n return { line, column, offset };\r\n}\r\nfunction createLocation(start, end, source) {\r\n const loc = { start, end };\r\n if (source != null) {\r\n loc.source = source;\r\n }\r\n return loc;\r\n}\n\nconst CHAR_SP = ' ';\r\nconst CHAR_CR = '\\r';\r\nconst CHAR_LF = '\\n';\r\nconst CHAR_LS = String.fromCharCode(0x2028);\r\nconst CHAR_PS = String.fromCharCode(0x2029);\r\nfunction createScanner(str) {\r\n const _buf = str;\r\n let _index = 0;\r\n let _line = 1;\r\n let _column = 1;\r\n let _peekOffset = 0;\r\n const isCRLF = (index) => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF;\r\n const isLF = (index) => _buf[index] === CHAR_LF;\r\n const isPS = (index) => _buf[index] === CHAR_PS;\r\n const isLS = (index) => _buf[index] === CHAR_LS;\r\n const isLineEnd = (index) => isCRLF(index) || isLF(index) || isPS(index) || isLS(index);\r\n const index = () => _index;\r\n const line = () => _line;\r\n const column = () => _column;\r\n const peekOffset = () => _peekOffset;\r\n const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset];\r\n const currentChar = () => charAt(_index);\r\n const currentPeek = () => charAt(_index + _peekOffset);\r\n function next() {\r\n _peekOffset = 0;\r\n if (isLineEnd(_index)) {\r\n _line++;\r\n _column = 0;\r\n }\r\n if (isCRLF(_index)) {\r\n _index++;\r\n }\r\n _index++;\r\n _column++;\r\n return _buf[_index];\r\n }\r\n function peek() {\r\n if (isCRLF(_index + _peekOffset)) {\r\n _peekOffset++;\r\n }\r\n _peekOffset++;\r\n return _buf[_index + _peekOffset];\r\n }\r\n function reset() {\r\n _index = 0;\r\n _line = 1;\r\n _column = 1;\r\n _peekOffset = 0;\r\n }\r\n function resetPeek(offset = 0) {\r\n _peekOffset = offset;\r\n }\r\n function skipToPeek() {\r\n const target = _index + _peekOffset;\r\n // eslint-disable-next-line no-unmodified-loop-condition\r\n while (target !== _index) {\r\n next();\r\n }\r\n _peekOffset = 0;\r\n }\r\n return {\r\n index,\r\n line,\r\n column,\r\n peekOffset,\r\n charAt,\r\n currentChar,\r\n currentPeek,\r\n next,\r\n peek,\r\n reset,\r\n resetPeek,\r\n skipToPeek\r\n };\r\n}\n\nconst EOF = undefined;\r\nconst LITERAL_DELIMITER = \"'\";\r\nconst ERROR_DOMAIN$1 = 'tokenizer';\r\nfunction createTokenizer(source, options = {}) {\r\n const location = options.location !== false;\r\n const _scnr = createScanner(source);\r\n const currentOffset = () => _scnr.index();\r\n const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index());\r\n const _initLoc = currentPosition();\r\n const _initOffset = currentOffset();\r\n const _context = {\r\n currentType: 14 /* EOF */,\r\n offset: _initOffset,\r\n startLoc: _initLoc,\r\n endLoc: _initLoc,\r\n lastType: 14 /* EOF */,\r\n lastOffset: _initOffset,\r\n lastStartLoc: _initLoc,\r\n lastEndLoc: _initLoc,\r\n braceNest: 0,\r\n inLinked: false,\r\n text: ''\r\n };\r\n const context = () => _context;\r\n const { onError } = options;\r\n function emitError(code, pos, offset, ...args) {\r\n const ctx = context();\r\n pos.column += offset;\r\n pos.offset += offset;\r\n if (onError) {\r\n const loc = createLocation(ctx.startLoc, pos);\r\n const err = createCompileError(code, loc, {\r\n domain: ERROR_DOMAIN$1,\r\n args\r\n });\r\n onError(err);\r\n }\r\n }\r\n function getToken(context, type, value) {\r\n context.endLoc = currentPosition();\r\n context.currentType = type;\r\n const token = { type };\r\n if (location) {\r\n token.loc = createLocation(context.startLoc, context.endLoc);\r\n }\r\n if (value != null) {\r\n token.value = value;\r\n }\r\n return token;\r\n }\r\n const getEndToken = (context) => getToken(context, 14 /* EOF */);\r\n function eat(scnr, ch) {\r\n if (scnr.currentChar() === ch) {\r\n scnr.next();\r\n return ch;\r\n }\r\n else {\r\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\r\n return '';\r\n }\r\n }\r\n function peekSpaces(scnr) {\r\n let buf = '';\r\n while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {\r\n buf += scnr.currentPeek();\r\n scnr.peek();\r\n }\r\n return buf;\r\n }\r\n function skipSpaces(scnr) {\r\n const buf = peekSpaces(scnr);\r\n scnr.skipToPeek();\r\n return buf;\r\n }\r\n function isIdentifierStart(ch) {\r\n if (ch === EOF) {\r\n return false;\r\n }\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 97 && cc <= 122) || // a-z\r\n (cc >= 65 && cc <= 90) || // A-Z\r\n cc === 95 // _\r\n );\r\n }\r\n function isNumberStart(ch) {\r\n if (ch === EOF) {\r\n return false;\r\n }\r\n const cc = ch.charCodeAt(0);\r\n return cc >= 48 && cc <= 57; // 0-9\r\n }\r\n function isNamedIdentifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = isIdentifierStart(scnr.currentPeek());\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isListIdentifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek();\r\n const ret = isNumberStart(ch);\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLiteralStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === LITERAL_DELIMITER;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedDotStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 8 /* LinkedAlias */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \".\" /* LinkedDot */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedModifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 9 /* LinkedDot */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = isIdentifierStart(scnr.currentPeek());\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedDelimiterStart(scnr, context) {\r\n const { currentType } = context;\r\n if (!(currentType === 8 /* LinkedAlias */ ||\r\n currentType === 12 /* LinkedModifier */)) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \":\" /* LinkedDelimiter */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedReferStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 10 /* LinkedDelimiter */) {\r\n return false;\r\n }\r\n const fn = () => {\r\n const ch = scnr.currentPeek();\r\n if (ch === \"{\" /* BraceLeft */) {\r\n return isIdentifierStart(scnr.peek());\r\n }\r\n else if (ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"%\" /* Modulo */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n ch === \":\" /* LinkedDelimiter */ ||\r\n ch === \".\" /* LinkedDot */ ||\r\n ch === CHAR_SP ||\r\n !ch) {\r\n return false;\r\n }\r\n else if (ch === CHAR_LF) {\r\n scnr.peek();\r\n return fn();\r\n }\r\n else {\r\n // other characters\r\n return isIdentifierStart(ch);\r\n }\r\n };\r\n const ret = fn();\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isPluralStart(scnr) {\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \"|\" /* Pipe */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function detectModuloStart(scnr) {\r\n const spaces = peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \"%\" /* Modulo */ &&\r\n scnr.peek() === \"{\" /* BraceLeft */;\r\n scnr.resetPeek();\r\n return {\r\n isModulo: ret,\r\n hasSpace: spaces.length > 0\r\n };\r\n }\r\n function isTextStart(scnr, reset = true) {\r\n const fn = (hasSpace = false, prev = '', detectModulo = false) => {\r\n const ch = scnr.currentPeek();\r\n if (ch === \"{\" /* BraceLeft */) {\r\n return prev === \"%\" /* Modulo */ ? false : hasSpace;\r\n }\r\n else if (ch === \"@\" /* LinkedAlias */ || !ch) {\r\n return prev === \"%\" /* Modulo */ ? true : hasSpace;\r\n }\r\n else if (ch === \"%\" /* Modulo */) {\r\n scnr.peek();\r\n return fn(hasSpace, \"%\" /* Modulo */, true);\r\n }\r\n else if (ch === \"|\" /* Pipe */) {\r\n return prev === \"%\" /* Modulo */ || detectModulo\r\n ? true\r\n : !(prev === CHAR_SP || prev === CHAR_LF);\r\n }\r\n else if (ch === CHAR_SP) {\r\n scnr.peek();\r\n return fn(true, CHAR_SP, detectModulo);\r\n }\r\n else if (ch === CHAR_LF) {\r\n scnr.peek();\r\n return fn(true, CHAR_LF, detectModulo);\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n const ret = fn();\r\n reset && scnr.resetPeek();\r\n return ret;\r\n }\r\n function takeChar(scnr, fn) {\r\n const ch = scnr.currentChar();\r\n if (ch === EOF) {\r\n return EOF;\r\n }\r\n if (fn(ch)) {\r\n scnr.next();\r\n return ch;\r\n }\r\n return null;\r\n }\r\n function takeIdentifierChar(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 97 && cc <= 122) || // a-z\r\n (cc >= 65 && cc <= 90) || // A-Z\r\n (cc >= 48 && cc <= 57) || // 0-9\r\n cc === 95 || // _\r\n cc === 36 // $\r\n );\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function takeDigit(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return cc >= 48 && cc <= 57; // 0-9\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function takeHexDigit(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 48 && cc <= 57) || // 0-9\r\n (cc >= 65 && cc <= 70) || // A-F\r\n (cc >= 97 && cc <= 102)); // a-f\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function getDigits(scnr) {\r\n let ch = '';\r\n let num = '';\r\n while ((ch = takeDigit(scnr))) {\r\n num += ch;\r\n }\r\n return num;\r\n }\r\n function readModulo(scnr) {\r\n skipSpaces(scnr);\r\n const ch = scnr.currentChar();\r\n if (ch !== \"%\" /* Modulo */) {\r\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\r\n }\r\n scnr.next();\r\n return \"%\" /* Modulo */;\r\n }\r\n function readText(scnr) {\r\n let buf = '';\r\n while (true) {\r\n const ch = scnr.currentChar();\r\n if (ch === \"{\" /* BraceLeft */ ||\r\n ch === \"}\" /* BraceRight */ ||\r\n ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n !ch) {\r\n break;\r\n }\r\n else if (ch === \"%\" /* Modulo */) {\r\n if (isTextStart(scnr)) {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n else if (ch === CHAR_SP || ch === CHAR_LF) {\r\n if (isTextStart(scnr)) {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n else if (isPluralStart(scnr)) {\r\n break;\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n }\r\n return buf;\r\n }\r\n function readNamedIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let ch = '';\r\n let name = '';\r\n while ((ch = takeIdentifierChar(scnr))) {\r\n name += ch;\r\n }\r\n if (scnr.currentChar() === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n return name;\r\n }\r\n function readListIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let value = '';\r\n if (scnr.currentChar() === '-') {\r\n scnr.next();\r\n value += `-${getDigits(scnr)}`;\r\n }\r\n else {\r\n value += getDigits(scnr);\r\n }\r\n if (scnr.currentChar() === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n return value;\r\n }\r\n function readLiteral(scnr) {\r\n skipSpaces(scnr);\r\n eat(scnr, `\\'`);\r\n let ch = '';\r\n let literal = '';\r\n const fn = (x) => x !== LITERAL_DELIMITER && x !== CHAR_LF;\r\n while ((ch = takeChar(scnr, fn))) {\r\n if (ch === '\\\\') {\r\n literal += readEscapeSequence(scnr);\r\n }\r\n else {\r\n literal += ch;\r\n }\r\n }\r\n const current = scnr.currentChar();\r\n if (current === CHAR_LF || current === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0);\r\n // TODO: Is it correct really?\r\n if (current === CHAR_LF) {\r\n scnr.next();\r\n eat(scnr, `\\'`);\r\n }\r\n return literal;\r\n }\r\n eat(scnr, `\\'`);\r\n return literal;\r\n }\r\n function readEscapeSequence(scnr) {\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case '\\\\':\r\n case `\\'`:\r\n scnr.next();\r\n return `\\\\${ch}`;\r\n case 'u':\r\n return readUnicodeEscapeSequence(scnr, ch, 4);\r\n case 'U':\r\n return readUnicodeEscapeSequence(scnr, ch, 6);\r\n default:\r\n emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch);\r\n return '';\r\n }\r\n }\r\n function readUnicodeEscapeSequence(scnr, unicode, digits) {\r\n eat(scnr, unicode);\r\n let sequence = '';\r\n for (let i = 0; i < digits; i++) {\r\n const ch = takeHexDigit(scnr);\r\n if (!ch) {\r\n emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\\\${unicode}${sequence}${scnr.currentChar()}`);\r\n break;\r\n }\r\n sequence += ch;\r\n }\r\n return `\\\\${unicode}${sequence}`;\r\n }\r\n function readInvalidIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let ch = '';\r\n let identifiers = '';\r\n const closure = (ch) => ch !== \"{\" /* BraceLeft */ &&\r\n ch !== \"}\" /* BraceRight */ &&\r\n ch !== CHAR_SP &&\r\n ch !== CHAR_LF;\r\n while ((ch = takeChar(scnr, closure))) {\r\n identifiers += ch;\r\n }\r\n return identifiers;\r\n }\r\n function readLinkedModifier(scnr) {\r\n let ch = '';\r\n let name = '';\r\n while ((ch = takeIdentifierChar(scnr))) {\r\n name += ch;\r\n }\r\n return name;\r\n }\r\n function readLinkedRefer(scnr) {\r\n const fn = (detect = false, buf) => {\r\n const ch = scnr.currentChar();\r\n if (ch === \"{\" /* BraceLeft */ ||\r\n ch === \"%\" /* Modulo */ ||\r\n ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n !ch) {\r\n return buf;\r\n }\r\n else if (ch === CHAR_SP) {\r\n return buf;\r\n }\r\n else if (ch === CHAR_LF) {\r\n buf += ch;\r\n scnr.next();\r\n return fn(detect, buf);\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n return fn(true, buf);\r\n }\r\n };\r\n return fn(false, '');\r\n }\r\n function readPlural(scnr) {\r\n skipSpaces(scnr);\r\n const plural = eat(scnr, \"|\" /* Pipe */);\r\n skipSpaces(scnr);\r\n return plural;\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readTokenInPlaceholder(scnr, context) {\r\n let token = null;\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case \"{\" /* BraceLeft */:\r\n if (context.braceNest >= 1) {\r\n emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);\r\n }\r\n scnr.next();\r\n token = getToken(context, 2 /* BraceLeft */, \"{\" /* BraceLeft */);\r\n skipSpaces(scnr);\r\n context.braceNest++;\r\n return token;\r\n case \"}\" /* BraceRight */:\r\n if (context.braceNest > 0 &&\r\n context.currentType === 2 /* BraceLeft */) {\r\n emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);\r\n }\r\n scnr.next();\r\n token = getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n context.braceNest--;\r\n context.braceNest > 0 && skipSpaces(scnr);\r\n if (context.inLinked && context.braceNest === 0) {\r\n context.inLinked = false;\r\n }\r\n return token;\r\n case \"@\" /* LinkedAlias */:\r\n if (context.braceNest > 0) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n token = readTokenInLinked(scnr, context) || getEndToken(context);\r\n context.braceNest = 0;\r\n return token;\r\n default:\r\n let validNamedIdentifier = true;\r\n let validListIdentifier = true;\r\n let validLiteral = true;\r\n if (isPluralStart(scnr)) {\r\n if (context.braceNest > 0) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (context.braceNest > 0 &&\r\n (context.currentType === 5 /* Named */ ||\r\n context.currentType === 6 /* List */ ||\r\n context.currentType === 7 /* Literal */)) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n context.braceNest = 0;\r\n return readToken(scnr, context);\r\n }\r\n if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {\r\n token = getToken(context, 5 /* Named */, readNamedIdentifier(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if ((validListIdentifier = isListIdentifierStart(scnr, context))) {\r\n token = getToken(context, 6 /* List */, readListIdentifier(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if ((validLiteral = isLiteralStart(scnr, context))) {\r\n token = getToken(context, 7 /* Literal */, readLiteral(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {\r\n // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...\r\n token = getToken(context, 13 /* InvalidPlace */, readInvalidIdentifier(scnr));\r\n emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n break;\r\n }\r\n return token;\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readTokenInLinked(scnr, context) {\r\n const { currentType } = context;\r\n let token = null;\r\n const ch = scnr.currentChar();\r\n if ((currentType === 8 /* LinkedAlias */ ||\r\n currentType === 9 /* LinkedDot */ ||\r\n currentType === 12 /* LinkedModifier */ ||\r\n currentType === 10 /* LinkedDelimiter */) &&\r\n (ch === CHAR_LF || ch === CHAR_SP)) {\r\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\r\n }\r\n switch (ch) {\r\n case \"@\" /* LinkedAlias */:\r\n scnr.next();\r\n token = getToken(context, 8 /* LinkedAlias */, \"@\" /* LinkedAlias */);\r\n context.inLinked = true;\r\n return token;\r\n case \".\" /* LinkedDot */:\r\n skipSpaces(scnr);\r\n scnr.next();\r\n return getToken(context, 9 /* LinkedDot */, \".\" /* LinkedDot */);\r\n case \":\" /* LinkedDelimiter */:\r\n skipSpaces(scnr);\r\n scnr.next();\r\n return getToken(context, 10 /* LinkedDelimiter */, \":\" /* LinkedDelimiter */);\r\n default:\r\n if (isPluralStart(scnr)) {\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (isLinkedDotStart(scnr, context) ||\r\n isLinkedDelimiterStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n return readTokenInLinked(scnr, context);\r\n }\r\n if (isLinkedModifierStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n return getToken(context, 12 /* LinkedModifier */, readLinkedModifier(scnr));\r\n }\r\n if (isLinkedReferStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n if (ch === \"{\" /* BraceLeft */) {\r\n // scan the placeholder\r\n return readTokenInPlaceholder(scnr, context) || token;\r\n }\r\n else {\r\n return getToken(context, 11 /* LinkedKey */, readLinkedRefer(scnr));\r\n }\r\n }\r\n if (currentType === 8 /* LinkedAlias */) {\r\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\r\n }\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return readToken(scnr, context);\r\n }\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readToken(scnr, context) {\r\n let token = { type: 14 /* EOF */ };\r\n if (context.braceNest > 0) {\r\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n }\r\n if (context.inLinked) {\r\n return readTokenInLinked(scnr, context) || getEndToken(context);\r\n }\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case \"{\" /* BraceLeft */:\r\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n case \"}\" /* BraceRight */:\r\n emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);\r\n scnr.next();\r\n return getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n case \"@\" /* LinkedAlias */:\r\n return readTokenInLinked(scnr, context) || getEndToken(context);\r\n default:\r\n if (isPluralStart(scnr)) {\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n const { isModulo, hasSpace } = detectModuloStart(scnr);\r\n if (isModulo) {\r\n return hasSpace\r\n ? getToken(context, 0 /* Text */, readText(scnr))\r\n : getToken(context, 4 /* Modulo */, readModulo(scnr));\r\n }\r\n if (isTextStart(scnr)) {\r\n return getToken(context, 0 /* Text */, readText(scnr));\r\n }\r\n break;\r\n }\r\n return token;\r\n }\r\n function nextToken() {\r\n const { currentType, offset, startLoc, endLoc } = _context;\r\n _context.lastType = currentType;\r\n _context.lastOffset = offset;\r\n _context.lastStartLoc = startLoc;\r\n _context.lastEndLoc = endLoc;\r\n _context.offset = currentOffset();\r\n _context.startLoc = currentPosition();\r\n if (_scnr.currentChar() === EOF) {\r\n return getToken(_context, 14 /* EOF */);\r\n }\r\n return readToken(_scnr, _context);\r\n }\r\n return {\r\n nextToken,\r\n currentOffset,\r\n currentPosition,\r\n context\r\n };\r\n}\n\nconst ERROR_DOMAIN = 'parser';\r\n// Backslash backslash, backslash quote, uHHHH, UHHHHHH.\r\nconst KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\r\nfunction fromEscapeSequence(match, codePoint4, codePoint6) {\r\n switch (match) {\r\n case `\\\\\\\\`:\r\n return `\\\\`;\r\n case `\\\\\\'`:\r\n return `\\'`;\r\n default: {\r\n const codePoint = parseInt(codePoint4 || codePoint6, 16);\r\n if (codePoint <= 0xd7ff || codePoint >= 0xe000) {\r\n return String.fromCodePoint(codePoint);\r\n }\r\n // invalid ...\r\n // Replace them with U+FFFD REPLACEMENT CHARACTER.\r\n return '�';\r\n }\r\n }\r\n}\r\nfunction createParser(options = {}) {\r\n const location = options.location !== false;\r\n const { onError } = options;\r\n function emitError(tokenzer, code, start, offset, ...args) {\r\n const end = tokenzer.currentPosition();\r\n end.offset += offset;\r\n end.column += offset;\r\n if (onError) {\r\n const loc = createLocation(start, end);\r\n const err = createCompileError(code, loc, {\r\n domain: ERROR_DOMAIN,\r\n args\r\n });\r\n onError(err);\r\n }\r\n }\r\n function startNode(type, offset, loc) {\r\n const node = {\r\n type,\r\n start: offset,\r\n end: offset\r\n };\r\n if (location) {\r\n node.loc = { start: loc, end: loc };\r\n }\r\n return node;\r\n }\r\n function endNode(node, offset, pos, type) {\r\n node.end = offset;\r\n if (type) {\r\n node.type = type;\r\n }\r\n if (location && node.loc) {\r\n node.loc.end = pos;\r\n }\r\n }\r\n function parseText(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const node = startNode(3 /* Text */, context.offset, context.startLoc);\r\n node.value = value;\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseList(tokenizer, index) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(5 /* List */, offset, loc);\r\n node.index = parseInt(index, 10);\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseNamed(tokenizer, key) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(4 /* Named */, offset, loc);\r\n node.key = key;\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLiteral(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(9 /* Literal */, offset, loc);\r\n node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLinkedModifier(tokenizer) {\r\n const token = tokenizer.nextToken();\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc\r\n const node = startNode(8 /* LinkedModifier */, offset, loc);\r\n if (token.type !== 12 /* LinkedModifier */) {\r\n // empty modifier\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);\r\n node.value = '';\r\n endNode(node, offset, loc);\r\n return {\r\n nextConsumeToken: token,\r\n node\r\n };\r\n }\r\n // check token\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.value = token.value || '';\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return {\r\n node\r\n };\r\n }\r\n function parseLinkedKey(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const node = startNode(7 /* LinkedKey */, context.offset, context.startLoc);\r\n node.value = value;\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLinked(tokenizer) {\r\n const context = tokenizer.context();\r\n const linkedNode = startNode(6 /* Linked */, context.offset, context.startLoc);\r\n let token = tokenizer.nextToken();\r\n if (token.type === 9 /* LinkedDot */) {\r\n const parsed = parseLinkedModifier(tokenizer);\r\n linkedNode.modifier = parsed.node;\r\n token = parsed.nextConsumeToken || tokenizer.nextToken();\r\n }\r\n // asset check token\r\n if (token.type !== 10 /* LinkedDelimiter */) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n token = tokenizer.nextToken();\r\n // skip brace left\r\n if (token.type === 2 /* BraceLeft */) {\r\n token = tokenizer.nextToken();\r\n }\r\n switch (token.type) {\r\n case 11 /* LinkedKey */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseLinkedKey(tokenizer, token.value || '');\r\n break;\r\n case 5 /* Named */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseNamed(tokenizer, token.value || '');\r\n break;\r\n case 6 /* List */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseList(tokenizer, token.value || '');\r\n break;\r\n case 7 /* Literal */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseLiteral(tokenizer, token.value || '');\r\n break;\r\n default:\r\n // empty key\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);\r\n const nextContext = tokenizer.context();\r\n const emptyLinkedKeyNode = startNode(7 /* LinkedKey */, nextContext.offset, nextContext.startLoc);\r\n emptyLinkedKeyNode.value = '';\r\n endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);\r\n linkedNode.key = emptyLinkedKeyNode;\r\n endNode(linkedNode, nextContext.offset, nextContext.startLoc);\r\n return {\r\n nextConsumeToken: token,\r\n node: linkedNode\r\n };\r\n }\r\n endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return {\r\n node: linkedNode\r\n };\r\n }\r\n function parseMessage(tokenizer) {\r\n const context = tokenizer.context();\r\n const startOffset = context.currentType === 1 /* Pipe */\r\n ? tokenizer.currentOffset()\r\n : context.offset;\r\n const startLoc = context.currentType === 1 /* Pipe */\r\n ? context.endLoc\r\n : context.startLoc;\r\n const node = startNode(2 /* Message */, startOffset, startLoc);\r\n node.items = [];\r\n let nextToken = null;\r\n do {\r\n const token = nextToken || tokenizer.nextToken();\r\n nextToken = null;\r\n switch (token.type) {\r\n case 0 /* Text */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseText(tokenizer, token.value || ''));\r\n break;\r\n case 6 /* List */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseList(tokenizer, token.value || ''));\r\n break;\r\n case 5 /* Named */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseNamed(tokenizer, token.value || ''));\r\n break;\r\n case 7 /* Literal */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseLiteral(tokenizer, token.value || ''));\r\n break;\r\n case 8 /* LinkedAlias */:\r\n const parsed = parseLinked(tokenizer);\r\n node.items.push(parsed.node);\r\n nextToken = parsed.nextConsumeToken || null;\r\n break;\r\n }\r\n } while (context.currentType !== 14 /* EOF */ &&\r\n context.currentType !== 1 /* Pipe */);\r\n // adjust message node loc\r\n const endOffset = context.currentType === 1 /* Pipe */\r\n ? context.lastOffset\r\n : tokenizer.currentOffset();\r\n const endLoc = context.currentType === 1 /* Pipe */\r\n ? context.lastEndLoc\r\n : tokenizer.currentPosition();\r\n endNode(node, endOffset, endLoc);\r\n return node;\r\n }\r\n function parsePlural(tokenizer, offset, loc, msgNode) {\r\n const context = tokenizer.context();\r\n let hasEmptyMessage = msgNode.items.length === 0;\r\n const node = startNode(1 /* Plural */, offset, loc);\r\n node.cases = [];\r\n node.cases.push(msgNode);\r\n do {\r\n const msg = parseMessage(tokenizer);\r\n if (!hasEmptyMessage) {\r\n hasEmptyMessage = msg.items.length === 0;\r\n }\r\n node.cases.push(msg);\r\n } while (context.currentType !== 14 /* EOF */);\r\n if (hasEmptyMessage) {\r\n emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);\r\n }\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseResource(tokenizer) {\r\n const context = tokenizer.context();\r\n const { offset, startLoc } = context;\r\n const msgNode = parseMessage(tokenizer);\r\n if (context.currentType === 14 /* EOF */) {\r\n return msgNode;\r\n }\r\n else {\r\n return parsePlural(tokenizer, offset, startLoc, msgNode);\r\n }\r\n }\r\n function parse(source) {\r\n const tokenizer = createTokenizer(source, assign({}, options));\r\n const context = tokenizer.context();\r\n const node = startNode(0 /* Resource */, context.offset, context.startLoc);\r\n if (location && node.loc) {\r\n node.loc.source = source;\r\n }\r\n node.body = parseResource(tokenizer);\r\n // assert whether achieved to EOF\r\n if (context.currentType !== 14 /* EOF */) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || '');\r\n }\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n return { parse };\r\n}\r\nfunction getTokenCaption(token) {\r\n if (token.type === 14 /* EOF */) {\r\n return 'EOF';\r\n }\r\n const name = (token.value || '').replace(/\\r?\\n/gu, '\\\\n');\r\n return name.length > 10 ? name.slice(0, 9) + '…' : name;\r\n}\n\nfunction createTransformer(ast, options = {} // eslint-disable-line\r\n) {\r\n const _context = {\r\n ast,\r\n helpers: new Set()\r\n };\r\n const context = () => _context;\r\n const helper = (name) => {\r\n _context.helpers.add(name);\r\n return name;\r\n };\r\n return { context, helper };\r\n}\r\nfunction traverseNodes(nodes, transformer) {\r\n for (let i = 0; i < nodes.length; i++) {\r\n traverseNode(nodes[i], transformer);\r\n }\r\n}\r\nfunction traverseNode(node, transformer) {\r\n // TODO: if we need pre-hook of transform, should be implemented to here\r\n switch (node.type) {\r\n case 1 /* Plural */:\r\n traverseNodes(node.cases, transformer);\r\n transformer.helper(\"plural\" /* PLURAL */);\r\n break;\r\n case 2 /* Message */:\r\n traverseNodes(node.items, transformer);\r\n break;\r\n case 6 /* Linked */:\r\n const linked = node;\r\n traverseNode(linked.key, transformer);\r\n transformer.helper(\"linked\" /* LINKED */);\r\n transformer.helper(\"type\" /* TYPE */);\r\n break;\r\n case 5 /* List */:\r\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n transformer.helper(\"list\" /* LIST */);\r\n break;\r\n case 4 /* Named */:\r\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n transformer.helper(\"named\" /* NAMED */);\r\n break;\r\n }\r\n // TODO: if we need post-hook of transform, should be implemented to here\r\n}\r\n// transform AST\r\nfunction transform(ast, options = {} // eslint-disable-line\r\n) {\r\n const transformer = createTransformer(ast);\r\n transformer.helper(\"normalize\" /* NORMALIZE */);\r\n // traverse\r\n ast.body && traverseNode(ast.body, transformer);\r\n // set meta information\r\n const context = transformer.context();\r\n ast.helpers = Array.from(context.helpers);\r\n}\n\nfunction createCodeGenerator(ast, options) {\r\n const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options;\r\n const _context = {\r\n source: ast.loc.source,\r\n filename,\r\n code: '',\r\n column: 1,\r\n line: 1,\r\n offset: 0,\r\n map: undefined,\r\n breakLineCode,\r\n needIndent: _needIndent,\r\n indentLevel: 0\r\n };\r\n const context = () => _context;\r\n function push(code, node) {\r\n _context.code += code;\r\n }\r\n function _newline(n, withBreakLine = true) {\r\n const _breakLineCode = withBreakLine ? breakLineCode : '';\r\n push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode);\r\n }\r\n function indent(withNewLine = true) {\r\n const level = ++_context.indentLevel;\r\n withNewLine && _newline(level);\r\n }\r\n function deindent(withNewLine = true) {\r\n const level = --_context.indentLevel;\r\n withNewLine && _newline(level);\r\n }\r\n function newline() {\r\n _newline(_context.indentLevel);\r\n }\r\n const helper = (key) => `_${key}`;\r\n const needIndent = () => _context.needIndent;\r\n return {\r\n context,\r\n push,\r\n indent,\r\n deindent,\r\n newline,\r\n helper,\r\n needIndent\r\n };\r\n}\r\nfunction generateLinkedNode(generator, node) {\r\n const { helper } = generator;\r\n generator.push(`${helper(\"linked\" /* LINKED */)}(`);\r\n generateNode(generator, node.key);\r\n if (node.modifier) {\r\n generator.push(`, `);\r\n generateNode(generator, node.modifier);\r\n generator.push(`, _type`);\r\n }\r\n else {\r\n generator.push(`, undefined, _type`);\r\n }\r\n generator.push(`)`);\r\n}\r\nfunction generateMessageNode(generator, node) {\r\n const { helper, needIndent } = generator;\r\n generator.push(`${helper(\"normalize\" /* NORMALIZE */)}([`);\r\n generator.indent(needIndent());\r\n const length = node.items.length;\r\n for (let i = 0; i < length; i++) {\r\n generateNode(generator, node.items[i]);\r\n if (i === length - 1) {\r\n break;\r\n }\r\n generator.push(', ');\r\n }\r\n generator.deindent(needIndent());\r\n generator.push('])');\r\n}\r\nfunction generatePluralNode(generator, node) {\r\n const { helper, needIndent } = generator;\r\n if (node.cases.length > 1) {\r\n generator.push(`${helper(\"plural\" /* PLURAL */)}([`);\r\n generator.indent(needIndent());\r\n const length = node.cases.length;\r\n for (let i = 0; i < length; i++) {\r\n generateNode(generator, node.cases[i]);\r\n if (i === length - 1) {\r\n break;\r\n }\r\n generator.push(', ');\r\n }\r\n generator.deindent(needIndent());\r\n generator.push(`])`);\r\n }\r\n}\r\nfunction generateResource(generator, node) {\r\n if (node.body) {\r\n generateNode(generator, node.body);\r\n }\r\n else {\r\n generator.push('null');\r\n }\r\n}\r\nfunction generateNode(generator, node) {\r\n const { helper } = generator;\r\n switch (node.type) {\r\n case 0 /* Resource */:\r\n generateResource(generator, node);\r\n break;\r\n case 1 /* Plural */:\r\n generatePluralNode(generator, node);\r\n break;\r\n case 2 /* Message */:\r\n generateMessageNode(generator, node);\r\n break;\r\n case 6 /* Linked */:\r\n generateLinkedNode(generator, node);\r\n break;\r\n case 8 /* LinkedModifier */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 7 /* LinkedKey */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 5 /* List */:\r\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"list\" /* LIST */)}(${node.index}))`, node);\r\n break;\r\n case 4 /* Named */:\r\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"named\" /* NAMED */)}(${JSON.stringify(node.key)}))`, node);\r\n break;\r\n case 9 /* Literal */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 3 /* Text */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n default:\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n throw new Error(`unhandled codegen node type: ${node.type}`);\r\n }\r\n }\r\n}\r\n// generate code from AST\r\nconst generate = (ast, options = {} // eslint-disable-line\r\n) => {\r\n const mode = isString(options.mode) ? options.mode : 'normal';\r\n const filename = isString(options.filename)\r\n ? options.filename\r\n : 'message.intl';\r\n const sourceMap = !!options.sourceMap;\r\n // prettier-ignore\r\n const breakLineCode = options.breakLineCode != null\r\n ? options.breakLineCode\r\n : mode === 'arrow'\r\n ? ';'\r\n : '\\n';\r\n const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow';\r\n const helpers = ast.helpers || [];\r\n const generator = createCodeGenerator(ast, {\r\n mode,\r\n filename,\r\n sourceMap,\r\n breakLineCode,\r\n needIndent\r\n });\r\n generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`);\r\n generator.indent(needIndent);\r\n if (helpers.length > 0) {\r\n generator.push(`const { ${helpers.map(s => `${s}: _${s}`).join(', ')} } = ctx`);\r\n generator.newline();\r\n }\r\n generator.push(`return `);\r\n generateNode(generator, ast);\r\n generator.deindent(needIndent);\r\n generator.push(`}`);\r\n const { code, map } = generator.context();\r\n return {\r\n ast,\r\n code,\r\n map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any\r\n };\r\n};\n\nfunction baseCompile(source, options = {}) {\r\n const assignedOptions = assign({}, options);\r\n // parse source codes\r\n const parser = createParser(assignedOptions);\r\n const ast = parser.parse(source);\r\n // transform ASTs\r\n transform(ast, assignedOptions);\r\n // generate javascript codes\r\n return generate(ast, assignedOptions);\r\n}\n\nexport { CompileErrorCodes, ERROR_DOMAIN, LocationStub, baseCompile, createCompileError, createLocation, createParser, createPosition, defaultOnError, errorMessages };\n","/*!\n * devtools-if v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst IntlifyDevToolsHooks = {\r\n I18nInit: 'i18n:init',\r\n FunctionTranslate: 'function:translate'\r\n};\n\nexport { IntlifyDevToolsHooks };\n","/*!\n * core-base v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { isObject, isString, isFunction, isNumber, isPlainObject, toDisplayString, isArray, format, isBoolean, assign, isRegExp, warn, escapeHtml, inBrowser, mark, measure, isEmptyObject, generateCodeFrame, generateFormatCacheKey, isDate, getGlobalThis } from '@intlify/shared';\nimport { defaultOnError, baseCompile, CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\nexport { CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\nimport { IntlifyDevToolsHooks } from '@intlify/devtools-if';\n\nconst pathStateMachine = [];\r\npathStateMachine[0 /* BEFORE_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [0 /* BEFORE_PATH */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[1 /* IN_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[2 /* BEFORE_IDENT */] = {\r\n [\"w\" /* WORKSPACE */]: [2 /* BEFORE_IDENT */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */]\r\n};\r\npathStateMachine[3 /* IN_IDENT */] = {\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */, 1 /* PUSH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */, 1 /* PUSH */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */, 1 /* PUSH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */, 1 /* PUSH */]\r\n};\r\npathStateMachine[4 /* IN_SUB_PATH */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */],\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [\r\n 4 /* IN_SUB_PATH */,\r\n 2 /* INC_SUB_PATH_DEPTH */\r\n ],\r\n [\"]\" /* RIGHT_BRACKET */]: [1 /* IN_PATH */, 3 /* PUSH_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */]\r\n};\r\npathStateMachine[5 /* IN_SINGLE_QUOTE */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */]\r\n};\r\npathStateMachine[6 /* IN_DOUBLE_QUOTE */] = {\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */]\r\n};\r\n/**\r\n * Check if an expression is a literal value.\r\n */\r\nconst literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\r\nfunction isLiteral(exp) {\r\n return literalValueRE.test(exp);\r\n}\r\n/**\r\n * Strip quotes from a string\r\n */\r\nfunction stripQuotes(str) {\r\n const a = str.charCodeAt(0);\r\n const b = str.charCodeAt(str.length - 1);\r\n return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;\r\n}\r\n/**\r\n * Determine the type of a character in a keypath.\r\n */\r\nfunction getPathCharType(ch) {\r\n if (ch === undefined || ch === null) {\r\n return \"o\" /* END_OF_FAIL */;\r\n }\r\n const code = ch.charCodeAt(0);\r\n switch (code) {\r\n case 0x5b: // [\r\n case 0x5d: // ]\r\n case 0x2e: // .\r\n case 0x22: // \"\r\n case 0x27: // '\r\n return ch;\r\n case 0x5f: // _\r\n case 0x24: // $\r\n case 0x2d: // -\r\n return \"i\" /* IDENT */;\r\n case 0x09: // Tab (HT)\r\n case 0x0a: // Newline (LF)\r\n case 0x0d: // Return (CR)\r\n case 0xa0: // No-break space (NBSP)\r\n case 0xfeff: // Byte Order Mark (BOM)\r\n case 0x2028: // Line Separator (LS)\r\n case 0x2029: // Paragraph Separator (PS)\r\n return \"w\" /* WORKSPACE */;\r\n }\r\n return \"i\" /* IDENT */;\r\n}\r\n/**\r\n * Format a subPath, return its plain form if it is\r\n * a literal string or number. Otherwise prepend the\r\n * dynamic indicator (*).\r\n */\r\nfunction formatSubPath(path) {\r\n const trimmed = path.trim();\r\n // invalid leading 0\r\n if (path.charAt(0) === '0' && isNaN(parseInt(path))) {\r\n return false;\r\n }\r\n return isLiteral(trimmed)\r\n ? stripQuotes(trimmed)\r\n : \"*\" /* ASTARISK */ + trimmed;\r\n}\r\n/**\r\n * Parse a string path into an array of segments\r\n */\r\nfunction parse(path) {\r\n const keys = [];\r\n let index = -1;\r\n let mode = 0 /* BEFORE_PATH */;\r\n let subPathDepth = 0;\r\n let c;\r\n let key; // eslint-disable-line\r\n let newChar;\r\n let type;\r\n let transition;\r\n let action;\r\n let typeMap;\r\n const actions = [];\r\n actions[0 /* APPEND */] = () => {\r\n if (key === undefined) {\r\n key = newChar;\r\n }\r\n else {\r\n key += newChar;\r\n }\r\n };\r\n actions[1 /* PUSH */] = () => {\r\n if (key !== undefined) {\r\n keys.push(key);\r\n key = undefined;\r\n }\r\n };\r\n actions[2 /* INC_SUB_PATH_DEPTH */] = () => {\r\n actions[0 /* APPEND */]();\r\n subPathDepth++;\r\n };\r\n actions[3 /* PUSH_SUB_PATH */] = () => {\r\n if (subPathDepth > 0) {\r\n subPathDepth--;\r\n mode = 4 /* IN_SUB_PATH */;\r\n actions[0 /* APPEND */]();\r\n }\r\n else {\r\n subPathDepth = 0;\r\n if (key === undefined) {\r\n return false;\r\n }\r\n key = formatSubPath(key);\r\n if (key === false) {\r\n return false;\r\n }\r\n else {\r\n actions[1 /* PUSH */]();\r\n }\r\n }\r\n };\r\n function maybeUnescapeQuote() {\r\n const nextChar = path[index + 1];\r\n if ((mode === 5 /* IN_SINGLE_QUOTE */ &&\r\n nextChar === \"'\" /* SINGLE_QUOTE */) ||\r\n (mode === 6 /* IN_DOUBLE_QUOTE */ &&\r\n nextChar === \"\\\"\" /* DOUBLE_QUOTE */)) {\r\n index++;\r\n newChar = '\\\\' + nextChar;\r\n actions[0 /* APPEND */]();\r\n return true;\r\n }\r\n }\r\n while (mode !== null) {\r\n index++;\r\n c = path[index];\r\n if (c === '\\\\' && maybeUnescapeQuote()) {\r\n continue;\r\n }\r\n type = getPathCharType(c);\r\n typeMap = pathStateMachine[mode];\r\n transition = typeMap[type] || typeMap[\"l\" /* ELSE */] || 8 /* ERROR */;\r\n // check parse error\r\n if (transition === 8 /* ERROR */) {\r\n return;\r\n }\r\n mode = transition[0];\r\n if (transition[1] !== undefined) {\r\n action = actions[transition[1]];\r\n if (action) {\r\n newChar = c;\r\n if (action() === false) {\r\n return;\r\n }\r\n }\r\n }\r\n // check parse finish\r\n if (mode === 7 /* AFTER_PATH */) {\r\n return keys;\r\n }\r\n }\r\n}\r\n// path token cache\r\nconst cache = new Map();\r\n/**\r\n * key-value message resolver\r\n *\r\n * @remarks\r\n * Resolves messages with the key-value structure. Note that messages with a hierarchical structure such as objects cannot be resolved\r\n *\r\n * @param obj - A target object to be resolved with path\r\n * @param path - A {@link Path | path} to resolve the value of message\r\n *\r\n * @returns A resolved {@link PathValue | path value}\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction resolveWithKeyValue(obj, path) {\r\n return isObject(obj) ? obj[path] : null;\r\n}\r\n/**\r\n * message resolver\r\n *\r\n * @remarks\r\n * Resolves messages. messages with a hierarchical structure such as objects can be resolved. This resolver is used in VueI18n as default.\r\n *\r\n * @param obj - A target object to be resolved with path\r\n * @param path - A {@link Path | path} to resolve the value of message\r\n *\r\n * @returns A resolved {@link PathValue | path value}\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction resolveValue(obj, path) {\r\n // check object\r\n if (!isObject(obj)) {\r\n return null;\r\n }\r\n // parse path\r\n let hit = cache.get(path);\r\n if (!hit) {\r\n hit = parse(path);\r\n if (hit) {\r\n cache.set(path, hit);\r\n }\r\n }\r\n // check hit\r\n if (!hit) {\r\n return null;\r\n }\r\n // resolve path value\r\n const len = hit.length;\r\n let last = obj;\r\n let i = 0;\r\n while (i < len) {\r\n const val = last[hit[i]];\r\n if (val === undefined) {\r\n return null;\r\n }\r\n last = val;\r\n i++;\r\n }\r\n return last;\r\n}\n\nconst DEFAULT_MODIFIER = (str) => str;\r\nconst DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line\r\nconst DEFAULT_MESSAGE_DATA_TYPE = 'text';\r\nconst DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : values.join('');\r\nconst DEFAULT_INTERPOLATE = toDisplayString;\r\nfunction pluralDefault(choice, choicesLength) {\r\n choice = Math.abs(choice);\r\n if (choicesLength === 2) {\r\n // prettier-ignore\r\n return choice\r\n ? choice > 1\r\n ? 1\r\n : 0\r\n : 1;\r\n }\r\n return choice ? Math.min(choice, 2) : 0;\r\n}\r\nfunction getPluralIndex(options) {\r\n // prettier-ignore\r\n const index = isNumber(options.pluralIndex)\r\n ? options.pluralIndex\r\n : -1;\r\n // prettier-ignore\r\n return options.named && (isNumber(options.named.count) || isNumber(options.named.n))\r\n ? isNumber(options.named.count)\r\n ? options.named.count\r\n : isNumber(options.named.n)\r\n ? options.named.n\r\n : index\r\n : index;\r\n}\r\nfunction normalizeNamed(pluralIndex, props) {\r\n if (!props.count) {\r\n props.count = pluralIndex;\r\n }\r\n if (!props.n) {\r\n props.n = pluralIndex;\r\n }\r\n}\r\nfunction createMessageContext(options = {}) {\r\n const locale = options.locale;\r\n const pluralIndex = getPluralIndex(options);\r\n const pluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? options.pluralRules[locale]\r\n : pluralDefault;\r\n const orgPluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? pluralDefault\r\n : undefined;\r\n const plural = (messages) => {\r\n return messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];\r\n };\r\n const _list = options.list || [];\r\n const list = (index) => _list[index];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _named = options.named || {};\r\n isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named);\r\n const named = (key) => _named[key];\r\n function message(key) {\r\n // prettier-ignore\r\n const msg = isFunction(options.messages)\r\n ? options.messages(key)\r\n : isObject(options.messages)\r\n ? options.messages[key]\r\n : false;\r\n return !msg\r\n ? options.parent\r\n ? options.parent.message(key) // resolve from parent messages\r\n : DEFAULT_MESSAGE\r\n : msg;\r\n }\r\n const _modifier = (name) => options.modifiers\r\n ? options.modifiers[name]\r\n : DEFAULT_MODIFIER;\r\n const normalize = isPlainObject(options.processor) && isFunction(options.processor.normalize)\r\n ? options.processor.normalize\r\n : DEFAULT_NORMALIZE;\r\n const interpolate = isPlainObject(options.processor) &&\r\n isFunction(options.processor.interpolate)\r\n ? options.processor.interpolate\r\n : DEFAULT_INTERPOLATE;\r\n const type = isPlainObject(options.processor) && isString(options.processor.type)\r\n ? options.processor.type\r\n : DEFAULT_MESSAGE_DATA_TYPE;\r\n const linked = (key, ...args) => {\r\n const [arg1, arg2] = args;\r\n let type = 'text';\r\n let modifier = '';\r\n if (args.length === 1) {\r\n if (isObject(arg1)) {\r\n modifier = arg1.modifier || modifier;\r\n type = arg1.type || type;\r\n }\r\n else if (isString(arg1)) {\r\n modifier = arg1 || modifier;\r\n }\r\n }\r\n else if (args.length === 2) {\r\n if (isString(arg1)) {\r\n modifier = arg1 || modifier;\r\n }\r\n if (isString(arg2)) {\r\n type = arg2 || type;\r\n }\r\n }\r\n let msg = message(key)(ctx);\r\n // The message in vnode resolved with linked are returned as an array by processor.nomalize\r\n if (type === 'vnode' && isArray(msg) && modifier) {\r\n msg = msg[0];\r\n }\r\n return modifier ? _modifier(modifier)(msg, type) : msg;\r\n };\r\n const ctx = {\r\n [\"list\" /* LIST */]: list,\r\n [\"named\" /* NAMED */]: named,\r\n [\"plural\" /* PLURAL */]: plural,\r\n [\"linked\" /* LINKED */]: linked,\r\n [\"message\" /* MESSAGE */]: message,\r\n [\"type\" /* TYPE */]: type,\r\n [\"interpolate\" /* INTERPOLATE */]: interpolate,\r\n [\"normalize\" /* NORMALIZE */]: normalize\r\n };\r\n return ctx;\r\n}\n\nlet devtools = null;\r\nfunction setDevToolsHook(hook) {\r\n devtools = hook;\r\n}\r\nfunction getDevToolsHook() {\r\n return devtools;\r\n}\r\nfunction initI18nDevTools(i18n, version, meta) {\r\n // TODO: queue if devtools is undefined\r\n devtools &&\r\n devtools.emit(IntlifyDevToolsHooks.I18nInit, {\r\n timestamp: Date.now(),\r\n i18n,\r\n version,\r\n meta\r\n });\r\n}\r\nconst translateDevTools = /* #__PURE__*/ createDevToolsHook(IntlifyDevToolsHooks.FunctionTranslate);\r\nfunction createDevToolsHook(hook) {\r\n return (payloads) => devtools && devtools.emit(hook, payloads);\r\n}\n\nconst CoreWarnCodes = {\r\n NOT_FOUND_KEY: 1,\r\n FALLBACK_TO_TRANSLATE: 2,\r\n CANNOT_FORMAT_NUMBER: 3,\r\n FALLBACK_TO_NUMBER_FORMAT: 4,\r\n CANNOT_FORMAT_DATE: 5,\r\n FALLBACK_TO_DATE_FORMAT: 6,\r\n __EXTEND_POINT__: 7\r\n};\r\n/** @internal */\r\nconst warnMessages = {\r\n [CoreWarnCodes.NOT_FOUND_KEY]: `Not found '{key}' key in '{locale}' locale messages.`,\r\n [CoreWarnCodes.FALLBACK_TO_TRANSLATE]: `Fall back to translate '{key}' key with '{target}' locale.`,\r\n [CoreWarnCodes.CANNOT_FORMAT_NUMBER]: `Cannot format a number value due to not supported Intl.NumberFormat.`,\r\n [CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT]: `Fall back to number format '{key}' key with '{target}' locale.`,\r\n [CoreWarnCodes.CANNOT_FORMAT_DATE]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`,\r\n [CoreWarnCodes.FALLBACK_TO_DATE_FORMAT]: `Fall back to datetime format '{key}' key with '{target}' locale.`\r\n};\r\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[code], ...args);\r\n}\n\n/**\r\n * Fallback with simple implemenation\r\n *\r\n * @remarks\r\n * A fallback locale function implemented with a simple fallback algorithm.\r\n *\r\n * Basically, it returns the value as specified in the `fallbackLocale` props, and is processed with the fallback inside intlify.\r\n *\r\n * @param ctx - A {@link CoreContext | context}\r\n * @param fallback - A {@link FallbackLocale | fallback locale}\r\n * @param start - A starting {@link Locale | locale}\r\n *\r\n * @returns Fallback locales\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction fallbackWithSimple(ctx, fallback, start // eslint-disable-line @typescript-eslint/no-unused-vars\r\n) {\r\n // prettier-ignore\r\n return [...new Set([\r\n start,\r\n ...(isArray(fallback)\r\n ? fallback\r\n : isObject(fallback)\r\n ? Object.keys(fallback)\r\n : isString(fallback)\r\n ? [fallback]\r\n : [start])\r\n ])];\r\n}\r\n/**\r\n * Fallback with locale chain\r\n *\r\n * @remarks\r\n * A fallback locale function implemented with a fallback chain algorithm. It's used in VueI18n as default.\r\n *\r\n * @param ctx - A {@link CoreContext | context}\r\n * @param fallback - A {@link FallbackLocale | fallback locale}\r\n * @param start - A starting {@link Locale | locale}\r\n *\r\n * @returns Fallback locales\r\n *\r\n * @VueI18nSee [Fallbacking](../guide/essentials/fallback)\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction fallbackWithLocaleChain(ctx, fallback, start) {\r\n const startLocale = isString(start) ? start : DEFAULT_LOCALE;\r\n const context = ctx;\r\n if (!context.__localeChainCache) {\r\n context.__localeChainCache = new Map();\r\n }\r\n let chain = context.__localeChainCache.get(startLocale);\r\n if (!chain) {\r\n chain = [];\r\n // first block defined by start\r\n let block = [start];\r\n // while any intervening block found\r\n while (isArray(block)) {\r\n block = appendBlockToChain(chain, block, fallback);\r\n }\r\n // prettier-ignore\r\n // last block defined by default\r\n const defaults = isArray(fallback) || !isPlainObject(fallback)\r\n ? fallback\r\n : fallback['default']\r\n ? fallback['default']\r\n : null;\r\n // convert defaults to array\r\n block = isString(defaults) ? [defaults] : defaults;\r\n if (isArray(block)) {\r\n appendBlockToChain(chain, block, false);\r\n }\r\n context.__localeChainCache.set(startLocale, chain);\r\n }\r\n return chain;\r\n}\r\nfunction appendBlockToChain(chain, block, blocks) {\r\n let follow = true;\r\n for (let i = 0; i < block.length && isBoolean(follow); i++) {\r\n const locale = block[i];\r\n if (isString(locale)) {\r\n follow = appendLocaleToChain(chain, block[i], blocks);\r\n }\r\n }\r\n return follow;\r\n}\r\nfunction appendLocaleToChain(chain, locale, blocks) {\r\n let follow;\r\n const tokens = locale.split('-');\r\n do {\r\n const target = tokens.join('-');\r\n follow = appendItemToChain(chain, target, blocks);\r\n tokens.splice(-1, 1);\r\n } while (tokens.length && follow === true);\r\n return follow;\r\n}\r\nfunction appendItemToChain(chain, target, blocks) {\r\n let follow = false;\r\n if (!chain.includes(target)) {\r\n follow = true;\r\n if (target) {\r\n follow = target[target.length - 1] !== '!';\r\n const locale = target.replace(/!/g, '');\r\n chain.push(locale);\r\n if ((isArray(blocks) || isPlainObject(blocks)) &&\r\n blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n follow = blocks[locale];\r\n }\r\n }\r\n }\r\n return follow;\r\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Intlify core-base version\r\n * @internal\r\n */\r\nconst VERSION = '9.2.2';\r\nconst NOT_REOSLVED = -1;\r\nconst DEFAULT_LOCALE = 'en-US';\r\nconst MISSING_RESOLVE_VALUE = '';\r\nconst capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`;\r\nfunction getDefaultLinkedModifiers() {\r\n return {\r\n upper: (val, type) => {\r\n // prettier-ignore\r\n return type === 'text' && isString(val)\r\n ? val.toUpperCase()\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? val.children.toUpperCase()\r\n : val;\r\n },\r\n lower: (val, type) => {\r\n // prettier-ignore\r\n return type === 'text' && isString(val)\r\n ? val.toLowerCase()\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? val.children.toLowerCase()\r\n : val;\r\n },\r\n capitalize: (val, type) => {\r\n // prettier-ignore\r\n return (type === 'text' && isString(val)\r\n ? capitalize(val)\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? capitalize(val.children)\r\n : val);\r\n }\r\n };\r\n}\r\nlet _compiler;\r\nfunction registerMessageCompiler(compiler) {\r\n _compiler = compiler;\r\n}\r\nlet _resolver;\r\n/**\r\n * Register the message resolver\r\n *\r\n * @param resolver - A {@link MessageResolver} function\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction registerMessageResolver(resolver) {\r\n _resolver = resolver;\r\n}\r\nlet _fallbacker;\r\n/**\r\n * Register the locale fallbacker\r\n *\r\n * @param fallbacker - A {@link LocaleFallbacker} function\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction registerLocaleFallbacker(fallbacker) {\r\n _fallbacker = fallbacker;\r\n}\r\n// Additional Meta for Intlify DevTools\r\nlet _additionalMeta = null;\r\nconst setAdditionalMeta = (meta) => {\r\n _additionalMeta = meta;\r\n};\r\nconst getAdditionalMeta = () => _additionalMeta;\r\nlet _fallbackContext = null;\r\nconst setFallbackContext = (context) => {\r\n _fallbackContext = context;\r\n};\r\nconst getFallbackContext = () => _fallbackContext;\r\n// ID for CoreContext\r\nlet _cid = 0;\r\nfunction createCoreContext(options = {}) {\r\n // setup options\r\n const version = isString(options.version) ? options.version : VERSION;\r\n const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\r\n const fallbackLocale = isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n isString(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : locale;\r\n const messages = isPlainObject(options.messages)\r\n ? options.messages\r\n : { [locale]: {} };\r\n const datetimeFormats = isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [locale]: {} }\r\n ;\r\n const numberFormats = isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [locale]: {} }\r\n ;\r\n const modifiers = assign({}, options.modifiers || {}, getDefaultLinkedModifiers());\r\n const pluralRules = options.pluralRules || {};\r\n const missing = isFunction(options.missing) ? options.missing : null;\r\n const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n const fallbackFormat = !!options.fallbackFormat;\r\n const unresolving = !!options.unresolving;\r\n const postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n const processor = isPlainObject(options.processor) ? options.processor : null;\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n const escapeParameter = !!options.escapeParameter;\r\n const messageCompiler = isFunction(options.messageCompiler)\r\n ? options.messageCompiler\r\n : _compiler;\r\n const messageResolver = isFunction(options.messageResolver)\r\n ? options.messageResolver\r\n : _resolver || resolveWithKeyValue;\r\n const localeFallbacker = isFunction(options.localeFallbacker)\r\n ? options.localeFallbacker\r\n : _fallbacker || fallbackWithSimple;\r\n const fallbackContext = isObject(options.fallbackContext)\r\n ? options.fallbackContext\r\n : undefined;\r\n const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;\r\n // setup internal options\r\n const internalOptions = options;\r\n const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters)\r\n ? internalOptions.__datetimeFormatters\r\n : new Map()\r\n ;\r\n const __numberFormatters = isObject(internalOptions.__numberFormatters)\r\n ? internalOptions.__numberFormatters\r\n : new Map()\r\n ;\r\n const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {};\r\n _cid++;\r\n const context = {\r\n version,\r\n cid: _cid,\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n modifiers,\r\n pluralRules,\r\n missing,\r\n missingWarn,\r\n fallbackWarn,\r\n fallbackFormat,\r\n unresolving,\r\n postTranslation,\r\n processor,\r\n warnHtmlMessage,\r\n escapeParameter,\r\n messageCompiler,\r\n messageResolver,\r\n localeFallbacker,\r\n fallbackContext,\r\n onWarn,\r\n __meta\r\n };\r\n {\r\n context.datetimeFormats = datetimeFormats;\r\n context.numberFormats = numberFormats;\r\n context.__datetimeFormatters = __datetimeFormatters;\r\n context.__numberFormatters = __numberFormatters;\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.__v_emitter =\r\n internalOptions.__v_emitter != null\r\n ? internalOptions.__v_emitter\r\n : undefined;\r\n }\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n initI18nDevTools(context, version, __meta);\r\n }\r\n return context;\r\n}\r\n/** @internal */\r\nfunction isTranslateFallbackWarn(fallback, key) {\r\n return fallback instanceof RegExp ? fallback.test(key) : fallback;\r\n}\r\n/** @internal */\r\nfunction isTranslateMissingWarn(missing, key) {\r\n return missing instanceof RegExp ? missing.test(key) : missing;\r\n}\r\n/** @internal */\r\nfunction handleMissing(context, key, locale, missingWarn, type) {\r\n const { missing, onWarn } = context;\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"missing\" /* MISSING */, {\r\n locale,\r\n key,\r\n type,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n if (missing !== null) {\r\n const ret = missing(context, locale, key, type);\r\n return isString(ret) ? ret : key;\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production') && isTranslateMissingWarn(missingWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.NOT_FOUND_KEY, { key, locale }));\r\n }\r\n return key;\r\n }\r\n}\r\n/** @internal */\r\nfunction updateFallbackLocale(ctx, locale, fallback) {\r\n const context = ctx;\r\n context.__localeChainCache = new Map();\r\n ctx.localeFallbacker(ctx, fallback, locale);\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\r\nconst WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\r\nfunction checkHtmlMessage(source, options) {\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n if (warnHtmlMessage && RE_HTML_TAG.test(source)) {\r\n warn(format(WARN_MESSAGE, { source }));\r\n }\r\n}\r\nconst defaultOnCacheKey = (source) => source;\r\nlet compileCache = Object.create(null);\r\nfunction clearCompileCache() {\r\n compileCache = Object.create(null);\r\n}\r\nfunction compileToFunction(source, options = {}) {\r\n {\r\n // check HTML message\r\n (process.env.NODE_ENV !== 'production') && checkHtmlMessage(source, options);\r\n // check caches\r\n const onCacheKey = options.onCacheKey || defaultOnCacheKey;\r\n const key = onCacheKey(source);\r\n const cached = compileCache[key];\r\n if (cached) {\r\n return cached;\r\n }\r\n // compile error detecting\r\n let occurred = false;\r\n const onError = options.onError || defaultOnError;\r\n options.onError = (err) => {\r\n occurred = true;\r\n onError(err);\r\n };\r\n // compile\r\n const { code } = baseCompile(source, options);\r\n // evaluate function\r\n const msg = new Function(`return ${code}`)();\r\n // if occurred compile error, don't cache\r\n return !occurred ? (compileCache[key] = msg) : msg;\r\n }\r\n}\n\nlet code = CompileErrorCodes.__EXTEND_POINT__;\r\nconst inc = () => ++code;\r\nconst CoreErrorCodes = {\r\n INVALID_ARGUMENT: code,\r\n INVALID_DATE_ARGUMENT: inc(),\r\n INVALID_ISO_DATE_ARGUMENT: inc(),\r\n __EXTEND_POINT__: inc() // 18\r\n};\r\nfunction createCoreError(code) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages } : undefined);\r\n}\r\n/** @internal */\r\nconst errorMessages = {\r\n [CoreErrorCodes.INVALID_ARGUMENT]: 'Invalid arguments',\r\n [CoreErrorCodes.INVALID_DATE_ARGUMENT]: 'The date provided is an invalid Date object.' +\r\n 'Make sure your Date represents a valid date.',\r\n [CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT]: 'The argument provided is not a valid ISO date string'\r\n};\n\nconst NOOP_MESSAGE_FUNCTION = () => '';\r\nconst isMessageFunction = (val) => isFunction(val);\r\n// implementation of `translate` function\r\nfunction translate(context, ...args) {\r\n const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context;\r\n const [key, options] = parseTranslateArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const escapeParameter = isBoolean(options.escapeParameter)\r\n ? options.escapeParameter\r\n : context.escapeParameter;\r\n const resolvedMessage = !!options.resolvedMessage;\r\n // prettier-ignore\r\n const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) // default by function option\r\n ? !isBoolean(options.default)\r\n ? options.default\r\n : (!messageCompiler ? () => key : key)\r\n : fallbackFormat // default by `fallbackFormat` option\r\n ? (!messageCompiler ? () => key : key)\r\n : '';\r\n const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== '';\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n // escape params\r\n escapeParameter && escapeParams(options);\r\n // resolve message format\r\n // eslint-disable-next-line prefer-const\r\n let [formatScope, targetLocale, message] = !resolvedMessage\r\n ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn)\r\n : [\r\n key,\r\n locale,\r\n messages[locale] || {}\r\n ];\r\n // NOTE:\r\n // Fix to work around `ssrTransfrom` bug in Vite.\r\n // https://github.com/vitejs/vite/issues/4306\r\n // To get around this, use temporary variables.\r\n // https://github.com/nuxt/framework/issues/1461#issuecomment-954606243\r\n let format = formatScope;\r\n // if you use default message, set it as message format!\r\n let cacheBaseKey = key;\r\n if (!resolvedMessage &&\r\n !(isString(format) || isMessageFunction(format))) {\r\n if (enableDefaultMsg) {\r\n format = defaultMsgOrKey;\r\n cacheBaseKey = format;\r\n }\r\n }\r\n // checking message format and target locale\r\n if (!resolvedMessage &&\r\n (!(isString(format) || isMessageFunction(format)) ||\r\n !isString(targetLocale))) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && isString(format) && context.messageCompiler == null) {\r\n warn(`The message format compilation is not supported in this build. ` +\r\n `Because message compiler isn't included. ` +\r\n `You need to pre-compilation all message format. ` +\r\n `So translate function return '${key}'.`);\r\n return key;\r\n }\r\n // setup compile error detecting\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n // compile message format\r\n const msg = !isMessageFunction(format)\r\n ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector)\r\n : format;\r\n // if occurred compile error, return the message format\r\n if (occurred) {\r\n return format;\r\n }\r\n // evaluate message with context\r\n const ctxOptions = getMessageContextOptions(context, targetLocale, message, options);\r\n const msgContext = createMessageContext(ctxOptions);\r\n const messaged = evaluateMessage(context, msg, msgContext);\r\n // if use post translation option, proceed it with handler\r\n const ret = postTranslation\r\n ? postTranslation(messaged, key)\r\n : messaged;\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n // prettier-ignore\r\n const payloads = {\r\n timestamp: Date.now(),\r\n key: isString(key)\r\n ? key\r\n : isMessageFunction(format)\r\n ? format.key\r\n : '',\r\n locale: targetLocale || (isMessageFunction(format)\r\n ? format.locale\r\n : ''),\r\n format: isString(format)\r\n ? format\r\n : isMessageFunction(format)\r\n ? format.source\r\n : '',\r\n message: ret\r\n };\r\n payloads.meta = assign({}, context.__meta, getAdditionalMeta() || {});\r\n translateDevTools(payloads);\r\n }\r\n return ret;\r\n}\r\nfunction escapeParams(options) {\r\n if (isArray(options.list)) {\r\n options.list = options.list.map(item => isString(item) ? escapeHtml(item) : item);\r\n }\r\n else if (isObject(options.named)) {\r\n Object.keys(options.named).forEach(key => {\r\n if (isString(options.named[key])) {\r\n options.named[key] = escapeHtml(options.named[key]);\r\n }\r\n });\r\n }\r\n}\r\nfunction resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) {\r\n const { messages, onWarn, messageResolver: resolveValue, localeFallbacker } = context;\r\n const locales = localeFallbacker(context, fallbackLocale, locale); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n let message = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'translate';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_TRANSLATE, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n message =\r\n messages[targetLocale] || {};\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-resolve-start';\r\n endTag = 'intlify-message-resolve-end';\r\n mark && mark(startTag);\r\n }\r\n if ((format = resolveValue(message, key)) === null) {\r\n // if null, resolve with object key path\r\n format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start && format) {\r\n emitter.emit(\"message-resolve\" /* MESSAGE_RESOLVE */, {\r\n type: \"message-resolve\" /* MESSAGE_RESOLVE */,\r\n key,\r\n message: format,\r\n time: end - start,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message resolve', startTag, endTag);\r\n }\r\n }\r\n if (isString(format) || isFunction(format))\r\n break;\r\n const missingRet = handleMissing(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n key, targetLocale, missingWarn, type);\r\n if (missingRet !== key) {\r\n format = missingRet;\r\n }\r\n from = to;\r\n }\r\n return [format, targetLocale, message];\r\n}\r\nfunction compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector) {\r\n const { messageCompiler, warnHtmlMessage } = context;\r\n if (isMessageFunction(format)) {\r\n const msg = format;\r\n msg.locale = msg.locale || targetLocale;\r\n msg.key = msg.key || key;\r\n return msg;\r\n }\r\n if (messageCompiler == null) {\r\n const msg = (() => format);\r\n msg.locale = targetLocale;\r\n msg.key = key;\r\n return msg;\r\n }\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-compilation-start';\r\n endTag = 'intlify-message-compilation-end';\r\n mark && mark(startTag);\r\n }\r\n const msg = messageCompiler(format, getCompileOptions(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, errorDetector));\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-compilation\" /* MESSAGE_COMPILATION */, {\r\n type: \"message-compilation\" /* MESSAGE_COMPILATION */,\r\n message: format,\r\n time: end - start,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message compilation', startTag, endTag);\r\n }\r\n }\r\n msg.locale = targetLocale;\r\n msg.key = key;\r\n msg.source = format;\r\n return msg;\r\n}\r\nfunction evaluateMessage(context, msg, msgCtx) {\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-evaluation-start';\r\n endTag = 'intlify-message-evaluation-end';\r\n mark && mark(startTag);\r\n }\r\n const messaged = msg(msgCtx);\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-evaluation\" /* MESSAGE_EVALUATION */, {\r\n type: \"message-evaluation\" /* MESSAGE_EVALUATION */,\r\n value: messaged,\r\n time: end - start,\r\n groupId: `${'translate'}:${msg.key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message evaluation', startTag, endTag);\r\n }\r\n }\r\n return messaged;\r\n}\r\n/** @internal */\r\nfunction parseTranslateArgs(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = {};\r\n if (!isString(arg1) && !isNumber(arg1) && !isMessageFunction(arg1)) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n // prettier-ignore\r\n const key = isNumber(arg1)\r\n ? String(arg1)\r\n : isMessageFunction(arg1)\r\n ? arg1\r\n : arg1;\r\n if (isNumber(arg2)) {\r\n options.plural = arg2;\r\n }\r\n else if (isString(arg2)) {\r\n options.default = arg2;\r\n }\r\n else if (isPlainObject(arg2) && !isEmptyObject(arg2)) {\r\n options.named = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n options.list = arg2;\r\n }\r\n if (isNumber(arg3)) {\r\n options.plural = arg3;\r\n }\r\n else if (isString(arg3)) {\r\n options.default = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n assign(options, arg3);\r\n }\r\n return [key, options];\r\n}\r\nfunction getCompileOptions(context, locale, key, source, warnHtmlMessage, errorDetector) {\r\n return {\r\n warnHtmlMessage,\r\n onError: (err) => {\r\n errorDetector && errorDetector(err);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const message = `Message compilation error: ${err.message}`;\r\n const codeFrame = err.location &&\r\n generateCodeFrame(source, err.location.start.offset, err.location.end.offset);\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"compile-error\" /* COMPILE_ERROR */, {\r\n message: source,\r\n error: err.message,\r\n start: err.location && err.location.start.offset,\r\n end: err.location && err.location.end.offset,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n console.error(codeFrame ? `${message}\\n${codeFrame}` : message);\r\n }\r\n else {\r\n throw err;\r\n }\r\n },\r\n onCacheKey: (source) => generateFormatCacheKey(locale, key, source)\r\n };\r\n}\r\nfunction getMessageContextOptions(context, locale, message, options) {\r\n const { modifiers, pluralRules, messageResolver: resolveValue, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context;\r\n const resolveMessage = (key) => {\r\n let val = resolveValue(message, key);\r\n // fallback to root context\r\n if (val == null && fallbackContext) {\r\n const [, , message] = resolveMessageFormat(fallbackContext, key, locale, fallbackLocale, fallbackWarn, missingWarn);\r\n val = resolveValue(message, key);\r\n }\r\n if (isString(val)) {\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n const msg = compileMessageFormat(context, key, locale, val, key, errorDetector);\r\n return !occurred\r\n ? msg\r\n : NOOP_MESSAGE_FUNCTION;\r\n }\r\n else if (isMessageFunction(val)) {\r\n return val;\r\n }\r\n else {\r\n // TODO: should be implemented warning message\r\n return NOOP_MESSAGE_FUNCTION;\r\n }\r\n };\r\n const ctxOptions = {\r\n locale,\r\n modifiers,\r\n pluralRules,\r\n messages: resolveMessage\r\n };\r\n if (context.processor) {\r\n ctxOptions.processor = context.processor;\r\n }\r\n if (options.list) {\r\n ctxOptions.list = options.list;\r\n }\r\n if (options.named) {\r\n ctxOptions.named = options.named;\r\n }\r\n if (isNumber(options.plural)) {\r\n ctxOptions.pluralIndex = options.plural;\r\n }\r\n return ctxOptions;\r\n}\n\nconst intlDefined = typeof Intl !== 'undefined';\r\nconst Availabilities = {\r\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\r\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\r\n};\n\n// implementation of `datetime` function\r\nfunction datetime(context, ...args) {\r\n const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\r\n const { __datetimeFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.dateTimeFormat) {\r\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_DATE));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseDateTimeArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.DateTimeFormat(locale, overrides).format(value);\r\n }\r\n // resolve format\r\n let datetimeFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'datetime format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n datetimeFormat =\r\n datetimeFormats[targetLocale] || {};\r\n format = datetimeFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __datetimeFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format, overrides));\r\n __datetimeFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nconst DATETIME_FORMAT_OPTIONS_KEYS = [\r\n 'localeMatcher',\r\n 'weekday',\r\n 'era',\r\n 'year',\r\n 'month',\r\n 'day',\r\n 'hour',\r\n 'minute',\r\n 'second',\r\n 'timeZoneName',\r\n 'formatMatcher',\r\n 'hour12',\r\n 'timeZone',\r\n 'dateStyle',\r\n 'timeStyle',\r\n 'calendar',\r\n 'dayPeriod',\r\n 'numberingSystem',\r\n 'hourCycle',\r\n 'fractionalSecondDigits'\r\n];\r\n/** @internal */\r\nfunction parseDateTimeArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n const options = {};\r\n let overrides = {};\r\n let value;\r\n if (isString(arg1)) {\r\n // Only allow ISO strings - other date formats are often supported,\r\n // but may cause different results in different browsers.\r\n const matches = arg1.match(/(\\d{4}-\\d{2}-\\d{2})(T|\\s)?(.*)/);\r\n if (!matches) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\r\n }\r\n // Some browsers can not parse the iso datetime separated by space,\r\n // this is a compromise solution by replace the 'T'/' ' with 'T'\r\n const dateTime = matches[3]\r\n ? matches[3].trim().startsWith('T')\r\n ? `${matches[1].trim()}${matches[3].trim()}`\r\n : `${matches[1].trim()}T${matches[3].trim()}`\r\n : matches[1].trim();\r\n value = new Date(dateTime);\r\n try {\r\n // This will fail if the date is not valid\r\n value.toISOString();\r\n }\r\n catch (e) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\r\n }\r\n }\r\n else if (isDate(arg1)) {\r\n if (isNaN(arg1.getTime())) {\r\n throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT);\r\n }\r\n value = arg1;\r\n }\r\n else if (isNumber(arg1)) {\r\n value = arg1;\r\n }\r\n else {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n Object.keys(arg2).forEach(key => {\r\n if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) {\r\n overrides[key] = arg2[key];\r\n }\r\n else {\r\n options[key] = arg2[key];\r\n }\r\n });\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearDateTimeFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__datetimeFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__datetimeFormatters.delete(id);\r\n }\r\n}\n\n// implementation of `number` function\r\nfunction number(context, ...args) {\r\n const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\r\n const { __numberFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.numberFormat) {\r\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_NUMBER));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseNumberArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.NumberFormat(locale, overrides).format(value);\r\n }\r\n // resolve format\r\n let numberFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'number format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n numberFormat =\r\n numberFormats[targetLocale] || {};\r\n format = numberFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __numberFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.NumberFormat(targetLocale, assign({}, format, overrides));\r\n __numberFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nconst NUMBER_FORMAT_OPTIONS_KEYS = [\r\n 'localeMatcher',\r\n 'style',\r\n 'currency',\r\n 'currencyDisplay',\r\n 'currencySign',\r\n 'useGrouping',\r\n 'minimumIntegerDigits',\r\n 'minimumFractionDigits',\r\n 'maximumFractionDigits',\r\n 'minimumSignificantDigits',\r\n 'maximumSignificantDigits',\r\n 'compactDisplay',\r\n 'notation',\r\n 'signDisplay',\r\n 'unit',\r\n 'unitDisplay',\r\n 'roundingMode',\r\n 'roundingPriority',\r\n 'roundingIncrement',\r\n 'trailingZeroDisplay'\r\n];\r\n/** @internal */\r\nfunction parseNumberArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n const options = {};\r\n let overrides = {};\r\n if (!isNumber(arg1)) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const value = arg1;\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n Object.keys(arg2).forEach(key => {\r\n if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) {\r\n overrides[key] = arg2[key];\r\n }\r\n else {\r\n options[key] = arg2[key];\r\n }\r\n });\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearNumberFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__numberFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__numberFormatters.delete(id);\r\n }\r\n}\n\n// TODO: we could not exports for Node native ES Moudles yet...\r\n{\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n}\n\nexport { CoreErrorCodes, CoreWarnCodes, DATETIME_FORMAT_OPTIONS_KEYS, DEFAULT_LOCALE, DEFAULT_MESSAGE_DATA_TYPE, MISSING_RESOLVE_VALUE, NOT_REOSLVED, NUMBER_FORMAT_OPTIONS_KEYS, VERSION, clearCompileCache, clearDateTimeFormat, clearNumberFormat, compileToFunction, createCoreContext, createCoreError, createMessageContext, datetime, fallbackWithLocaleChain, fallbackWithSimple, getAdditionalMeta, getDevToolsHook, getFallbackContext, getWarnMessage, handleMissing, initI18nDevTools, isMessageFunction, isTranslateFallbackWarn, isTranslateMissingWarn, number, parse, parseDateTimeArgs, parseNumberArgs, parseTranslateArgs, registerLocaleFallbacker, registerMessageCompiler, registerMessageResolver, resolveValue, resolveWithKeyValue, setAdditionalMeta, setDevToolsHook, setFallbackContext, translate, translateDevTools, updateFallbackLocale };\n","/*!\n * vue-devtools v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst VueDevToolsLabels = {\r\n [\"vue-devtools-plugin-vue-i18n\" /* PLUGIN */]: 'Vue I18n devtools',\r\n [\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]: 'I18n Resources',\r\n [\"vue-i18n-timeline\" /* TIMELINE */]: 'Vue I18n'\r\n};\r\nconst VueDevToolsPlaceholders = {\r\n [\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]: 'Search for scopes ...'\r\n};\r\nconst VueDevToolsTimelineColors = {\r\n [\"vue-i18n-timeline\" /* TIMELINE */]: 0xffcd19\r\n};\n\nexport { VueDevToolsLabels, VueDevToolsPlaceholders, VueDevToolsTimelineColors };\n","/*!\n * vue-i18n v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { getGlobalThis, format, makeSymbol, isPlainObject, isArray, isString, hasOwn, isObject, isBoolean, isRegExp, isFunction, inBrowser, assign, isNumber, warn, createEmitter, isEmptyObject } from '@intlify/shared';\nimport { CoreWarnCodes, CompileErrorCodes, createCompileError, DEFAULT_LOCALE, updateFallbackLocale, setFallbackContext, createCoreContext, clearDateTimeFormat, clearNumberFormat, setAdditionalMeta, getFallbackContext, NOT_REOSLVED, isTranslateFallbackWarn, isTranslateMissingWarn, parseTranslateArgs, translate, MISSING_RESOLVE_VALUE, parseDateTimeArgs, datetime, parseNumberArgs, number, fallbackWithLocaleChain, NUMBER_FORMAT_OPTIONS_KEYS, DATETIME_FORMAT_OPTIONS_KEYS, registerMessageCompiler, compileToFunction, registerMessageResolver, resolveValue, registerLocaleFallbacker, setDevToolsHook } from '@intlify/core-base';\nimport { createVNode, Text, ref, computed, watch, getCurrentInstance, Fragment, h, effectScope, inject, onMounted, onUnmounted, shallowRef, onBeforeMount, isRef } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\nimport { VueDevToolsLabels, VueDevToolsPlaceholders, VueDevToolsTimelineColors } from '@intlify/vue-devtools';\n\n/**\r\n * Vue I18n Version\r\n *\r\n * @remarks\r\n * Semver format. Same format as the package.json `version` field.\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst VERSION = '9.2.2';\r\n/**\r\n * This is only called in esm-bundler builds.\r\n * istanbul-ignore-next\r\n */\r\nfunction initFeatureFlags() {\r\n let needWarn = false;\r\n if (typeof __VUE_I18N_FULL_INSTALL__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_I18N_FULL_INSTALL__ = true;\r\n }\r\n if (typeof __VUE_I18N_LEGACY_API__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_I18N_LEGACY_API__ = true;\r\n }\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && needWarn) {\r\n console.warn(`You are running the esm-bundler build of vue-i18n. It is recommended to ` +\r\n `configure your bundler to explicitly replace feature flag globals ` +\r\n `with boolean literals to get proper tree-shaking in the final bundle.`);\r\n }\r\n}\n\nlet code$1 = CoreWarnCodes.__EXTEND_POINT__;\r\nconst inc$1 = () => ++code$1;\r\nconst I18nWarnCodes = {\r\n FALLBACK_TO_ROOT: code$1,\r\n NOT_SUPPORTED_PRESERVE: inc$1(),\r\n NOT_SUPPORTED_FORMATTER: inc$1(),\r\n NOT_SUPPORTED_PRESERVE_DIRECTIVE: inc$1(),\r\n NOT_SUPPORTED_GET_CHOICE_INDEX: inc$1(),\r\n COMPONENT_NAME_LEGACY_COMPATIBLE: inc$1(),\r\n NOT_FOUND_PARENT_SCOPE: inc$1() // 13\r\n};\r\nconst warnMessages = {\r\n [I18nWarnCodes.FALLBACK_TO_ROOT]: `Fall back to {type} '{key}' with root locale.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_PRESERVE]: `Not supported 'preserve'.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_FORMATTER]: `Not supported 'formatter'.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE]: `Not supported 'preserveDirectiveContent'.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX]: `Not supported 'getChoiceIndex'.`,\r\n [I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE]: `Component name legacy compatible: '{name}' -> 'i18n'`,\r\n [I18nWarnCodes.NOT_FOUND_PARENT_SCOPE]: `Not found parent scope. use the global scope.`\r\n};\r\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[code], ...args);\r\n}\n\nlet code = CompileErrorCodes.__EXTEND_POINT__;\r\nconst inc = () => ++code;\r\nconst I18nErrorCodes = {\r\n // composer module errors\r\n UNEXPECTED_RETURN_TYPE: code,\r\n // legacy module errors\r\n INVALID_ARGUMENT: inc(),\r\n // i18n module errors\r\n MUST_BE_CALL_SETUP_TOP: inc(),\r\n NOT_INSLALLED: inc(),\r\n NOT_AVAILABLE_IN_LEGACY_MODE: inc(),\r\n // directive module errors\r\n REQUIRED_VALUE: inc(),\r\n INVALID_VALUE: inc(),\r\n // vue-devtools errors\r\n CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN: inc(),\r\n NOT_INSLALLED_WITH_PROVIDE: inc(),\r\n // unexpected error\r\n UNEXPECTED_ERROR: inc(),\r\n // not compatible legacy vue-i18n constructor\r\n NOT_COMPATIBLE_LEGACY_VUE_I18N: inc(),\r\n // bridge support vue 2.x only\r\n BRIDGE_SUPPORT_VUE_2_ONLY: inc(),\r\n // need to define `i18n` option in `allowComposition: true` and `useScope: 'local' at `useI18n``\r\n MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION: inc(),\r\n // Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly\r\n NOT_AVAILABLE_COMPOSITION_IN_LEGACY: inc(),\r\n // for enhancement\r\n __EXTEND_POINT__: inc() // 29\r\n};\r\nfunction createI18nError(code, ...args) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages, args } : undefined);\r\n}\r\nconst errorMessages = {\r\n [I18nErrorCodes.UNEXPECTED_RETURN_TYPE]: 'Unexpected return type in composer',\r\n [I18nErrorCodes.INVALID_ARGUMENT]: 'Invalid argument',\r\n [I18nErrorCodes.MUST_BE_CALL_SETUP_TOP]: 'Must be called at the top of a `setup` function',\r\n [I18nErrorCodes.NOT_INSLALLED]: 'Need to install with `app.use` function',\r\n [I18nErrorCodes.UNEXPECTED_ERROR]: 'Unexpected error',\r\n [I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE]: 'Not available in legacy mode',\r\n [I18nErrorCodes.REQUIRED_VALUE]: `Required in value: {0}`,\r\n [I18nErrorCodes.INVALID_VALUE]: `Invalid value`,\r\n [I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN]: `Cannot setup vue-devtools plugin`,\r\n [I18nErrorCodes.NOT_INSLALLED_WITH_PROVIDE]: 'Need to install with `provide` function',\r\n [I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N]: 'Not compatible legacy VueI18n.',\r\n [I18nErrorCodes.BRIDGE_SUPPORT_VUE_2_ONLY]: 'vue-i18n-bridge support Vue 2.x only',\r\n [I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION]: 'Must define ‘i18n’ option or custom block in Composition API with using local scope in Legacy API mode',\r\n [I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY]: 'Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly'\r\n};\n\nconst TransrateVNodeSymbol = \r\n/* #__PURE__*/ makeSymbol('__transrateVNode');\r\nconst DatetimePartsSymbol = /* #__PURE__*/ makeSymbol('__datetimeParts');\r\nconst NumberPartsSymbol = /* #__PURE__*/ makeSymbol('__numberParts');\r\nconst EnableEmitter = /* #__PURE__*/ makeSymbol('__enableEmitter');\r\nconst DisableEmitter = /* #__PURE__*/ makeSymbol('__disableEmitter');\r\nconst SetPluralRulesSymbol = makeSymbol('__setPluralRules');\r\nmakeSymbol('__intlifyMeta');\r\nconst InejctWithOption = /* #__PURE__*/ makeSymbol('__injectWithOption');\r\nconst __VUE_I18N_BRIDGE__ = '__VUE_I18N_BRIDGE__';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Transform flat json in obj to normal json in obj\r\n */\r\nfunction handleFlatJson(obj) {\r\n // check obj\r\n if (!isObject(obj)) {\r\n return obj;\r\n }\r\n for (const key in obj) {\r\n // check key\r\n if (!hasOwn(obj, key)) {\r\n continue;\r\n }\r\n // handle for normal json\r\n if (!key.includes('.')) {\r\n // recursive process value if value is also a object\r\n if (isObject(obj[key])) {\r\n handleFlatJson(obj[key]);\r\n }\r\n }\r\n // handle for flat json, transform to normal json\r\n else {\r\n // go to the last object\r\n const subKeys = key.split('.');\r\n const lastIndex = subKeys.length - 1;\r\n let currentObj = obj;\r\n for (let i = 0; i < lastIndex; i++) {\r\n if (!(subKeys[i] in currentObj)) {\r\n currentObj[subKeys[i]] = {};\r\n }\r\n currentObj = currentObj[subKeys[i]];\r\n }\r\n // update last object value, delete old property\r\n currentObj[subKeys[lastIndex]] = obj[key];\r\n delete obj[key];\r\n // recursive process value if value is also a object\r\n if (isObject(currentObj[subKeys[lastIndex]])) {\r\n handleFlatJson(currentObj[subKeys[lastIndex]]);\r\n }\r\n }\r\n }\r\n return obj;\r\n}\r\nfunction getLocaleMessages(locale, options) {\r\n const { messages, __i18n, messageResolver, flatJson } = options;\r\n // prettier-ignore\r\n const ret = isPlainObject(messages)\r\n ? messages\r\n : isArray(__i18n)\r\n ? {}\r\n : { [locale]: {} };\r\n // merge locale messages of i18n custom block\r\n if (isArray(__i18n)) {\r\n __i18n.forEach(custom => {\r\n if ('locale' in custom && 'resource' in custom) {\r\n const { locale, resource } = custom;\r\n if (locale) {\r\n ret[locale] = ret[locale] || {};\r\n deepCopy(resource, ret[locale]);\r\n }\r\n else {\r\n deepCopy(resource, ret);\r\n }\r\n }\r\n else {\r\n isString(custom) && deepCopy(JSON.parse(custom), ret);\r\n }\r\n });\r\n }\r\n // handle messages for flat json\r\n if (messageResolver == null && flatJson) {\r\n for (const key in ret) {\r\n if (hasOwn(ret, key)) {\r\n handleFlatJson(ret[key]);\r\n }\r\n }\r\n }\r\n return ret;\r\n}\r\nconst isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val);\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\nfunction deepCopy(src, des) {\r\n // src and des should both be objects, and non of then can be a array\r\n if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_VALUE);\r\n }\r\n for (const key in src) {\r\n if (hasOwn(src, key)) {\r\n if (isNotObjectOrIsArray(src[key]) || isNotObjectOrIsArray(des[key])) {\r\n // replace with src[key] when:\r\n // src[key] or des[key] is not a object, or\r\n // src[key] or des[key] is a array\r\n des[key] = src[key];\r\n }\r\n else {\r\n // src[key] and des[key] are both object, merge them\r\n deepCopy(src[key], des[key]);\r\n }\r\n }\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getComponentOptions(instance) {\r\n return instance.type ;\r\n}\r\nfunction adjustI18nResources(global, options, componentOptions // eslint-disable-line @typescript-eslint/no-explicit-any\r\n) {\r\n let messages = isObject(options.messages) ? options.messages : {};\r\n if ('__i18nGlobal' in componentOptions) {\r\n messages = getLocaleMessages(global.locale.value, {\r\n messages,\r\n __i18n: componentOptions.__i18nGlobal\r\n });\r\n }\r\n // merge locale messages\r\n const locales = Object.keys(messages);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeLocaleMessage(locale, messages[locale]);\r\n });\r\n }\r\n {\r\n // merge datetime formats\r\n if (isObject(options.datetimeFormats)) {\r\n const locales = Object.keys(options.datetimeFormats);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeDateTimeFormat(locale, options.datetimeFormats[locale]);\r\n });\r\n }\r\n }\r\n // merge number formats\r\n if (isObject(options.numberFormats)) {\r\n const locales = Object.keys(options.numberFormats);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeNumberFormat(locale, options.numberFormats[locale]);\r\n });\r\n }\r\n }\r\n }\r\n}\r\nfunction createTextNode(key) {\r\n return createVNode(Text, null, key, 0)\r\n ;\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n// extend VNode interface\r\nconst DEVTOOLS_META = '__INTLIFY_META__';\r\nlet composerID = 0;\r\nfunction defineCoreMissingHandler(missing) {\r\n return ((ctx, locale, key, type) => {\r\n return missing(locale, key, getCurrentInstance() || undefined, type);\r\n });\r\n}\r\n// for Intlify DevTools\r\nconst getMetaInfo = () => {\r\n const instance = getCurrentInstance();\r\n let meta = null; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n return instance && (meta = getComponentOptions(instance)[DEVTOOLS_META])\r\n ? { [DEVTOOLS_META]: meta } // eslint-disable-line @typescript-eslint/no-explicit-any\r\n : null;\r\n};\r\n/**\r\n * Create composer interface factory\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nfunction createComposer(options = {}, VueI18nLegacy) {\r\n const { __root } = options;\r\n const _isGlobal = __root === undefined;\r\n let _inheritLocale = isBoolean(options.inheritLocale)\r\n ? options.inheritLocale\r\n : true;\r\n const _locale = ref(\r\n // prettier-ignore\r\n __root && _inheritLocale\r\n ? __root.locale.value\r\n : isString(options.locale)\r\n ? options.locale\r\n : DEFAULT_LOCALE);\r\n const _fallbackLocale = ref(\r\n // prettier-ignore\r\n __root && _inheritLocale\r\n ? __root.fallbackLocale.value\r\n : isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : _locale.value);\r\n const _messages = ref(getLocaleMessages(_locale.value, options));\r\n // prettier-ignore\r\n const _datetimeFormats = ref(isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [_locale.value]: {} })\r\n ;\r\n // prettier-ignore\r\n const _numberFormats = ref(isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [_locale.value]: {} })\r\n ;\r\n // warning suppress options\r\n // prettier-ignore\r\n let _missingWarn = __root\r\n ? __root.missingWarn\r\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n // prettier-ignore\r\n let _fallbackWarn = __root\r\n ? __root.fallbackWarn\r\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n // prettier-ignore\r\n let _fallbackRoot = __root\r\n ? __root.fallbackRoot\r\n : isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n // configure fall back to root\r\n let _fallbackFormat = !!options.fallbackFormat;\r\n // runtime missing\r\n let _missing = isFunction(options.missing) ? options.missing : null;\r\n let _runtimeMissing = isFunction(options.missing)\r\n ? defineCoreMissingHandler(options.missing)\r\n : null;\r\n // postTranslation handler\r\n let _postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n // prettier-ignore\r\n let _warnHtmlMessage = __root\r\n ? __root.warnHtmlMessage\r\n : isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n let _escapeParameter = !!options.escapeParameter;\r\n // custom linked modifiers\r\n // prettier-ignore\r\n const _modifiers = __root\r\n ? __root.modifiers\r\n : isPlainObject(options.modifiers)\r\n ? options.modifiers\r\n : {};\r\n // pluralRules\r\n let _pluralRules = options.pluralRules || (__root && __root.pluralRules);\r\n // runtime context\r\n // eslint-disable-next-line prefer-const\r\n let _context;\r\n const getCoreContext = () => {\r\n _isGlobal && setFallbackContext(null);\r\n const ctxOptions = {\r\n version: VERSION,\r\n locale: _locale.value,\r\n fallbackLocale: _fallbackLocale.value,\r\n messages: _messages.value,\r\n modifiers: _modifiers,\r\n pluralRules: _pluralRules,\r\n missing: _runtimeMissing === null ? undefined : _runtimeMissing,\r\n missingWarn: _missingWarn,\r\n fallbackWarn: _fallbackWarn,\r\n fallbackFormat: _fallbackFormat,\r\n unresolving: true,\r\n postTranslation: _postTranslation === null ? undefined : _postTranslation,\r\n warnHtmlMessage: _warnHtmlMessage,\r\n escapeParameter: _escapeParameter,\r\n messageResolver: options.messageResolver,\r\n __meta: { framework: 'vue' }\r\n };\r\n {\r\n ctxOptions.datetimeFormats = _datetimeFormats.value;\r\n ctxOptions.numberFormats = _numberFormats.value;\r\n ctxOptions.__datetimeFormatters = isPlainObject(_context)\r\n ? _context.__datetimeFormatters\r\n : undefined;\r\n ctxOptions.__numberFormatters = isPlainObject(_context)\r\n ? _context.__numberFormatters\r\n : undefined;\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n ctxOptions.__v_emitter = isPlainObject(_context)\r\n ? _context.__v_emitter\r\n : undefined;\r\n }\r\n const ctx = createCoreContext(ctxOptions);\r\n _isGlobal && setFallbackContext(ctx);\r\n return ctx;\r\n };\r\n _context = getCoreContext();\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n // track reactivity\r\n function trackReactivityValues() {\r\n return [\r\n _locale.value,\r\n _fallbackLocale.value,\r\n _messages.value,\r\n _datetimeFormats.value,\r\n _numberFormats.value\r\n ]\r\n ;\r\n }\r\n // locale\r\n const locale = computed({\r\n get: () => _locale.value,\r\n set: val => {\r\n _locale.value = val;\r\n _context.locale = _locale.value;\r\n }\r\n });\r\n // fallbackLocale\r\n const fallbackLocale = computed({\r\n get: () => _fallbackLocale.value,\r\n set: val => {\r\n _fallbackLocale.value = val;\r\n _context.fallbackLocale = _fallbackLocale.value;\r\n updateFallbackLocale(_context, _locale.value, val);\r\n }\r\n });\r\n // messages\r\n const messages = computed(() => _messages.value);\r\n // datetimeFormats\r\n const datetimeFormats = /* #__PURE__*/ computed(() => _datetimeFormats.value);\r\n // numberFormats\r\n const numberFormats = /* #__PURE__*/ computed(() => _numberFormats.value);\r\n // getPostTranslationHandler\r\n function getPostTranslationHandler() {\r\n return isFunction(_postTranslation) ? _postTranslation : null;\r\n }\r\n // setPostTranslationHandler\r\n function setPostTranslationHandler(handler) {\r\n _postTranslation = handler;\r\n _context.postTranslation = handler;\r\n }\r\n // getMissingHandler\r\n function getMissingHandler() {\r\n return _missing;\r\n }\r\n // setMissingHandler\r\n function setMissingHandler(handler) {\r\n if (handler !== null) {\r\n _runtimeMissing = defineCoreMissingHandler(handler);\r\n }\r\n _missing = handler;\r\n _context.missing = _runtimeMissing;\r\n }\r\n function isResolvedTranslateMessage(type, arg // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n return type !== 'translate' || !arg.resolvedMessage;\r\n }\r\n const wrapWithDeps = (fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) => {\r\n trackReactivityValues(); // track reactive dependency\r\n // NOTE: experimental !!\r\n let ret;\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n try {\r\n setAdditionalMeta(getMetaInfo());\r\n if (!_isGlobal) {\r\n _context.fallbackContext = __root\r\n ? getFallbackContext()\r\n : undefined;\r\n }\r\n ret = fn(_context);\r\n }\r\n finally {\r\n setAdditionalMeta(null);\r\n if (!_isGlobal) {\r\n _context.fallbackContext = undefined;\r\n }\r\n }\r\n }\r\n else {\r\n ret = fn(_context);\r\n }\r\n if (isNumber(ret) && ret === NOT_REOSLVED) {\r\n const [key, arg2] = argumentParser();\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n __root &&\r\n isString(key) &&\r\n isResolvedTranslateMessage(warnType, arg2)) {\r\n if (_fallbackRoot &&\r\n (isTranslateFallbackWarn(_fallbackWarn, key) ||\r\n isTranslateMissingWarn(_missingWarn, key))) {\r\n warn(getWarnMessage(I18nWarnCodes.FALLBACK_TO_ROOT, {\r\n key,\r\n type: warnType\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { __v_emitter: emitter } = _context;\r\n if (emitter && _fallbackRoot) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type: warnType,\r\n key,\r\n to: 'global',\r\n groupId: `${warnType}:${key}`\r\n });\r\n }\r\n }\r\n }\r\n return __root && _fallbackRoot\r\n ? fallbackSuccess(__root)\r\n : fallbackFail(key);\r\n }\r\n else if (successCondition(ret)) {\r\n return ret;\r\n }\r\n else {\r\n /* istanbul ignore next */\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE);\r\n }\r\n };\r\n // t\r\n function t(...args) {\r\n return wrapWithDeps(context => Reflect.apply(translate, null, [context, ...args]), () => parseTranslateArgs(...args), 'translate', root => Reflect.apply(root.t, root, [...args]), key => key, val => isString(val));\r\n }\r\n // rt\r\n function rt(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n if (arg3 && !isObject(arg3)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n }\r\n return t(...[arg1, arg2, assign({ resolvedMessage: true }, arg3 || {})]);\r\n }\r\n // d\r\n function d(...args) {\r\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', root => Reflect.apply(root.d, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val));\r\n }\r\n // n\r\n function n(...args) {\r\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', root => Reflect.apply(root.n, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val));\r\n }\r\n // for custom processor\r\n function normalize(values) {\r\n return values.map(val => isString(val) || isNumber(val) || isBoolean(val)\r\n ? createTextNode(String(val))\r\n : val);\r\n }\r\n const interpolate = (val) => val;\r\n const processor = {\r\n normalize,\r\n interpolate,\r\n type: 'vnode'\r\n };\r\n // transrateVNode, using for `i18n-t` component\r\n function transrateVNode(...args) {\r\n return wrapWithDeps(context => {\r\n let ret;\r\n const _context = context;\r\n try {\r\n _context.processor = processor;\r\n ret = Reflect.apply(translate, null, [_context, ...args]);\r\n }\r\n finally {\r\n _context.processor = null;\r\n }\r\n return ret;\r\n }, () => parseTranslateArgs(...args), 'translate', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[TransrateVNodeSymbol](...args), key => [createTextNode(key)], val => isArray(val));\r\n }\r\n // numberParts, using for `i18n-n` component\r\n function numberParts(...args) {\r\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[NumberPartsSymbol](...args), () => [], val => isString(val) || isArray(val));\r\n }\r\n // datetimeParts, using for `i18n-d` component\r\n function datetimeParts(...args) {\r\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[DatetimePartsSymbol](...args), () => [], val => isString(val) || isArray(val));\r\n }\r\n function setPluralRules(rules) {\r\n _pluralRules = rules;\r\n _context.pluralRules = _pluralRules;\r\n }\r\n // te\r\n function te(key, locale) {\r\n const targetLocale = isString(locale) ? locale : _locale.value;\r\n const message = getLocaleMessage(targetLocale);\r\n return _context.messageResolver(message, key) !== null;\r\n }\r\n function resolveMessages(key) {\r\n let messages = null;\r\n const locales = fallbackWithLocaleChain(_context, _fallbackLocale.value, _locale.value);\r\n for (let i = 0; i < locales.length; i++) {\r\n const targetLocaleMessages = _messages.value[locales[i]] || {};\r\n const messageValue = _context.messageResolver(targetLocaleMessages, key);\r\n if (messageValue != null) {\r\n messages = messageValue;\r\n break;\r\n }\r\n }\r\n return messages;\r\n }\r\n // tm\r\n function tm(key) {\r\n const messages = resolveMessages(key);\r\n // prettier-ignore\r\n return messages != null\r\n ? messages\r\n : __root\r\n ? __root.tm(key) || {}\r\n : {};\r\n }\r\n // getLocaleMessage\r\n function getLocaleMessage(locale) {\r\n return (_messages.value[locale] || {});\r\n }\r\n // setLocaleMessage\r\n function setLocaleMessage(locale, message) {\r\n _messages.value[locale] = message;\r\n _context.messages = _messages.value;\r\n }\r\n // mergeLocaleMessage\r\n function mergeLocaleMessage(locale, message) {\r\n _messages.value[locale] = _messages.value[locale] || {};\r\n deepCopy(message, _messages.value[locale]);\r\n _context.messages = _messages.value;\r\n }\r\n // getDateTimeFormat\r\n function getDateTimeFormat(locale) {\r\n return _datetimeFormats.value[locale] || {};\r\n }\r\n // setDateTimeFormat\r\n function setDateTimeFormat(locale, format) {\r\n _datetimeFormats.value[locale] = format;\r\n _context.datetimeFormats = _datetimeFormats.value;\r\n clearDateTimeFormat(_context, locale, format);\r\n }\r\n // mergeDateTimeFormat\r\n function mergeDateTimeFormat(locale, format) {\r\n _datetimeFormats.value[locale] = assign(_datetimeFormats.value[locale] || {}, format);\r\n _context.datetimeFormats = _datetimeFormats.value;\r\n clearDateTimeFormat(_context, locale, format);\r\n }\r\n // getNumberFormat\r\n function getNumberFormat(locale) {\r\n return _numberFormats.value[locale] || {};\r\n }\r\n // setNumberFormat\r\n function setNumberFormat(locale, format) {\r\n _numberFormats.value[locale] = format;\r\n _context.numberFormats = _numberFormats.value;\r\n clearNumberFormat(_context, locale, format);\r\n }\r\n // mergeNumberFormat\r\n function mergeNumberFormat(locale, format) {\r\n _numberFormats.value[locale] = assign(_numberFormats.value[locale] || {}, format);\r\n _context.numberFormats = _numberFormats.value;\r\n clearNumberFormat(_context, locale, format);\r\n }\r\n // for debug\r\n composerID++;\r\n // watch root locale & fallbackLocale\r\n if (__root && inBrowser) {\r\n watch(__root.locale, (val) => {\r\n if (_inheritLocale) {\r\n _locale.value = val;\r\n _context.locale = val;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n });\r\n watch(__root.fallbackLocale, (val) => {\r\n if (_inheritLocale) {\r\n _fallbackLocale.value = val;\r\n _context.fallbackLocale = val;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n });\r\n }\r\n // define basic composition API!\r\n const composer = {\r\n id: composerID,\r\n locale,\r\n fallbackLocale,\r\n get inheritLocale() {\r\n return _inheritLocale;\r\n },\r\n set inheritLocale(val) {\r\n _inheritLocale = val;\r\n if (val && __root) {\r\n _locale.value = __root.locale.value;\r\n _fallbackLocale.value = __root.fallbackLocale.value;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n },\r\n get availableLocales() {\r\n return Object.keys(_messages.value).sort();\r\n },\r\n messages,\r\n get modifiers() {\r\n return _modifiers;\r\n },\r\n get pluralRules() {\r\n return _pluralRules || {};\r\n },\r\n get isGlobal() {\r\n return _isGlobal;\r\n },\r\n get missingWarn() {\r\n return _missingWarn;\r\n },\r\n set missingWarn(val) {\r\n _missingWarn = val;\r\n _context.missingWarn = _missingWarn;\r\n },\r\n get fallbackWarn() {\r\n return _fallbackWarn;\r\n },\r\n set fallbackWarn(val) {\r\n _fallbackWarn = val;\r\n _context.fallbackWarn = _fallbackWarn;\r\n },\r\n get fallbackRoot() {\r\n return _fallbackRoot;\r\n },\r\n set fallbackRoot(val) {\r\n _fallbackRoot = val;\r\n },\r\n get fallbackFormat() {\r\n return _fallbackFormat;\r\n },\r\n set fallbackFormat(val) {\r\n _fallbackFormat = val;\r\n _context.fallbackFormat = _fallbackFormat;\r\n },\r\n get warnHtmlMessage() {\r\n return _warnHtmlMessage;\r\n },\r\n set warnHtmlMessage(val) {\r\n _warnHtmlMessage = val;\r\n _context.warnHtmlMessage = val;\r\n },\r\n get escapeParameter() {\r\n return _escapeParameter;\r\n },\r\n set escapeParameter(val) {\r\n _escapeParameter = val;\r\n _context.escapeParameter = val;\r\n },\r\n t,\r\n getLocaleMessage,\r\n setLocaleMessage,\r\n mergeLocaleMessage,\r\n getPostTranslationHandler,\r\n setPostTranslationHandler,\r\n getMissingHandler,\r\n setMissingHandler,\r\n [SetPluralRulesSymbol]: setPluralRules\r\n };\r\n {\r\n composer.datetimeFormats = datetimeFormats;\r\n composer.numberFormats = numberFormats;\r\n composer.rt = rt;\r\n composer.te = te;\r\n composer.tm = tm;\r\n composer.d = d;\r\n composer.n = n;\r\n composer.getDateTimeFormat = getDateTimeFormat;\r\n composer.setDateTimeFormat = setDateTimeFormat;\r\n composer.mergeDateTimeFormat = mergeDateTimeFormat;\r\n composer.getNumberFormat = getNumberFormat;\r\n composer.setNumberFormat = setNumberFormat;\r\n composer.mergeNumberFormat = mergeNumberFormat;\r\n composer[InejctWithOption] = options.__injectWithOption;\r\n composer[TransrateVNodeSymbol] = transrateVNode;\r\n composer[DatetimePartsSymbol] = datetimeParts;\r\n composer[NumberPartsSymbol] = numberParts;\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n composer[EnableEmitter] = (emitter) => {\r\n _context.__v_emitter = emitter;\r\n };\r\n composer[DisableEmitter] = () => {\r\n _context.__v_emitter = undefined;\r\n };\r\n }\r\n return composer;\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Convert to I18n Composer Options from VueI18n Options\r\n *\r\n * @internal\r\n */\r\nfunction convertComposerOptions(options) {\r\n const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\r\n const fallbackLocale = isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : locale;\r\n const missing = isFunction(options.missing) ? options.missing : undefined;\r\n const missingWarn = isBoolean(options.silentTranslationWarn) ||\r\n isRegExp(options.silentTranslationWarn)\r\n ? !options.silentTranslationWarn\r\n : true;\r\n const fallbackWarn = isBoolean(options.silentFallbackWarn) ||\r\n isRegExp(options.silentFallbackWarn)\r\n ? !options.silentFallbackWarn\r\n : true;\r\n const fallbackRoot = isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n const fallbackFormat = !!options.formatFallbackMessages;\r\n const modifiers = isPlainObject(options.modifiers) ? options.modifiers : {};\r\n const pluralizationRules = options.pluralizationRules;\r\n const postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : undefined;\r\n const warnHtmlMessage = isString(options.warnHtmlInMessage)\r\n ? options.warnHtmlInMessage !== 'off'\r\n : true;\r\n const escapeParameter = !!options.escapeParameterHtml;\r\n const inheritLocale = isBoolean(options.sync) ? options.sync : true;\r\n if ((process.env.NODE_ENV !== 'production') && options.formatter) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && options.preserveDirectiveContent) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n }\r\n let messages = options.messages;\r\n if (isPlainObject(options.sharedMessages)) {\r\n const sharedMessages = options.sharedMessages;\r\n const locales = Object.keys(sharedMessages);\r\n messages = locales.reduce((messages, locale) => {\r\n const message = messages[locale] || (messages[locale] = {});\r\n assign(message, sharedMessages[locale]);\r\n return messages;\r\n }, (messages || {}));\r\n }\r\n const { __i18n, __root, __injectWithOption } = options;\r\n const datetimeFormats = options.datetimeFormats;\r\n const numberFormats = options.numberFormats;\r\n const flatJson = options.flatJson;\r\n return {\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n flatJson,\r\n datetimeFormats,\r\n numberFormats,\r\n missing,\r\n missingWarn,\r\n fallbackWarn,\r\n fallbackRoot,\r\n fallbackFormat,\r\n modifiers,\r\n pluralRules: pluralizationRules,\r\n postTranslation,\r\n warnHtmlMessage,\r\n escapeParameter,\r\n messageResolver: options.messageResolver,\r\n inheritLocale,\r\n __i18n,\r\n __root,\r\n __injectWithOption\r\n };\r\n}\r\n/**\r\n * create VueI18n interface factory\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nfunction createVueI18n(options = {}, VueI18nLegacy) {\r\n {\r\n const composer = createComposer(convertComposerOptions(options));\r\n // defines VueI18n\r\n const vueI18n = {\r\n // id\r\n id: composer.id,\r\n // locale\r\n get locale() {\r\n return composer.locale.value;\r\n },\r\n set locale(val) {\r\n composer.locale.value = val;\r\n },\r\n // fallbackLocale\r\n get fallbackLocale() {\r\n return composer.fallbackLocale.value;\r\n },\r\n set fallbackLocale(val) {\r\n composer.fallbackLocale.value = val;\r\n },\r\n // messages\r\n get messages() {\r\n return composer.messages.value;\r\n },\r\n // datetimeFormats\r\n get datetimeFormats() {\r\n return composer.datetimeFormats.value;\r\n },\r\n // numberFormats\r\n get numberFormats() {\r\n return composer.numberFormats.value;\r\n },\r\n // availableLocales\r\n get availableLocales() {\r\n return composer.availableLocales;\r\n },\r\n // formatter\r\n get formatter() {\r\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n // dummy\r\n return {\r\n interpolate() {\r\n return [];\r\n }\r\n };\r\n },\r\n set formatter(val) {\r\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n },\r\n // missing\r\n get missing() {\r\n return composer.getMissingHandler();\r\n },\r\n set missing(handler) {\r\n composer.setMissingHandler(handler);\r\n },\r\n // silentTranslationWarn\r\n get silentTranslationWarn() {\r\n return isBoolean(composer.missingWarn)\r\n ? !composer.missingWarn\r\n : composer.missingWarn;\r\n },\r\n set silentTranslationWarn(val) {\r\n composer.missingWarn = isBoolean(val) ? !val : val;\r\n },\r\n // silentFallbackWarn\r\n get silentFallbackWarn() {\r\n return isBoolean(composer.fallbackWarn)\r\n ? !composer.fallbackWarn\r\n : composer.fallbackWarn;\r\n },\r\n set silentFallbackWarn(val) {\r\n composer.fallbackWarn = isBoolean(val) ? !val : val;\r\n },\r\n // modifiers\r\n get modifiers() {\r\n return composer.modifiers;\r\n },\r\n // formatFallbackMessages\r\n get formatFallbackMessages() {\r\n return composer.fallbackFormat;\r\n },\r\n set formatFallbackMessages(val) {\r\n composer.fallbackFormat = val;\r\n },\r\n // postTranslation\r\n get postTranslation() {\r\n return composer.getPostTranslationHandler();\r\n },\r\n set postTranslation(handler) {\r\n composer.setPostTranslationHandler(handler);\r\n },\r\n // sync\r\n get sync() {\r\n return composer.inheritLocale;\r\n },\r\n set sync(val) {\r\n composer.inheritLocale = val;\r\n },\r\n // warnInHtmlMessage\r\n get warnHtmlInMessage() {\r\n return composer.warnHtmlMessage ? 'warn' : 'off';\r\n },\r\n set warnHtmlInMessage(val) {\r\n composer.warnHtmlMessage = val !== 'off';\r\n },\r\n // escapeParameterHtml\r\n get escapeParameterHtml() {\r\n return composer.escapeParameter;\r\n },\r\n set escapeParameterHtml(val) {\r\n composer.escapeParameter = val;\r\n },\r\n // preserveDirectiveContent\r\n get preserveDirectiveContent() {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n return true;\r\n },\r\n set preserveDirectiveContent(val) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n },\r\n // pluralizationRules\r\n get pluralizationRules() {\r\n return composer.pluralRules || {};\r\n },\r\n // for internal\r\n __composer: composer,\r\n // t\r\n t(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = {};\r\n let list = null;\r\n let named = null;\r\n if (!isString(arg1)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const key = arg1;\r\n if (isString(arg2)) {\r\n options.locale = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n list = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n named = arg2;\r\n }\r\n if (isArray(arg3)) {\r\n list = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n named = arg3;\r\n }\r\n // return composer.t(key, (list || named || {}) as any, options)\r\n return Reflect.apply(composer.t, composer, [\r\n key,\r\n (list || named || {}),\r\n options\r\n ]);\r\n },\r\n rt(...args) {\r\n return Reflect.apply(composer.rt, composer, [...args]);\r\n },\r\n // tc\r\n tc(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = { plural: 1 };\r\n let list = null;\r\n let named = null;\r\n if (!isString(arg1)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const key = arg1;\r\n if (isString(arg2)) {\r\n options.locale = arg2;\r\n }\r\n else if (isNumber(arg2)) {\r\n options.plural = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n list = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n named = arg2;\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isArray(arg3)) {\r\n list = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n named = arg3;\r\n }\r\n // return composer.t(key, (list || named || {}) as any, options)\r\n return Reflect.apply(composer.t, composer, [\r\n key,\r\n (list || named || {}),\r\n options\r\n ]);\r\n },\r\n // te\r\n te(key, locale) {\r\n return composer.te(key, locale);\r\n },\r\n // tm\r\n tm(key) {\r\n return composer.tm(key);\r\n },\r\n // getLocaleMessage\r\n getLocaleMessage(locale) {\r\n return composer.getLocaleMessage(locale);\r\n },\r\n // setLocaleMessage\r\n setLocaleMessage(locale, message) {\r\n composer.setLocaleMessage(locale, message);\r\n },\r\n // mergeLocaleMessage\r\n mergeLocaleMessage(locale, message) {\r\n composer.mergeLocaleMessage(locale, message);\r\n },\r\n // d\r\n d(...args) {\r\n return Reflect.apply(composer.d, composer, [...args]);\r\n },\r\n // getDateTimeFormat\r\n getDateTimeFormat(locale) {\r\n return composer.getDateTimeFormat(locale);\r\n },\r\n // setDateTimeFormat\r\n setDateTimeFormat(locale, format) {\r\n composer.setDateTimeFormat(locale, format);\r\n },\r\n // mergeDateTimeFormat\r\n mergeDateTimeFormat(locale, format) {\r\n composer.mergeDateTimeFormat(locale, format);\r\n },\r\n // n\r\n n(...args) {\r\n return Reflect.apply(composer.n, composer, [...args]);\r\n },\r\n // getNumberFormat\r\n getNumberFormat(locale) {\r\n return composer.getNumberFormat(locale);\r\n },\r\n // setNumberFormat\r\n setNumberFormat(locale, format) {\r\n composer.setNumberFormat(locale, format);\r\n },\r\n // mergeNumberFormat\r\n mergeNumberFormat(locale, format) {\r\n composer.mergeNumberFormat(locale, format);\r\n },\r\n // getChoiceIndex\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n getChoiceIndex(choice, choicesLength) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX));\r\n return -1;\r\n },\r\n // for internal\r\n __onComponentInstanceCreated(target) {\r\n const { componentInstanceCreatedListener } = options;\r\n if (componentInstanceCreatedListener) {\r\n componentInstanceCreatedListener(target, vueI18n);\r\n }\r\n }\r\n };\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n vueI18n.__enableEmitter = (emitter) => {\r\n const __composer = composer;\r\n __composer[EnableEmitter] && __composer[EnableEmitter](emitter);\r\n };\r\n vueI18n.__disableEmitter = () => {\r\n const __composer = composer;\r\n __composer[DisableEmitter] && __composer[DisableEmitter]();\r\n };\r\n }\r\n return vueI18n;\r\n }\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst baseFormatProps = {\r\n tag: {\r\n type: [String, Object]\r\n },\r\n locale: {\r\n type: String\r\n },\r\n scope: {\r\n type: String,\r\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\r\n validator: (val /* ComponetI18nScope */) => val === 'parent' || val === 'global',\r\n default: 'parent' /* ComponetI18nScope */\r\n },\r\n i18n: {\r\n type: Object\r\n }\r\n};\n\nfunction getInterpolateArg(\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n{ slots }, // SetupContext,\r\nkeys) {\r\n if (keys.length === 1 && keys[0] === 'default') {\r\n // default slot with list\r\n const ret = slots.default ? slots.default() : [];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return ret.reduce((slot, current) => {\r\n return (slot = [\r\n ...slot,\r\n ...(isArray(current.children) ? current.children : [current])\r\n ]);\r\n }, []);\r\n }\r\n else {\r\n // named slots\r\n return keys.reduce((arg, key) => {\r\n const slot = slots[key];\r\n if (slot) {\r\n arg[key] = slot();\r\n }\r\n return arg;\r\n }, {});\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getFragmentableTag(tag) {\r\n return Fragment ;\r\n}\n\n/**\r\n * Translation Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [TranslationProps](component#translationprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Component Interpolation](../guide/advanced/component)\r\n *\r\n * @example\r\n * ```html\r\n *
\r\n * \r\n * \r\n * {{ $t('tos') }}\r\n * \r\n * \r\n *
\r\n * ```\r\n * ```js\r\n * import { createApp } from 'vue'\r\n * import { createI18n } from 'vue-i18n'\r\n *\r\n * const messages = {\r\n * en: {\r\n * tos: 'Term of Service',\r\n * term: 'I accept xxx {0}.'\r\n * },\r\n * ja: {\r\n * tos: '利用規約',\r\n * term: '私は xxx の{0}に同意します。'\r\n * }\r\n * }\r\n *\r\n * const i18n = createI18n({\r\n * locale: 'en',\r\n * messages\r\n * })\r\n *\r\n * const app = createApp({\r\n * data: {\r\n * url: '/term'\r\n * }\r\n * }).use(i18n).mount('#app')\r\n * ```\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst Translation = /* defineComponent */ {\r\n /* eslint-disable */\r\n name: 'i18n-t',\r\n props: assign({\r\n keypath: {\r\n type: String,\r\n required: true\r\n },\r\n plural: {\r\n type: [Number, String],\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n validator: (val) => isNumber(val) || !isNaN(val)\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setup(props, context) {\r\n const { slots, attrs } = context;\r\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\r\n const i18n = props.i18n ||\r\n useI18n({\r\n useScope: props.scope,\r\n __useComponent: true\r\n });\r\n return () => {\r\n const keys = Object.keys(slots).filter(key => key !== '_');\r\n const options = {};\r\n if (props.locale) {\r\n options.locale = props.locale;\r\n }\r\n if (props.plural !== undefined) {\r\n options.plural = isString(props.plural) ? +props.plural : props.plural;\r\n }\r\n const arg = getInterpolateArg(context, keys);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const children = i18n[TransrateVNodeSymbol](props.keypath, arg, options);\r\n const assignedAttrs = assign({}, attrs);\r\n const tag = isString(props.tag) || isObject(props.tag)\r\n ? props.tag\r\n : getFragmentableTag();\r\n return h(tag, assignedAttrs, children);\r\n };\r\n }\r\n};\n\nfunction isVNode(target) {\r\n return isArray(target) && !isString(target[0]);\r\n}\r\nfunction renderFormatter(props, context, slotKeys, partFormatter) {\r\n const { slots, attrs } = context;\r\n return () => {\r\n const options = { part: true };\r\n let overrides = {};\r\n if (props.locale) {\r\n options.locale = props.locale;\r\n }\r\n if (isString(props.format)) {\r\n options.key = props.format;\r\n }\r\n else if (isObject(props.format)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (isString(props.format.key)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n options.key = props.format.key;\r\n }\r\n // Filter out number format options only\r\n overrides = Object.keys(props.format).reduce((options, prop) => {\r\n return slotKeys.includes(prop)\r\n ? assign({}, options, { [prop]: props.format[prop] }) // eslint-disable-line @typescript-eslint/no-explicit-any\r\n : options;\r\n }, {});\r\n }\r\n const parts = partFormatter(...[props.value, options, overrides]);\r\n let children = [options.key];\r\n if (isArray(parts)) {\r\n children = parts.map((part, index) => {\r\n const slot = slots[part.type];\r\n const node = slot\r\n ? slot({ [part.type]: part.value, index, parts })\r\n : [part.value];\r\n if (isVNode(node)) {\r\n node[0].key = `${part.type}-${index}`;\r\n }\r\n return node;\r\n });\r\n }\r\n else if (isString(parts)) {\r\n children = [parts];\r\n }\r\n const assignedAttrs = assign({}, attrs);\r\n const tag = isString(props.tag) || isObject(props.tag)\r\n ? props.tag\r\n : getFragmentableTag();\r\n return h(tag, assignedAttrs, children);\r\n };\r\n}\n\n/**\r\n * Number Format Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [FormattableProps](component#formattableprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Custom Formatting](../guide/essentials/number#custom-formatting)\r\n *\r\n * @VueI18nDanger\r\n * Not supported IE, due to no support `Intl.NumberFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/formatToParts)\r\n *\r\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-numberformat)\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst NumberFormat = /* defineComponent */ {\r\n /* eslint-disable */\r\n name: 'i18n-n',\r\n props: assign({\r\n value: {\r\n type: Number,\r\n required: true\r\n },\r\n format: {\r\n type: [String, Object]\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setup(props, context) {\r\n const i18n = props.i18n ||\r\n useI18n({ useScope: 'parent', __useComponent: true });\r\n return renderFormatter(props, context, NUMBER_FORMAT_OPTIONS_KEYS, (...args) => \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n i18n[NumberPartsSymbol](...args));\r\n }\r\n};\n\n/**\r\n * Datetime Format Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [FormattableProps](component#formattableprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Custom Formatting](../guide/essentials/datetime#custom-formatting)\r\n *\r\n * @VueI18nDanger\r\n * Not supported IE, due to no support `Intl.DateTimeFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts)\r\n *\r\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-datetimeformat)\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst DatetimeFormat = /*defineComponent */ {\r\n /* eslint-disable */\r\n name: 'i18n-d',\r\n props: assign({\r\n value: {\r\n type: [Number, Date],\r\n required: true\r\n },\r\n format: {\r\n type: [String, Object]\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setup(props, context) {\r\n const i18n = props.i18n ||\r\n useI18n({ useScope: 'parent', __useComponent: true });\r\n return renderFormatter(props, context, DATETIME_FORMAT_OPTIONS_KEYS, (...args) => \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n i18n[DatetimePartsSymbol](...args));\r\n }\r\n};\n\nfunction getComposer$2(i18n, instance) {\r\n const i18nInternal = i18n;\r\n if (i18n.mode === 'composition') {\r\n return (i18nInternal.__getInstance(instance) || i18n.global);\r\n }\r\n else {\r\n const vueI18n = i18nInternal.__getInstance(instance);\r\n return vueI18n != null\r\n ? vueI18n.__composer\r\n : i18n.global.__composer;\r\n }\r\n}\r\nfunction vTDirective(i18n) {\r\n const _process = (binding) => {\r\n const { instance, modifiers, value } = binding;\r\n /* istanbul ignore if */\r\n if (!instance || !instance.$) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n const composer = getComposer$2(i18n, instance.$);\r\n if ((process.env.NODE_ENV !== 'production') && modifiers.preserve) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE));\r\n }\r\n const parsedValue = parseValue(value);\r\n return [\r\n Reflect.apply(composer.t, composer, [...makeParams(parsedValue)]),\r\n composer\r\n ];\r\n };\r\n const register = (el, binding) => {\r\n const [textContent, composer] = _process(binding);\r\n if (inBrowser && i18n.global === composer) {\r\n // global scope only\r\n el.__i18nWatcher = watch(composer.locale, () => {\r\n binding.instance && binding.instance.$forceUpdate();\r\n });\r\n }\r\n el.__composer = composer;\r\n el.textContent = textContent;\r\n };\r\n const unregister = (el) => {\r\n if (inBrowser && el.__i18nWatcher) {\r\n el.__i18nWatcher();\r\n el.__i18nWatcher = undefined;\r\n delete el.__i18nWatcher;\r\n }\r\n if (el.__composer) {\r\n el.__composer = undefined;\r\n delete el.__composer;\r\n }\r\n };\r\n const update = (el, { value }) => {\r\n if (el.__composer) {\r\n const composer = el.__composer;\r\n const parsedValue = parseValue(value);\r\n el.textContent = Reflect.apply(composer.t, composer, [\r\n ...makeParams(parsedValue)\r\n ]);\r\n }\r\n };\r\n const getSSRProps = (binding) => {\r\n const [textContent] = _process(binding);\r\n return { textContent };\r\n };\r\n return {\r\n created: register,\r\n unmounted: unregister,\r\n beforeUpdate: update,\r\n getSSRProps\r\n };\r\n}\r\nfunction parseValue(value) {\r\n if (isString(value)) {\r\n return { path: value };\r\n }\r\n else if (isPlainObject(value)) {\r\n if (!('path' in value)) {\r\n throw createI18nError(I18nErrorCodes.REQUIRED_VALUE, 'path');\r\n }\r\n return value;\r\n }\r\n else {\r\n throw createI18nError(I18nErrorCodes.INVALID_VALUE);\r\n }\r\n}\r\nfunction makeParams(value) {\r\n const { path, locale, args, choice, plural } = value;\r\n const options = {};\r\n const named = args || {};\r\n if (isString(locale)) {\r\n options.locale = locale;\r\n }\r\n if (isNumber(choice)) {\r\n options.plural = choice;\r\n }\r\n if (isNumber(plural)) {\r\n options.plural = plural;\r\n }\r\n return [path, named, options];\r\n}\n\nfunction apply(app, i18n, ...options) {\r\n const pluginOptions = isPlainObject(options[0])\r\n ? options[0]\r\n : {};\r\n const useI18nComponentName = !!pluginOptions.useI18nComponentName;\r\n const globalInstall = isBoolean(pluginOptions.globalInstall)\r\n ? pluginOptions.globalInstall\r\n : true;\r\n if ((process.env.NODE_ENV !== 'production') && globalInstall && useI18nComponentName) {\r\n warn(getWarnMessage(I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE, {\r\n name: Translation.name\r\n }));\r\n }\r\n if (globalInstall) {\r\n // install components\r\n app.component(!useI18nComponentName ? Translation.name : 'i18n', Translation);\r\n app.component(NumberFormat.name, NumberFormat);\r\n app.component(DatetimeFormat.name, DatetimeFormat);\r\n }\r\n // install directive\r\n {\r\n app.directive('t', vTDirective(i18n));\r\n }\r\n}\n\nconst VUE_I18N_COMPONENT_TYPES = 'vue-i18n: composer properties';\r\nlet devtoolsApi;\r\nasync function enableDevTools(app, i18n) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n setupDevtoolsPlugin({\r\n id: \"vue-devtools-plugin-vue-i18n\" /* PLUGIN */,\r\n label: VueDevToolsLabels[\"vue-devtools-plugin-vue-i18n\" /* PLUGIN */],\r\n packageName: 'vue-i18n',\r\n homepage: 'https://vue-i18n.intlify.dev',\r\n logo: 'https://vue-i18n.intlify.dev/vue-i18n-devtools-logo.png',\r\n componentStateTypes: [VUE_I18N_COMPONENT_TYPES],\r\n app: app // eslint-disable-line @typescript-eslint/no-explicit-any\r\n }, api => {\r\n devtoolsApi = api;\r\n api.on.visitComponentTree(({ componentInstance, treeNode }) => {\r\n updateComponentTreeTags(componentInstance, treeNode, i18n);\r\n });\r\n api.on.inspectComponent(({ componentInstance, instanceData }) => {\r\n if (componentInstance.vnode.el &&\r\n componentInstance.vnode.el.__VUE_I18N__ &&\r\n instanceData) {\r\n if (i18n.mode === 'legacy') {\r\n // ignore global scope on legacy mode\r\n if (componentInstance.vnode.el.__VUE_I18N__ !==\r\n i18n.global.__composer) {\r\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\r\n }\r\n }\r\n else {\r\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\r\n }\r\n }\r\n });\r\n api.addInspector({\r\n id: \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */,\r\n label: VueDevToolsLabels[\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */],\r\n icon: 'language',\r\n treeFilterPlaceholder: VueDevToolsPlaceholders[\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]\r\n });\r\n api.on.getInspectorTree(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n registerScope(payload, i18n);\r\n }\r\n });\r\n const roots = new Map();\r\n api.on.getInspectorState(async (payload) => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n api.unhighlightElement();\r\n inspectScope(payload, i18n);\r\n if (payload.nodeId === 'global') {\r\n if (!roots.has(payload.app)) {\r\n const [root] = await api.getComponentInstances(payload.app);\r\n roots.set(payload.app, root);\r\n }\r\n api.highlightElement(roots.get(payload.app));\r\n }\r\n else {\r\n const instance = getComponentInstance(payload.nodeId, i18n);\r\n instance && api.highlightElement(instance);\r\n }\r\n }\r\n });\r\n api.on.editInspectorState(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n editScope(payload, i18n);\r\n }\r\n });\r\n api.addTimelineLayer({\r\n id: \"vue-i18n-timeline\" /* TIMELINE */,\r\n label: VueDevToolsLabels[\"vue-i18n-timeline\" /* TIMELINE */],\r\n color: VueDevToolsTimelineColors[\"vue-i18n-timeline\" /* TIMELINE */]\r\n });\r\n resolve(true);\r\n });\r\n }\r\n catch (e) {\r\n console.error(e);\r\n reject(false);\r\n }\r\n });\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getI18nScopeLable(instance) {\r\n return (instance.type.name ||\r\n instance.type.displayName ||\r\n instance.type.__file ||\r\n 'Anonymous');\r\n}\r\nfunction updateComponentTreeTags(instance, // eslint-disable-line @typescript-eslint/no-explicit-any\r\ntreeNode, i18n) {\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n if (instance && instance.vnode.el && instance.vnode.el.__VUE_I18N__) {\r\n // add custom tags local scope only\r\n if (instance.vnode.el.__VUE_I18N__ !== global) {\r\n const tag = {\r\n label: `i18n (${getI18nScopeLable(instance)} Scope)`,\r\n textColor: 0x000000,\r\n backgroundColor: 0xffcd19\r\n };\r\n treeNode.tags.push(tag);\r\n }\r\n }\r\n}\r\nfunction inspectComposer(instanceData, composer) {\r\n const type = VUE_I18N_COMPONENT_TYPES;\r\n instanceData.state.push({\r\n type,\r\n key: 'locale',\r\n editable: true,\r\n value: composer.locale.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'availableLocales',\r\n editable: false,\r\n value: composer.availableLocales\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'fallbackLocale',\r\n editable: true,\r\n value: composer.fallbackLocale.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'inheritLocale',\r\n editable: true,\r\n value: composer.inheritLocale\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'messages',\r\n editable: false,\r\n value: getLocaleMessageValue(composer.messages.value)\r\n });\r\n {\r\n instanceData.state.push({\r\n type,\r\n key: 'datetimeFormats',\r\n editable: false,\r\n value: composer.datetimeFormats.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'numberFormats',\r\n editable: false,\r\n value: composer.numberFormats.value\r\n });\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getLocaleMessageValue(messages) {\r\n const value = {};\r\n Object.keys(messages).forEach((key) => {\r\n const v = messages[key];\r\n if (isFunction(v) && 'source' in v) {\r\n value[key] = getMessageFunctionDetails(v);\r\n }\r\n else if (isObject(v)) {\r\n value[key] = getLocaleMessageValue(v);\r\n }\r\n else {\r\n value[key] = v;\r\n }\r\n });\r\n return value;\r\n}\r\nconst ESC = {\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n '&': '&'\r\n};\r\nfunction escape(s) {\r\n return s.replace(/[<>\"&]/g, escapeChar);\r\n}\r\nfunction escapeChar(a) {\r\n return ESC[a] || a;\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getMessageFunctionDetails(func) {\r\n const argString = func.source ? `(\"${escape(func.source)}\")` : `(?)`;\r\n return {\r\n _custom: {\r\n type: 'function',\r\n display: `ƒ ${argString}`\r\n }\r\n };\r\n}\r\nfunction registerScope(payload, i18n) {\r\n payload.rootNodes.push({\r\n id: 'global',\r\n label: 'Global Scope'\r\n });\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n for (const [keyInstance, instance] of i18n.__instances) {\r\n // prettier-ignore\r\n const composer = i18n.mode === 'composition'\r\n ? instance\r\n : instance.__composer;\r\n if (global === composer) {\r\n continue;\r\n }\r\n payload.rootNodes.push({\r\n id: composer.id.toString(),\r\n label: `${getI18nScopeLable(keyInstance)} Scope`\r\n });\r\n }\r\n}\r\nfunction getComponentInstance(nodeId, i18n) {\r\n let instance = null;\r\n if (nodeId !== 'global') {\r\n for (const [component, composer] of i18n.__instances.entries()) {\r\n if (composer.id.toString() === nodeId) {\r\n instance = component;\r\n break;\r\n }\r\n }\r\n }\r\n return instance;\r\n}\r\nfunction getComposer$1(nodeId, i18n) {\r\n if (nodeId === 'global') {\r\n return i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n }\r\n else {\r\n const instance = Array.from(i18n.__instances.values()).find(item => item.id.toString() === nodeId);\r\n if (instance) {\r\n return i18n.mode === 'composition'\r\n ? instance\r\n : instance.__composer;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n}\r\nfunction inspectScope(payload, i18n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n) {\r\n const composer = getComposer$1(payload.nodeId, i18n);\r\n if (composer) {\r\n // TODO:\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n payload.state = makeScopeInspectState(composer);\r\n }\r\n return null;\r\n}\r\nfunction makeScopeInspectState(composer) {\r\n const state = {};\r\n const localeType = 'Locale related info';\r\n const localeStates = [\r\n {\r\n type: localeType,\r\n key: 'locale',\r\n editable: true,\r\n value: composer.locale.value\r\n },\r\n {\r\n type: localeType,\r\n key: 'fallbackLocale',\r\n editable: true,\r\n value: composer.fallbackLocale.value\r\n },\r\n {\r\n type: localeType,\r\n key: 'availableLocales',\r\n editable: false,\r\n value: composer.availableLocales\r\n },\r\n {\r\n type: localeType,\r\n key: 'inheritLocale',\r\n editable: true,\r\n value: composer.inheritLocale\r\n }\r\n ];\r\n state[localeType] = localeStates;\r\n const localeMessagesType = 'Locale messages info';\r\n const localeMessagesStates = [\r\n {\r\n type: localeMessagesType,\r\n key: 'messages',\r\n editable: false,\r\n value: getLocaleMessageValue(composer.messages.value)\r\n }\r\n ];\r\n state[localeMessagesType] = localeMessagesStates;\r\n {\r\n const datetimeFormatsType = 'Datetime formats info';\r\n const datetimeFormatsStates = [\r\n {\r\n type: datetimeFormatsType,\r\n key: 'datetimeFormats',\r\n editable: false,\r\n value: composer.datetimeFormats.value\r\n }\r\n ];\r\n state[datetimeFormatsType] = datetimeFormatsStates;\r\n const numberFormatsType = 'Datetime formats info';\r\n const numberFormatsStates = [\r\n {\r\n type: numberFormatsType,\r\n key: 'numberFormats',\r\n editable: false,\r\n value: composer.numberFormats.value\r\n }\r\n ];\r\n state[numberFormatsType] = numberFormatsStates;\r\n }\r\n return state;\r\n}\r\nfunction addTimelineEvent(event, payload) {\r\n if (devtoolsApi) {\r\n let groupId;\r\n if (payload && 'groupId' in payload) {\r\n groupId = payload.groupId;\r\n delete payload.groupId;\r\n }\r\n devtoolsApi.addTimelineEvent({\r\n layerId: \"vue-i18n-timeline\" /* TIMELINE */,\r\n event: {\r\n title: event,\r\n groupId,\r\n time: Date.now(),\r\n meta: {},\r\n data: payload || {},\r\n logType: event === \"compile-error\" /* COMPILE_ERROR */\r\n ? 'error'\r\n : event === \"fallback\" /* FALBACK */ ||\r\n event === \"missing\" /* MISSING */\r\n ? 'warning'\r\n : 'default'\r\n }\r\n });\r\n }\r\n}\r\nfunction editScope(payload, i18n) {\r\n const composer = getComposer$1(payload.nodeId, i18n);\r\n if (composer) {\r\n const [field] = payload.path;\r\n if (field === 'locale' && isString(payload.state.value)) {\r\n composer.locale.value = payload.state.value;\r\n }\r\n else if (field === 'fallbackLocale' &&\r\n (isString(payload.state.value) ||\r\n isArray(payload.state.value) ||\r\n isObject(payload.state.value))) {\r\n composer.fallbackLocale.value = payload.state.value;\r\n }\r\n else if (field === 'inheritLocale' && isBoolean(payload.state.value)) {\r\n composer.inheritLocale = payload.state.value;\r\n }\r\n }\r\n}\n\n/**\r\n * Supports compatibility for legacy vue-i18n APIs\r\n * This mixin is used when we use vue-i18n@v9.x or later\r\n */\r\nfunction defineMixin(vuei18n, composer, i18n) {\r\n return {\r\n beforeCreate() {\r\n const instance = getCurrentInstance();\r\n /* istanbul ignore if */\r\n if (!instance) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n const options = this.$options;\r\n if (options.i18n) {\r\n const optionsI18n = options.i18n;\r\n if (options.__i18n) {\r\n optionsI18n.__i18n = options.__i18n;\r\n }\r\n optionsI18n.__root = composer;\r\n if (this === this.$root) {\r\n this.$i18n = mergeToRoot(vuei18n, optionsI18n);\r\n }\r\n else {\r\n optionsI18n.__injectWithOption = true;\r\n this.$i18n = createVueI18n(optionsI18n);\r\n }\r\n }\r\n else if (options.__i18n) {\r\n if (this === this.$root) {\r\n this.$i18n = mergeToRoot(vuei18n, options);\r\n }\r\n else {\r\n this.$i18n = createVueI18n({\r\n __i18n: options.__i18n,\r\n __injectWithOption: true,\r\n __root: composer\r\n });\r\n }\r\n }\r\n else {\r\n // set global\r\n this.$i18n = vuei18n;\r\n }\r\n if (options.__i18nGlobal) {\r\n adjustI18nResources(composer, options, options);\r\n }\r\n vuei18n.__onComponentInstanceCreated(this.$i18n);\r\n i18n.__setInstance(instance, this.$i18n);\r\n // defines vue-i18n legacy APIs\r\n this.$t = (...args) => this.$i18n.t(...args);\r\n this.$rt = (...args) => this.$i18n.rt(...args);\r\n this.$tc = (...args) => this.$i18n.tc(...args);\r\n this.$te = (key, locale) => this.$i18n.te(key, locale);\r\n this.$d = (...args) => this.$i18n.d(...args);\r\n this.$n = (...args) => this.$i18n.n(...args);\r\n this.$tm = (key) => this.$i18n.tm(key);\r\n },\r\n mounted() {\r\n /* istanbul ignore if */\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n this.$el &&\r\n this.$i18n) {\r\n this.$el.__VUE_I18N__ = this.$i18n.__composer;\r\n const emitter = (this.__v_emitter =\r\n createEmitter());\r\n const _vueI18n = this.$i18n;\r\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n },\r\n unmounted() {\r\n const instance = getCurrentInstance();\r\n /* istanbul ignore if */\r\n if (!instance) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n /* istanbul ignore if */\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n this.$el &&\r\n this.$el.__VUE_I18N__) {\r\n if (this.__v_emitter) {\r\n this.__v_emitter.off('*', addTimelineEvent);\r\n delete this.__v_emitter;\r\n }\r\n if (this.$i18n) {\r\n const _vueI18n = this.$i18n;\r\n _vueI18n.__disableEmitter && _vueI18n.__disableEmitter();\r\n delete this.$el.__VUE_I18N__;\r\n }\r\n }\r\n delete this.$t;\r\n delete this.$rt;\r\n delete this.$tc;\r\n delete this.$te;\r\n delete this.$d;\r\n delete this.$n;\r\n delete this.$tm;\r\n i18n.__deleteInstance(instance);\r\n delete this.$i18n;\r\n }\r\n };\r\n}\r\nfunction mergeToRoot(root, options) {\r\n root.locale = options.locale || root.locale;\r\n root.fallbackLocale = options.fallbackLocale || root.fallbackLocale;\r\n root.missing = options.missing || root.missing;\r\n root.silentTranslationWarn =\r\n options.silentTranslationWarn || root.silentFallbackWarn;\r\n root.silentFallbackWarn =\r\n options.silentFallbackWarn || root.silentFallbackWarn;\r\n root.formatFallbackMessages =\r\n options.formatFallbackMessages || root.formatFallbackMessages;\r\n root.postTranslation = options.postTranslation || root.postTranslation;\r\n root.warnHtmlInMessage = options.warnHtmlInMessage || root.warnHtmlInMessage;\r\n root.escapeParameterHtml =\r\n options.escapeParameterHtml || root.escapeParameterHtml;\r\n root.sync = options.sync || root.sync;\r\n root.__composer[SetPluralRulesSymbol](options.pluralizationRules || root.pluralizationRules);\r\n const messages = getLocaleMessages(root.locale, {\r\n messages: options.messages,\r\n __i18n: options.__i18n\r\n });\r\n Object.keys(messages).forEach(locale => root.mergeLocaleMessage(locale, messages[locale]));\r\n if (options.datetimeFormats) {\r\n Object.keys(options.datetimeFormats).forEach(locale => root.mergeDateTimeFormat(locale, options.datetimeFormats[locale]));\r\n }\r\n if (options.numberFormats) {\r\n Object.keys(options.numberFormats).forEach(locale => root.mergeNumberFormat(locale, options.numberFormats[locale]));\r\n }\r\n return root;\r\n}\n\n/**\r\n * Injection key for {@link useI18n}\r\n *\r\n * @remarks\r\n * The global injection key for I18n instances with `useI18n`. this injection key is used in Web Components.\r\n * Specify the i18n instance created by {@link createI18n} together with `provide` function.\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst I18nInjectionKey = \r\n/* #__PURE__*/ makeSymbol('global-vue-i18n');\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\nfunction createI18n(options = {}, VueI18nLegacy) {\r\n // prettier-ignore\r\n const __legacyMode = __VUE_I18N_LEGACY_API__ && isBoolean(options.legacy)\r\n ? options.legacy\r\n : __VUE_I18N_LEGACY_API__;\r\n // prettier-ignore\r\n const __globalInjection = isBoolean(options.globalInjection)\r\n ? options.globalInjection\r\n : true;\r\n // prettier-ignore\r\n const __allowComposition = __VUE_I18N_LEGACY_API__ && __legacyMode\r\n ? !!options.allowComposition\r\n : true;\r\n const __instances = new Map();\r\n const [globalScope, __global] = createGlobal(options, __legacyMode);\r\n const symbol = makeSymbol((process.env.NODE_ENV !== 'production') ? 'vue-i18n' : '');\r\n function __getInstance(component) {\r\n return __instances.get(component) || null;\r\n }\r\n function __setInstance(component, instance) {\r\n __instances.set(component, instance);\r\n }\r\n function __deleteInstance(component) {\r\n __instances.delete(component);\r\n }\r\n {\r\n const i18n = {\r\n // mode\r\n get mode() {\r\n return __VUE_I18N_LEGACY_API__ && __legacyMode\r\n ? 'legacy'\r\n : 'composition';\r\n },\r\n // allowComposition\r\n get allowComposition() {\r\n return __allowComposition;\r\n },\r\n // install plugin\r\n async install(app, ...options) {\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false) {\r\n app.__VUE_I18N__ = i18n;\r\n }\r\n // setup global provider\r\n app.__VUE_I18N_SYMBOL__ = symbol;\r\n app.provide(app.__VUE_I18N_SYMBOL__, i18n);\r\n // global method and properties injection for Composition API\r\n if (!__legacyMode && __globalInjection) {\r\n injectGlobalFields(app, i18n.global);\r\n }\r\n // install built-in components and directive\r\n if (__VUE_I18N_FULL_INSTALL__) {\r\n apply(app, i18n, ...options);\r\n }\r\n // setup mixin for Legacy API\r\n if (__VUE_I18N_LEGACY_API__ && __legacyMode) {\r\n app.mixin(defineMixin(__global, __global.__composer, i18n));\r\n }\r\n // release global scope\r\n const unmountApp = app.unmount;\r\n app.unmount = () => {\r\n i18n.dispose();\r\n unmountApp();\r\n };\r\n // setup vue-devtools plugin\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\r\n const ret = await enableDevTools(app, i18n);\r\n if (!ret) {\r\n throw createI18nError(I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN);\r\n }\r\n const emitter = createEmitter();\r\n if (__legacyMode) {\r\n const _vueI18n = __global;\r\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = __global;\r\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\r\n }\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n },\r\n // global accessor\r\n get global() {\r\n return __global;\r\n },\r\n dispose() {\r\n globalScope.stop();\r\n },\r\n // @internal\r\n __instances,\r\n // @internal\r\n __getInstance,\r\n // @internal\r\n __setInstance,\r\n // @internal\r\n __deleteInstance\r\n };\r\n return i18n;\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nfunction useI18n(options = {}) {\r\n const instance = getCurrentInstance();\r\n if (instance == null) {\r\n throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP);\r\n }\r\n if (!instance.isCE &&\r\n instance.appContext.app != null &&\r\n !instance.appContext.app.__VUE_I18N_SYMBOL__) {\r\n throw createI18nError(I18nErrorCodes.NOT_INSLALLED);\r\n }\r\n const i18n = getI18nInstance(instance);\r\n const global = getGlobalComposer(i18n);\r\n const componentOptions = getComponentOptions(instance);\r\n const scope = getScope(options, componentOptions);\r\n if (__VUE_I18N_LEGACY_API__) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (i18n.mode === 'legacy' && !options.__useComponent) {\r\n if (!i18n.allowComposition) {\r\n throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE);\r\n }\r\n return useI18nForLegacy(instance, scope, global, options);\r\n }\r\n }\r\n if (scope === 'global') {\r\n adjustI18nResources(global, options, componentOptions);\r\n return global;\r\n }\r\n if (scope === 'parent') {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let composer = getComposer(i18n, instance, options.__useComponent);\r\n if (composer == null) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_FOUND_PARENT_SCOPE));\r\n }\r\n composer = global;\r\n }\r\n return composer;\r\n }\r\n const i18nInternal = i18n;\r\n let composer = i18nInternal.__getInstance(instance);\r\n if (composer == null) {\r\n const composerOptions = assign({}, options);\r\n if ('__i18n' in componentOptions) {\r\n composerOptions.__i18n = componentOptions.__i18n;\r\n }\r\n if (global) {\r\n composerOptions.__root = global;\r\n }\r\n composer = createComposer(composerOptions);\r\n setupLifeCycle(i18nInternal, instance, composer);\r\n i18nInternal.__setInstance(instance, composer);\r\n }\r\n return composer;\r\n}\r\n/**\r\n * Cast to VueI18n legacy compatible type\r\n *\r\n * @remarks\r\n * This API is provided only with [vue-i18n-bridge](https://vue-i18n.intlify.dev/guide/migration/ways.html#what-is-vue-i18n-bridge).\r\n *\r\n * The purpose of this function is to convert an {@link I18n} instance created with {@link createI18n | createI18n(legacy: true)} into a `vue-i18n@v8.x` compatible instance of `new VueI18n` in a TypeScript environment.\r\n *\r\n * @param i18n - An instance of {@link I18n}\r\n * @returns A i18n instance which is casted to {@link VueI18n} type\r\n *\r\n * @VueI18nTip\r\n * :new: provided by **vue-i18n-bridge only**\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst castToVueI18n = (i18n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n) => {\r\n if (!(__VUE_I18N_BRIDGE__ in i18n)) {\r\n throw createI18nError(I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N);\r\n }\r\n return i18n;\r\n};\r\nfunction createGlobal(options, legacyMode, VueI18nLegacy // eslint-disable-line @typescript-eslint/no-explicit-any\r\n) {\r\n const scope = effectScope();\r\n {\r\n const obj = __VUE_I18N_LEGACY_API__ && legacyMode\r\n ? scope.run(() => createVueI18n(options))\r\n : scope.run(() => createComposer(options));\r\n if (obj == null) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n return [scope, obj];\r\n }\r\n}\r\nfunction getI18nInstance(instance) {\r\n {\r\n const i18n = inject(!instance.isCE\r\n ? instance.appContext.app.__VUE_I18N_SYMBOL__\r\n : I18nInjectionKey);\r\n /* istanbul ignore if */\r\n if (!i18n) {\r\n throw createI18nError(!instance.isCE\r\n ? I18nErrorCodes.UNEXPECTED_ERROR\r\n : I18nErrorCodes.NOT_INSLALLED_WITH_PROVIDE);\r\n }\r\n return i18n;\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getScope(options, componentOptions) {\r\n // prettier-ignore\r\n return isEmptyObject(options)\r\n ? ('__i18n' in componentOptions)\r\n ? 'local'\r\n : 'global'\r\n : !options.useScope\r\n ? 'local'\r\n : options.useScope;\r\n}\r\nfunction getGlobalComposer(i18n) {\r\n // prettier-ignore\r\n return i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer\r\n ;\r\n}\r\nfunction getComposer(i18n, target, useComponent = false) {\r\n let composer = null;\r\n const root = target.root;\r\n let current = target.parent;\r\n while (current != null) {\r\n const i18nInternal = i18n;\r\n if (i18n.mode === 'composition') {\r\n composer = i18nInternal.__getInstance(current);\r\n }\r\n else {\r\n if (__VUE_I18N_LEGACY_API__) {\r\n const vueI18n = i18nInternal.__getInstance(current);\r\n if (vueI18n != null) {\r\n composer = vueI18n\r\n .__composer;\r\n if (useComponent &&\r\n composer &&\r\n !composer[InejctWithOption] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n composer = null;\r\n }\r\n }\r\n }\r\n }\r\n if (composer != null) {\r\n break;\r\n }\r\n if (root === current) {\r\n break;\r\n }\r\n current = current.parent;\r\n }\r\n return composer;\r\n}\r\nfunction setupLifeCycle(i18n, target, composer) {\r\n let emitter = null;\r\n {\r\n onMounted(() => {\r\n // inject composer instance to DOM for intlify-devtools\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n target.vnode.el) {\r\n target.vnode.el.__VUE_I18N__ = composer;\r\n emitter = createEmitter();\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = composer;\r\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n }, target);\r\n onUnmounted(() => {\r\n // remove composer instance from DOM for intlify-devtools\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n target.vnode.el &&\r\n target.vnode.el.__VUE_I18N__) {\r\n emitter && emitter.off('*', addTimelineEvent);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = composer;\r\n _composer[DisableEmitter] && _composer[DisableEmitter]();\r\n delete target.vnode.el.__VUE_I18N__;\r\n }\r\n i18n.__deleteInstance(target);\r\n }, target);\r\n }\r\n}\r\nfunction useI18nForLegacy(instance, scope, root, options = {} // eslint-disable-line @typescript-eslint/no-explicit-any\r\n) {\r\n const isLocale = scope === 'local';\r\n const _composer = shallowRef(null);\r\n if (isLocale &&\r\n instance.proxy &&\r\n !(instance.proxy.$options.i18n || instance.proxy.$options.__i18n)) {\r\n throw createI18nError(I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);\r\n }\r\n const _inheritLocale = isBoolean(options.inheritLocale)\r\n ? options.inheritLocale\r\n : true;\r\n const _locale = ref(\r\n // prettier-ignore\r\n isLocale && _inheritLocale\r\n ? root.locale.value\r\n : isString(options.locale)\r\n ? options.locale\r\n : DEFAULT_LOCALE);\r\n const _fallbackLocale = ref(\r\n // prettier-ignore\r\n isLocale && _inheritLocale\r\n ? root.fallbackLocale.value\r\n : isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : _locale.value);\r\n const _messages = ref(getLocaleMessages(_locale.value, options));\r\n // prettier-ignore\r\n const _datetimeFormats = ref(isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [_locale.value]: {} });\r\n // prettier-ignore\r\n const _numberFormats = ref(isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [_locale.value]: {} });\r\n // prettier-ignore\r\n const _missingWarn = isLocale\r\n ? root.missingWarn\r\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n // prettier-ignore\r\n const _fallbackWarn = isLocale\r\n ? root.fallbackWarn\r\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n // prettier-ignore\r\n const _fallbackRoot = isLocale\r\n ? root.fallbackRoot\r\n : isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n // configure fall back to root\r\n const _fallbackFormat = !!options.fallbackFormat;\r\n // runtime missing\r\n const _missing = isFunction(options.missing) ? options.missing : null;\r\n // postTranslation handler\r\n const _postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n // prettier-ignore\r\n const _warnHtmlMessage = isLocale\r\n ? root.warnHtmlMessage\r\n : isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n const _escapeParameter = !!options.escapeParameter;\r\n // prettier-ignore\r\n const _modifiers = isLocale\r\n ? root.modifiers\r\n : isPlainObject(options.modifiers)\r\n ? options.modifiers\r\n : {};\r\n // pluralRules\r\n const _pluralRules = options.pluralRules || (isLocale && root.pluralRules);\r\n // track reactivity\r\n function trackReactivityValues() {\r\n return [\r\n _locale.value,\r\n _fallbackLocale.value,\r\n _messages.value,\r\n _datetimeFormats.value,\r\n _numberFormats.value\r\n ];\r\n }\r\n // locale\r\n const locale = computed({\r\n get: () => {\r\n return _composer.value ? _composer.value.locale.value : _locale.value;\r\n },\r\n set: val => {\r\n if (_composer.value) {\r\n _composer.value.locale.value = val;\r\n }\r\n _locale.value = val;\r\n }\r\n });\r\n // fallbackLocale\r\n const fallbackLocale = computed({\r\n get: () => {\r\n return _composer.value\r\n ? _composer.value.fallbackLocale.value\r\n : _fallbackLocale.value;\r\n },\r\n set: val => {\r\n if (_composer.value) {\r\n _composer.value.fallbackLocale.value = val;\r\n }\r\n _fallbackLocale.value = val;\r\n }\r\n });\r\n // messages\r\n const messages = computed(() => {\r\n if (_composer.value) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return _composer.value.messages.value;\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return _messages.value;\r\n }\r\n });\r\n const datetimeFormats = computed(() => _datetimeFormats.value);\r\n const numberFormats = computed(() => _numberFormats.value);\r\n function getPostTranslationHandler() {\r\n return _composer.value\r\n ? _composer.value.getPostTranslationHandler()\r\n : _postTranslation;\r\n }\r\n function setPostTranslationHandler(handler) {\r\n if (_composer.value) {\r\n _composer.value.setPostTranslationHandler(handler);\r\n }\r\n }\r\n function getMissingHandler() {\r\n return _composer.value ? _composer.value.getMissingHandler() : _missing;\r\n }\r\n function setMissingHandler(handler) {\r\n if (_composer.value) {\r\n _composer.value.setMissingHandler(handler);\r\n }\r\n }\r\n function warpWithDeps(fn) {\r\n trackReactivityValues();\r\n return fn();\r\n }\r\n function t(...args) {\r\n return _composer.value\r\n ? warpWithDeps(() => Reflect.apply(_composer.value.t, null, [...args]))\r\n : warpWithDeps(() => '');\r\n }\r\n function rt(...args) {\r\n return _composer.value\r\n ? Reflect.apply(_composer.value.rt, null, [...args])\r\n : '';\r\n }\r\n function d(...args) {\r\n return _composer.value\r\n ? warpWithDeps(() => Reflect.apply(_composer.value.d, null, [...args]))\r\n : warpWithDeps(() => '');\r\n }\r\n function n(...args) {\r\n return _composer.value\r\n ? warpWithDeps(() => Reflect.apply(_composer.value.n, null, [...args]))\r\n : warpWithDeps(() => '');\r\n }\r\n function tm(key) {\r\n return _composer.value ? _composer.value.tm(key) : {};\r\n }\r\n function te(key, locale) {\r\n return _composer.value ? _composer.value.te(key, locale) : false;\r\n }\r\n function getLocaleMessage(locale) {\r\n return _composer.value ? _composer.value.getLocaleMessage(locale) : {};\r\n }\r\n function setLocaleMessage(locale, message) {\r\n if (_composer.value) {\r\n _composer.value.setLocaleMessage(locale, message);\r\n _messages.value[locale] = message;\r\n }\r\n }\r\n function mergeLocaleMessage(locale, message) {\r\n if (_composer.value) {\r\n _composer.value.mergeLocaleMessage(locale, message);\r\n }\r\n }\r\n function getDateTimeFormat(locale) {\r\n return _composer.value ? _composer.value.getDateTimeFormat(locale) : {};\r\n }\r\n function setDateTimeFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.setDateTimeFormat(locale, format);\r\n _datetimeFormats.value[locale] = format;\r\n }\r\n }\r\n function mergeDateTimeFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.mergeDateTimeFormat(locale, format);\r\n }\r\n }\r\n function getNumberFormat(locale) {\r\n return _composer.value ? _composer.value.getNumberFormat(locale) : {};\r\n }\r\n function setNumberFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.setNumberFormat(locale, format);\r\n _numberFormats.value[locale] = format;\r\n }\r\n }\r\n function mergeNumberFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.mergeNumberFormat(locale, format);\r\n }\r\n }\r\n const wrapper = {\r\n get id() {\r\n return _composer.value ? _composer.value.id : -1;\r\n },\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n datetimeFormats,\r\n numberFormats,\r\n get inheritLocale() {\r\n return _composer.value ? _composer.value.inheritLocale : _inheritLocale;\r\n },\r\n set inheritLocale(val) {\r\n if (_composer.value) {\r\n _composer.value.inheritLocale = val;\r\n }\r\n },\r\n get availableLocales() {\r\n return _composer.value\r\n ? _composer.value.availableLocales\r\n : Object.keys(_messages.value);\r\n },\r\n get modifiers() {\r\n return (_composer.value ? _composer.value.modifiers : _modifiers);\r\n },\r\n get pluralRules() {\r\n return (_composer.value ? _composer.value.pluralRules : _pluralRules);\r\n },\r\n get isGlobal() {\r\n return _composer.value ? _composer.value.isGlobal : false;\r\n },\r\n get missingWarn() {\r\n return _composer.value ? _composer.value.missingWarn : _missingWarn;\r\n },\r\n set missingWarn(val) {\r\n if (_composer.value) {\r\n _composer.value.missingWarn = val;\r\n }\r\n },\r\n get fallbackWarn() {\r\n return _composer.value ? _composer.value.fallbackWarn : _fallbackWarn;\r\n },\r\n set fallbackWarn(val) {\r\n if (_composer.value) {\r\n _composer.value.missingWarn = val;\r\n }\r\n },\r\n get fallbackRoot() {\r\n return _composer.value ? _composer.value.fallbackRoot : _fallbackRoot;\r\n },\r\n set fallbackRoot(val) {\r\n if (_composer.value) {\r\n _composer.value.fallbackRoot = val;\r\n }\r\n },\r\n get fallbackFormat() {\r\n return _composer.value ? _composer.value.fallbackFormat : _fallbackFormat;\r\n },\r\n set fallbackFormat(val) {\r\n if (_composer.value) {\r\n _composer.value.fallbackFormat = val;\r\n }\r\n },\r\n get warnHtmlMessage() {\r\n return _composer.value\r\n ? _composer.value.warnHtmlMessage\r\n : _warnHtmlMessage;\r\n },\r\n set warnHtmlMessage(val) {\r\n if (_composer.value) {\r\n _composer.value.warnHtmlMessage = val;\r\n }\r\n },\r\n get escapeParameter() {\r\n return _composer.value\r\n ? _composer.value.escapeParameter\r\n : _escapeParameter;\r\n },\r\n set escapeParameter(val) {\r\n if (_composer.value) {\r\n _composer.value.escapeParameter = val;\r\n }\r\n },\r\n t,\r\n getPostTranslationHandler,\r\n setPostTranslationHandler,\r\n getMissingHandler,\r\n setMissingHandler,\r\n rt,\r\n d,\r\n n,\r\n tm,\r\n te,\r\n getLocaleMessage,\r\n setLocaleMessage,\r\n mergeLocaleMessage,\r\n getDateTimeFormat,\r\n setDateTimeFormat,\r\n mergeDateTimeFormat,\r\n getNumberFormat,\r\n setNumberFormat,\r\n mergeNumberFormat\r\n };\r\n function sync(composer) {\r\n composer.locale.value = _locale.value;\r\n composer.fallbackLocale.value = _fallbackLocale.value;\r\n Object.keys(_messages.value).forEach(locale => {\r\n composer.mergeLocaleMessage(locale, _messages.value[locale]);\r\n });\r\n Object.keys(_datetimeFormats.value).forEach(locale => {\r\n composer.mergeDateTimeFormat(locale, _datetimeFormats.value[locale]);\r\n });\r\n Object.keys(_numberFormats.value).forEach(locale => {\r\n composer.mergeNumberFormat(locale, _numberFormats.value[locale]);\r\n });\r\n composer.escapeParameter = _escapeParameter;\r\n composer.fallbackFormat = _fallbackFormat;\r\n composer.fallbackRoot = _fallbackRoot;\r\n composer.fallbackWarn = _fallbackWarn;\r\n composer.missingWarn = _missingWarn;\r\n composer.warnHtmlMessage = _warnHtmlMessage;\r\n }\r\n onBeforeMount(() => {\r\n if (instance.proxy == null || instance.proxy.$i18n == null) {\r\n throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const composer = (_composer.value = instance.proxy.$i18n\r\n .__composer);\r\n if (scope === 'global') {\r\n _locale.value = composer.locale.value;\r\n _fallbackLocale.value = composer.fallbackLocale.value;\r\n _messages.value = composer.messages.value;\r\n _datetimeFormats.value = composer.datetimeFormats.value;\r\n _numberFormats.value = composer.numberFormats.value;\r\n }\r\n else if (isLocale) {\r\n sync(composer);\r\n }\r\n });\r\n return wrapper;\r\n}\r\nconst globalExportProps = [\r\n 'locale',\r\n 'fallbackLocale',\r\n 'availableLocales'\r\n];\r\nconst globalExportMethods = ['t', 'rt', 'd', 'n', 'tm'] ;\r\nfunction injectGlobalFields(app, composer) {\r\n const i18n = Object.create(null);\r\n globalExportProps.forEach(prop => {\r\n const desc = Object.getOwnPropertyDescriptor(composer, prop);\r\n if (!desc) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n const wrap = isRef(desc.value) // check computed props\r\n ? {\r\n get() {\r\n return desc.value.value;\r\n },\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n set(val) {\r\n desc.value.value = val;\r\n }\r\n }\r\n : {\r\n get() {\r\n return desc.get && desc.get();\r\n }\r\n };\r\n Object.defineProperty(i18n, prop, wrap);\r\n });\r\n app.config.globalProperties.$i18n = i18n;\r\n globalExportMethods.forEach(method => {\r\n const desc = Object.getOwnPropertyDescriptor(composer, method);\r\n if (!desc || !desc.value) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n Object.defineProperty(app.config.globalProperties, `$${method}`, desc);\r\n });\r\n}\n\n// register message compiler at vue-i18n\r\nregisterMessageCompiler(compileToFunction);\r\n// register message resolver at vue-i18n\r\nregisterMessageResolver(resolveValue);\r\n// register fallback locale at vue-i18n\r\nregisterLocaleFallbacker(fallbackWithLocaleChain);\r\n{\r\n initFeatureFlags();\r\n}\r\n// NOTE: experimental !!\r\nif ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n const target = getGlobalThis();\r\n target.__INTLIFY__ = true;\r\n setDevToolsHook(target.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__);\r\n}\r\nif ((process.env.NODE_ENV !== 'production')) ;\n\nexport { DatetimeFormat, I18nInjectionKey, NumberFormat, Translation, VERSION, castToVueI18n, createI18n, useI18n, vTDirective };\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var Clipboard = require('clipboard/dist/clipboard.min.js') // FIXME: workaround for browserify\n\nvar VueClipboardConfig = {\n autoSetContainer: false,\n appendToBody: true // This fixes IE, see #50\n}\n\nvar VueClipboard = {\n install: function (Vue) {\n var globalPrototype = Vue.version.slice(0, 2) === '3.' ? Vue.config.globalProperties : Vue.prototype\n globalPrototype.$clipboardConfig = VueClipboardConfig\n globalPrototype.$copyText = function (text, container) {\n return new Promise(function (resolve, reject) {\n var fakeElement = document.createElement('button')\n var clipboard = new Clipboard(fakeElement, {\n text: function () { return text },\n action: function () { return 'copy' },\n container: typeof container === 'object' ? container : document.body\n })\n clipboard.on('success', function (e) {\n clipboard.destroy()\n resolve(e)\n })\n clipboard.on('error', function (e) {\n clipboard.destroy()\n reject(e)\n })\n if (VueClipboardConfig.appendToBody) document.body.appendChild(fakeElement)\n fakeElement.click()\n if (VueClipboardConfig.appendToBody) document.body.removeChild(fakeElement)\n })\n }\n\n Vue.directive('clipboard', {\n bind: function (el, binding, vnode) {\n if (binding.arg === 'success') {\n el._vClipboard_success = binding.value\n } else if (binding.arg === 'error') {\n el._vClipboard_error = binding.value\n } else {\n var clipboard = new Clipboard(el, {\n text: function () { return binding.value },\n action: function () { return binding.arg === 'cut' ? 'cut' : 'copy' },\n container: VueClipboardConfig.autoSetContainer ? el : undefined\n })\n clipboard.on('success', function (e) {\n var callback = el._vClipboard_success\n callback && callback(e)\n })\n clipboard.on('error', function (e) {\n var callback = el._vClipboard_error\n callback && callback(e)\n })\n el._vClipboard = clipboard\n }\n },\n update: function (el, binding) {\n if (binding.arg === 'success') {\n el._vClipboard_success = binding.value\n } else if (binding.arg === 'error') {\n el._vClipboard_error = binding.value\n } else {\n el._vClipboard.text = function () { return binding.value }\n el._vClipboard.action = function () { return binding.arg === 'cut' ? 'cut' : 'copy' }\n }\n },\n unbind: function (el, binding) {\n // FIXME: investigate why $element._vClipboard was missing\n if (!el._vClipboard) return\n if (binding.arg === 'success') {\n delete el._vClipboard_success\n } else if (binding.arg === 'error') {\n delete el._vClipboard_error\n } else {\n el._vClipboard.destroy()\n delete el._vClipboard\n }\n }\n })\n },\n config: VueClipboardConfig\n}\n\nif (typeof exports === 'object') {\n module.exports = VueClipboard\n} else if (typeof define === 'function' && define.amd) {\n define([], function () {\n return VueClipboard\n })\n}\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","let supported;\nlet perf;\nexport function isPerformanceSupported() {\n var _a;\n if (supported !== undefined) {\n return supported;\n }\n if (typeof window !== 'undefined' && window.performance) {\n supported = true;\n perf = window.performance;\n }\n else if (typeof global !== 'undefined' && ((_a = global.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) {\n supported = true;\n perf = global.perf_hooks.performance;\n }\n else {\n supported = false;\n }\n return supported;\n}\nexport function now() {\n return isPerformanceSupported() ? perf.now() : Date.now();\n}\n","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction extend(target, src) {\n var noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n }).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\n\nfunction needsNavigation(props) {\n if (props === void 0) {\n props = {};\n }\n\n return props.navigation && typeof props.navigation.nextEl === 'undefined' && typeof props.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(props) {\n if (props === void 0) {\n props = {};\n }\n\n return props.pagination && typeof props.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(props) {\n if (props === void 0) {\n props = {};\n }\n\n return props.scrollbar && typeof props.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n\n var classes = classNames.split(' ').map(function (c) {\n return c.trim();\n }).filter(function (c) {\n return !!c;\n });\n var unique = [];\n classes.forEach(function (c) {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\n\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","/*!\n * vuex v4.1.0\n * (c) 2022 Evan You\n * @license MIT\n */\nimport { inject, effectScope, reactive, watch, computed } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nvar storeKey = 'store';\n\nfunction useStore (key) {\n if ( key === void 0 ) key = null;\n\n return inject(key !== null ? key : storeKey)\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset state\n resetStoreState(store, state, hot);\n}\n\nfunction resetStoreState (store, state, hot) {\n var oldState = store._state;\n var oldScope = store._scope;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computedObj = {};\n var computedCache = {};\n\n // create a new effect scope and create computed object inside it to avoid\n // getters (computed) getting destroyed on component unmount.\n var scope = effectScope(true);\n\n scope.run(function () {\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldState.\n // using partial to return function with only arguments preserved in closure environment.\n computedObj[key] = partial(fn, store);\n computedCache[key] = computed(function () { return computedObj[key](); });\n Object.defineProperty(store.getters, key, {\n get: function () { return computedCache[key].value; },\n enumerable: true // for local getters\n });\n });\n });\n\n store._state = reactive({\n data: state\n });\n\n // register the newly created effect scope to the store so that we can\n // dispose the effects when this method runs again in the future.\n store._scope = scope;\n\n // enable strict mode for new state\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldState) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldState.data = null;\n });\n }\n }\n\n // dispose previously registered effect scope if there is one.\n if (oldScope) {\n oldScope.stop();\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && true) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n parentState[moduleName] = module.state;\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if (!store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if (!store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by state update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n watch(function () { return store._state.data; }, function () {\n {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, flush: 'sync' });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nvar LABEL_VUEX_BINDINGS = 'vuex bindings';\nvar MUTATIONS_LAYER_ID = 'vuex:mutations';\nvar ACTIONS_LAYER_ID = 'vuex:actions';\nvar INSPECTOR_ID = 'vuex';\n\nvar actionId = 0;\n\nfunction addDevtools (app, store) {\n setupDevtoolsPlugin(\n {\n id: 'org.vuejs.vuex',\n app: app,\n label: 'Vuex',\n homepage: 'https://next.vuex.vuejs.org/',\n logo: 'https://vuejs.org/images/icons/favicon-96x96.png',\n packageName: 'vuex',\n componentStateTypes: [LABEL_VUEX_BINDINGS]\n },\n function (api) {\n api.addTimelineLayer({\n id: MUTATIONS_LAYER_ID,\n label: 'Vuex Mutations',\n color: COLOR_LIME_500\n });\n\n api.addTimelineLayer({\n id: ACTIONS_LAYER_ID,\n label: 'Vuex Actions',\n color: COLOR_LIME_500\n });\n\n api.addInspector({\n id: INSPECTOR_ID,\n label: 'Vuex',\n icon: 'storage',\n treeFilterPlaceholder: 'Filter stores...'\n });\n\n api.on.getInspectorTree(function (payload) {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n if (payload.filter) {\n var nodes = [];\n flattenStoreForInspectorTree(nodes, store._modules.root, payload.filter, '');\n payload.rootNodes = nodes;\n } else {\n payload.rootNodes = [\n formatStoreForInspectorTree(store._modules.root, '')\n ];\n }\n }\n });\n\n api.on.getInspectorState(function (payload) {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n var modulePath = payload.nodeId;\n makeLocalGetters(store, modulePath);\n payload.state = formatStoreForInspectorState(\n getStoreModule(store._modules, modulePath),\n modulePath === 'root' ? store.getters : store._makeLocalGettersCache,\n modulePath\n );\n }\n });\n\n api.on.editInspectorState(function (payload) {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n var modulePath = payload.nodeId;\n var path = payload.path;\n if (modulePath !== 'root') {\n path = modulePath.split('/').filter(Boolean).concat( path);\n }\n store._withCommit(function () {\n payload.set(store._state.data, path, payload.state.value);\n });\n }\n });\n\n store.subscribe(function (mutation, state) {\n var data = {};\n\n if (mutation.payload) {\n data.payload = mutation.payload;\n }\n\n data.state = state;\n\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: Date.now(),\n title: mutation.type,\n data: data\n }\n });\n });\n\n store.subscribeAction({\n before: function (action, state) {\n var data = {};\n if (action.payload) {\n data.payload = action.payload;\n }\n action._id = actionId++;\n action._time = Date.now();\n data.state = state;\n\n api.addTimelineEvent({\n layerId: ACTIONS_LAYER_ID,\n event: {\n time: action._time,\n title: action.type,\n groupId: action._id,\n subtitle: 'start',\n data: data\n }\n });\n },\n after: function (action, state) {\n var data = {};\n var duration = Date.now() - action._time;\n data.duration = {\n _custom: {\n type: 'duration',\n display: (duration + \"ms\"),\n tooltip: 'Action duration',\n value: duration\n }\n };\n if (action.payload) {\n data.payload = action.payload;\n }\n data.state = state;\n\n api.addTimelineEvent({\n layerId: ACTIONS_LAYER_ID,\n event: {\n time: Date.now(),\n title: action.type,\n groupId: action._id,\n subtitle: 'end',\n data: data\n }\n });\n }\n });\n }\n );\n}\n\n// extracted from tailwind palette\nvar COLOR_LIME_500 = 0x84cc16;\nvar COLOR_DARK = 0x666666;\nvar COLOR_WHITE = 0xffffff;\n\nvar TAG_NAMESPACED = {\n label: 'namespaced',\n textColor: COLOR_WHITE,\n backgroundColor: COLOR_DARK\n};\n\n/**\n * @param {string} path\n */\nfunction extractNameFromPath (path) {\n return path && path !== 'root' ? path.split('/').slice(-2, -1)[0] : 'Root'\n}\n\n/**\n * @param {*} module\n * @return {import('@vue/devtools-api').CustomInspectorNode}\n */\nfunction formatStoreForInspectorTree (module, path) {\n return {\n id: path || 'root',\n // all modules end with a `/`, we want the last segment only\n // cart/ -> cart\n // nested/cart/ -> cart\n label: extractNameFromPath(path),\n tags: module.namespaced ? [TAG_NAMESPACED] : [],\n children: Object.keys(module._children).map(function (moduleName) { return formatStoreForInspectorTree(\n module._children[moduleName],\n path + moduleName + '/'\n ); }\n )\n }\n}\n\n/**\n * @param {import('@vue/devtools-api').CustomInspectorNode[]} result\n * @param {*} module\n * @param {string} filter\n * @param {string} path\n */\nfunction flattenStoreForInspectorTree (result, module, filter, path) {\n if (path.includes(filter)) {\n result.push({\n id: path || 'root',\n label: path.endsWith('/') ? path.slice(0, path.length - 1) : path || 'Root',\n tags: module.namespaced ? [TAG_NAMESPACED] : []\n });\n }\n Object.keys(module._children).forEach(function (moduleName) {\n flattenStoreForInspectorTree(result, module._children[moduleName], filter, path + moduleName + '/');\n });\n}\n\n/**\n * @param {*} module\n * @return {import('@vue/devtools-api').CustomInspectorState}\n */\nfunction formatStoreForInspectorState (module, getters, path) {\n getters = path === 'root' ? getters : getters[path];\n var gettersKeys = Object.keys(getters);\n var storeState = {\n state: Object.keys(module.state).map(function (key) { return ({\n key: key,\n editable: true,\n value: module.state[key]\n }); })\n };\n\n if (gettersKeys.length) {\n var tree = transformPathsToObjectTree(getters);\n storeState.getters = Object.keys(tree).map(function (key) { return ({\n key: key.endsWith('/') ? extractNameFromPath(key) : key,\n editable: false,\n value: canThrow(function () { return tree[key]; })\n }); });\n }\n\n return storeState\n}\n\nfunction transformPathsToObjectTree (getters) {\n var result = {};\n Object.keys(getters).forEach(function (key) {\n var path = key.split('/');\n if (path.length > 1) {\n var target = result;\n var leafKey = path.pop();\n path.forEach(function (p) {\n if (!target[p]) {\n target[p] = {\n _custom: {\n value: {},\n display: p,\n tooltip: 'Module',\n abstract: true\n }\n };\n }\n target = target[p]._custom.value;\n });\n target[leafKey] = canThrow(function () { return getters[key]; });\n } else {\n result[key] = canThrow(function () { return getters[key]; });\n }\n });\n return result\n}\n\nfunction getStoreModule (moduleMap, path) {\n var names = path.split('/').filter(function (n) { return n; });\n return names.reduce(\n function (module, moduleName, i) {\n var child = module[moduleName];\n if (!child) {\n throw new Error((\"Missing module \\\"\" + moduleName + \"\\\" for path \\\"\" + path + \"\\\".\"))\n }\n return i === names.length - 1 ? child : child._children\n },\n path === 'root' ? moduleMap : moduleMap.root._children\n )\n}\n\nfunction canThrow (cb) {\n try {\n return cb()\n } catch (e) {\n return e\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors$1 = { namespaced: { configurable: true } };\n\nprototypeAccessors$1.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors$1 );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n if (parent) {\n return parent.hasChild(key)\n }\n\n return false\n};\n\nfunction update (path, targetModule, newModule) {\n {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nfunction createStore (options) {\n return new Store(options)\n}\n\nvar Store = function Store (options) {\n var this$1$1 = this;\n if ( options === void 0 ) options = {};\n\n {\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n var devtools = options.devtools;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._makeLocalGettersCache = Object.create(null);\n\n // EffectScope instance. when registering new getters, we wrap them inside\n // EffectScope so that getters (computed) would not be destroyed on\n // component unmount.\n this._scope = null;\n\n this._devtools = devtools;\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store state, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreState(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1$1); });\n};\n\nvar prototypeAccessors = { state: { configurable: true } };\n\nStore.prototype.install = function install (app, injectKey) {\n app.provide(injectKey || storeKey, this);\n app.config.globalProperties.$store = this;\n\n var useDevtools = this._devtools !== undefined\n ? this._devtools\n : true ;\n\n if (useDevtools) {\n addDevtools(app, this);\n }\n};\n\nprototypeAccessors.state.get = function () {\n return this._state.data\n};\n\nprototypeAccessors.state.set = function (v) {\n {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1$1.state); });\n\n if (\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1$1.state); });\n } catch (e) {\n {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1$1.state); });\n } catch (e) {\n {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1$1.state, error); });\n } catch (e) {\n {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch$1 (getter, cb, options) {\n var this$1$1 = this;\n\n {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return watch(function () { return getter(this$1$1.state, this$1$1.getters); }, cb, Object.assign({}, options))\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1$1 = this;\n\n this._withCommit(function () {\n this$1$1._state.data = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreState(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1$1.state, path.slice(0, -1));\n delete parentState[path[path.length - 1]];\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors );\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if (!isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if (!isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if (!isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if (!(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if (!isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if (!module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n version: '4.1.0',\n Store: Store,\n storeKey: storeKey,\n createStore: createStore,\n useStore: useStore,\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, createStore, mapActions, mapGetters, mapMutations, mapState, storeKey, useStore };\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.27.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.27.2/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, classesToSelector, createElementIfNotDefined } from '../../utils/utils';\nvar Pagination = {\n update: function update() {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el; // Current/Total\n\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', swiper.pagination.bulletSize * (params.dynamicMainBullets + 4) + \"px\");\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\n\n if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(params.bulletActiveClass + \" \" + params.bulletActiveClass + \"-next \" + params.bulletActiveClass + \"-next-next \" + params.bulletActiveClass + \"-prev \" + params.bulletActiveClass + \"-prev-prev \" + params.bulletActiveClass + \"-main\");\n\n if ($el.length > 1) {\n bullets.each(function (bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (bulletIndex === firstIndex) {\n $bullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n }\n\n if (bulletIndex === lastIndex) {\n $bullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n var bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (var _i = params.dynamicMainBullets; _i >= 0; _i -= 1) {\n bullets.eq(bullets.length - _i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(params.bulletActiveClass + \"-prev\");\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n }\n\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize;\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', bulletsOffset + \"px\");\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n var progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(\"translate3d(0,0,0) scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\").transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', $el[0]);\n } else {\n swiper.emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n render: function render() {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\" + params.bulletElement + \" class=\\\"\" + params.bulletClass + \"\\\">\";\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = \"\" + ' / ' + (\"\");\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"\";\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function init() {\n var swiper = this;\n swiper.params.pagination = createElementIfNotDefined(swiper.$el, swiper.params.pagination, swiper.params.createElements, {\n el: 'swiper-pagination'\n });\n var params = swiper.params.pagination;\n if (!params.el) return;\n var $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\" + params.modifierClass + params.type + \"-dynamic\");\n swiper.pagination.dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n extend(swiper.pagination, {\n $el: $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n};\nexport default {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function formatFractionCurrent(number) {\n return number;\n },\n formatFractionTotal: function formatFractionTotal(number) {\n return number;\n },\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-',\n // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable',\n // NEW\n lockClass: 'swiper-pagination-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n pagination: _extends({\n dynamicBulletIndex: 0\n }, Pagination)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function activeIndexChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function snapIndexChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function slidesLengthChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function snapGridLengthChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function destroy(swiper) {\n swiper.pagination.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var $el = swiper.pagination.$el;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n },\n click: function click(swiper, e) {\n var targetEl = e.target;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n swiper.emit('paginationShow');\n } else {\n swiper.emit('paginationHide');\n }\n\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n }\n }\n};","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","/*!\n * vue-router v4.1.6\n * (c) 2022 Eduardo San Martin Morote\n * @license MIT\n */\nimport { getCurrentInstance, inject, onUnmounted, onDeactivated, onActivated, computed, unref, watchEffect, defineComponent, reactive, h, provide, ref, watch, shallowRef, nextTick } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nconst isBrowser = typeof window !== 'undefined';\n\nfunction isESModule(obj) {\r\n return obj.__esModule || obj[Symbol.toStringTag] === 'Module';\r\n}\r\nconst assign = Object.assign;\r\nfunction applyToParams(fn, params) {\r\n const newParams = {};\r\n for (const key in params) {\r\n const value = params[key];\r\n newParams[key] = isArray(value)\r\n ? value.map(fn)\r\n : fn(value);\r\n }\r\n return newParams;\r\n}\r\nconst noop = () => { };\r\n/**\r\n * Typesafe alternative to Array.isArray\r\n * https://github.com/microsoft/TypeScript/pull/48228\r\n */\r\nconst isArray = Array.isArray;\n\nfunction warn(msg) {\r\n // avoid using ...args as it breaks in older Edge builds\r\n const args = Array.from(arguments).slice(1);\r\n console.warn.apply(console, ['[Vue Router warn]: ' + msg].concat(args));\r\n}\n\nconst TRAILING_SLASH_RE = /\\/$/;\r\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, '');\r\n/**\r\n * Transforms a URI into a normalized history location\r\n *\r\n * @param parseQuery\r\n * @param location - URI to normalize\r\n * @param currentLocation - current absolute location. Allows resolving relative\r\n * paths. Must start with `/`. Defaults to `/`\r\n * @returns a normalized history location\r\n */\r\nfunction parseURL(parseQuery, location, currentLocation = '/') {\r\n let path, query = {}, searchString = '', hash = '';\r\n // Could use URL and URLSearchParams but IE 11 doesn't support it\r\n // TODO: move to new URL()\r\n const hashPos = location.indexOf('#');\r\n let searchPos = location.indexOf('?');\r\n // the hash appears before the search, so it's not part of the search string\r\n if (hashPos < searchPos && hashPos >= 0) {\r\n searchPos = -1;\r\n }\r\n if (searchPos > -1) {\r\n path = location.slice(0, searchPos);\r\n searchString = location.slice(searchPos + 1, hashPos > -1 ? hashPos : location.length);\r\n query = parseQuery(searchString);\r\n }\r\n if (hashPos > -1) {\r\n path = path || location.slice(0, hashPos);\r\n // keep the # character\r\n hash = location.slice(hashPos, location.length);\r\n }\r\n // no search and no query\r\n path = resolveRelativePath(path != null ? path : location, currentLocation);\r\n // empty path means a relative query or hash `?foo=f`, `#thing`\r\n return {\r\n fullPath: path + (searchString && '?') + searchString + hash,\r\n path,\r\n query,\r\n hash,\r\n };\r\n}\r\n/**\r\n * Stringifies a URL object\r\n *\r\n * @param stringifyQuery\r\n * @param location\r\n */\r\nfunction stringifyURL(stringifyQuery, location) {\r\n const query = location.query ? stringifyQuery(location.query) : '';\r\n return location.path + (query && '?') + query + (location.hash || '');\r\n}\r\n/**\r\n * Strips off the base from the beginning of a location.pathname in a non-case-sensitive way.\r\n *\r\n * @param pathname - location.pathname\r\n * @param base - base to strip off\r\n */\r\nfunction stripBase(pathname, base) {\r\n // no base or base is not found at the beginning\r\n if (!base || !pathname.toLowerCase().startsWith(base.toLowerCase()))\r\n return pathname;\r\n return pathname.slice(base.length) || '/';\r\n}\r\n/**\r\n * Checks if two RouteLocation are equal. This means that both locations are\r\n * pointing towards the same {@link RouteRecord} and that all `params`, `query`\r\n * parameters and `hash` are the same\r\n *\r\n * @param a - first {@link RouteLocation}\r\n * @param b - second {@link RouteLocation}\r\n */\r\nfunction isSameRouteLocation(stringifyQuery, a, b) {\r\n const aLastIndex = a.matched.length - 1;\r\n const bLastIndex = b.matched.length - 1;\r\n return (aLastIndex > -1 &&\r\n aLastIndex === bLastIndex &&\r\n isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) &&\r\n isSameRouteLocationParams(a.params, b.params) &&\r\n stringifyQuery(a.query) === stringifyQuery(b.query) &&\r\n a.hash === b.hash);\r\n}\r\n/**\r\n * Check if two `RouteRecords` are equal. Takes into account aliases: they are\r\n * considered equal to the `RouteRecord` they are aliasing.\r\n *\r\n * @param a - first {@link RouteRecord}\r\n * @param b - second {@link RouteRecord}\r\n */\r\nfunction isSameRouteRecord(a, b) {\r\n // since the original record has an undefined value for aliasOf\r\n // but all aliases point to the original record, this will always compare\r\n // the original record\r\n return (a.aliasOf || a) === (b.aliasOf || b);\r\n}\r\nfunction isSameRouteLocationParams(a, b) {\r\n if (Object.keys(a).length !== Object.keys(b).length)\r\n return false;\r\n for (const key in a) {\r\n if (!isSameRouteLocationParamsValue(a[key], b[key]))\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction isSameRouteLocationParamsValue(a, b) {\r\n return isArray(a)\r\n ? isEquivalentArray(a, b)\r\n : isArray(b)\r\n ? isEquivalentArray(b, a)\r\n : a === b;\r\n}\r\n/**\r\n * Check if two arrays are the same or if an array with one single entry is the\r\n * same as another primitive value. Used to check query and parameters\r\n *\r\n * @param a - array of values\r\n * @param b - array of values or a single value\r\n */\r\nfunction isEquivalentArray(a, b) {\r\n return isArray(b)\r\n ? a.length === b.length && a.every((value, i) => value === b[i])\r\n : a.length === 1 && a[0] === b;\r\n}\r\n/**\r\n * Resolves a relative path that starts with `.`.\r\n *\r\n * @param to - path location we are resolving\r\n * @param from - currentLocation.path, should start with `/`\r\n */\r\nfunction resolveRelativePath(to, from) {\r\n if (to.startsWith('/'))\r\n return to;\r\n if ((process.env.NODE_ENV !== 'production') && !from.startsWith('/')) {\r\n warn(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\r\n return to;\r\n }\r\n if (!to)\r\n return from;\r\n const fromSegments = from.split('/');\r\n const toSegments = to.split('/');\r\n let position = fromSegments.length - 1;\r\n let toPosition;\r\n let segment;\r\n for (toPosition = 0; toPosition < toSegments.length; toPosition++) {\r\n segment = toSegments[toPosition];\r\n // we stay on the same position\r\n if (segment === '.')\r\n continue;\r\n // go up in the from array\r\n if (segment === '..') {\r\n // we can't go below zero, but we still need to increment toPosition\r\n if (position > 1)\r\n position--;\r\n // continue\r\n }\r\n // we reached a non-relative path, we stop here\r\n else\r\n break;\r\n }\r\n return (fromSegments.slice(0, position).join('/') +\r\n '/' +\r\n toSegments\r\n // ensure we use at least the last element in the toSegments\r\n .slice(toPosition - (toPosition === toSegments.length ? 1 : 0))\r\n .join('/'));\r\n}\n\nvar NavigationType;\r\n(function (NavigationType) {\r\n NavigationType[\"pop\"] = \"pop\";\r\n NavigationType[\"push\"] = \"push\";\r\n})(NavigationType || (NavigationType = {}));\r\nvar NavigationDirection;\r\n(function (NavigationDirection) {\r\n NavigationDirection[\"back\"] = \"back\";\r\n NavigationDirection[\"forward\"] = \"forward\";\r\n NavigationDirection[\"unknown\"] = \"\";\r\n})(NavigationDirection || (NavigationDirection = {}));\r\n/**\r\n * Starting location for Histories\r\n */\r\nconst START = '';\r\n// Generic utils\r\n/**\r\n * Normalizes a base by removing any trailing slash and reading the base tag if\r\n * present.\r\n *\r\n * @param base - base to normalize\r\n */\r\nfunction normalizeBase(base) {\r\n if (!base) {\r\n if (isBrowser) {\r\n // respect tag\r\n const baseEl = document.querySelector('base');\r\n base = (baseEl && baseEl.getAttribute('href')) || '/';\r\n // strip full URL origin\r\n base = base.replace(/^\\w+:\\/\\/[^\\/]+/, '');\r\n }\r\n else {\r\n base = '/';\r\n }\r\n }\r\n // ensure leading slash when it was removed by the regex above avoid leading\r\n // slash with hash because the file could be read from the disk like file://\r\n // and the leading slash would cause problems\r\n if (base[0] !== '/' && base[0] !== '#')\r\n base = '/' + base;\r\n // remove the trailing slash so all other method can just do `base + fullPath`\r\n // to build an href\r\n return removeTrailingSlash(base);\r\n}\r\n// remove any character before the hash\r\nconst BEFORE_HASH_RE = /^[^#]+#/;\r\nfunction createHref(base, location) {\r\n return base.replace(BEFORE_HASH_RE, '#') + location;\r\n}\n\nfunction getElementPosition(el, offset) {\r\n const docRect = document.documentElement.getBoundingClientRect();\r\n const elRect = el.getBoundingClientRect();\r\n return {\r\n behavior: offset.behavior,\r\n left: elRect.left - docRect.left - (offset.left || 0),\r\n top: elRect.top - docRect.top - (offset.top || 0),\r\n };\r\n}\r\nconst computeScrollPosition = () => ({\r\n left: window.pageXOffset,\r\n top: window.pageYOffset,\r\n});\r\nfunction scrollToPosition(position) {\r\n let scrollToOptions;\r\n if ('el' in position) {\r\n const positionEl = position.el;\r\n const isIdSelector = typeof positionEl === 'string' && positionEl.startsWith('#');\r\n /**\r\n * `id`s can accept pretty much any characters, including CSS combinators\r\n * like `>` or `~`. It's still possible to retrieve elements using\r\n * `document.getElementById('~')` but it needs to be escaped when using\r\n * `document.querySelector('#\\\\~')` for it to be valid. The only\r\n * requirements for `id`s are them to be unique on the page and to not be\r\n * empty (`id=\"\"`). Because of that, when passing an id selector, it should\r\n * be properly escaped for it to work with `querySelector`. We could check\r\n * for the id selector to be simple (no CSS combinators `+ >~`) but that\r\n * would make things inconsistent since they are valid characters for an\r\n * `id` but would need to be escaped when using `querySelector`, breaking\r\n * their usage and ending up in no selector returned. Selectors need to be\r\n * escaped:\r\n *\r\n * - `#1-thing` becomes `#\\31 -thing`\r\n * - `#with~symbols` becomes `#with\\\\~symbols`\r\n *\r\n * - More information about the topic can be found at\r\n * https://mathiasbynens.be/notes/html5-id-class.\r\n * - Practical example: https://mathiasbynens.be/demo/html5-id\r\n */\r\n if ((process.env.NODE_ENV !== 'production') && typeof position.el === 'string') {\r\n if (!isIdSelector || !document.getElementById(position.el.slice(1))) {\r\n try {\r\n const foundEl = document.querySelector(position.el);\r\n if (isIdSelector && foundEl) {\r\n warn(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\r\n // return to avoid other warnings\r\n return;\r\n }\r\n }\r\n catch (err) {\r\n warn(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\r\n // return to avoid other warnings\r\n return;\r\n }\r\n }\r\n }\r\n const el = typeof positionEl === 'string'\r\n ? isIdSelector\r\n ? document.getElementById(positionEl.slice(1))\r\n : document.querySelector(positionEl)\r\n : positionEl;\r\n if (!el) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\r\n return;\r\n }\r\n scrollToOptions = getElementPosition(el, position);\r\n }\r\n else {\r\n scrollToOptions = position;\r\n }\r\n if ('scrollBehavior' in document.documentElement.style)\r\n window.scrollTo(scrollToOptions);\r\n else {\r\n window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.pageXOffset, scrollToOptions.top != null ? scrollToOptions.top : window.pageYOffset);\r\n }\r\n}\r\nfunction getScrollKey(path, delta) {\r\n const position = history.state ? history.state.position - delta : -1;\r\n return position + path;\r\n}\r\nconst scrollPositions = new Map();\r\nfunction saveScrollPosition(key, scrollPosition) {\r\n scrollPositions.set(key, scrollPosition);\r\n}\r\nfunction getSavedScrollPosition(key) {\r\n const scroll = scrollPositions.get(key);\r\n // consume it so it's not used again\r\n scrollPositions.delete(key);\r\n return scroll;\r\n}\r\n// TODO: RFC about how to save scroll position\r\n/**\r\n * ScrollBehavior instance used by the router to compute and restore the scroll\r\n * position when navigating.\r\n */\r\n// export interface ScrollHandler {\r\n// // returns a scroll position that can be saved in history\r\n// compute(): ScrollPositionEntry\r\n// // can take an extended ScrollPositionEntry\r\n// scroll(position: ScrollPosition): void\r\n// }\r\n// export const scrollHandler: ScrollHandler = {\r\n// compute: computeScroll,\r\n// scroll: scrollToPosition,\r\n// }\n\nlet createBaseLocation = () => location.protocol + '//' + location.host;\r\n/**\r\n * Creates a normalized history location from a window.location object\r\n * @param location -\r\n */\r\nfunction createCurrentLocation(base, location) {\r\n const { pathname, search, hash } = location;\r\n // allows hash bases like #, /#, #/, #!, #!/, /#!/, or even /folder#end\r\n const hashPos = base.indexOf('#');\r\n if (hashPos > -1) {\r\n let slicePos = hash.includes(base.slice(hashPos))\r\n ? base.slice(hashPos).length\r\n : 1;\r\n let pathFromHash = hash.slice(slicePos);\r\n // prepend the starting slash to hash so the url starts with /#\r\n if (pathFromHash[0] !== '/')\r\n pathFromHash = '/' + pathFromHash;\r\n return stripBase(pathFromHash, '');\r\n }\r\n const path = stripBase(pathname, base);\r\n return path + search + hash;\r\n}\r\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\r\n let listeners = [];\r\n let teardowns = [];\r\n // TODO: should it be a stack? a Dict. Check if the popstate listener\r\n // can trigger twice\r\n let pauseState = null;\r\n const popStateHandler = ({ state, }) => {\r\n const to = createCurrentLocation(base, location);\r\n const from = currentLocation.value;\r\n const fromState = historyState.value;\r\n let delta = 0;\r\n if (state) {\r\n currentLocation.value = to;\r\n historyState.value = state;\r\n // ignore the popstate and reset the pauseState\r\n if (pauseState && pauseState === from) {\r\n pauseState = null;\r\n return;\r\n }\r\n delta = fromState ? state.position - fromState.position : 0;\r\n }\r\n else {\r\n replace(to);\r\n }\r\n // console.log({ deltaFromCurrent })\r\n // Here we could also revert the navigation by calling history.go(-delta)\r\n // this listener will have to be adapted to not trigger again and to wait for the url\r\n // to be updated before triggering the listeners. Some kind of validation function would also\r\n // need to be passed to the listeners so the navigation can be accepted\r\n // call all listeners\r\n listeners.forEach(listener => {\r\n listener(currentLocation.value, from, {\r\n delta,\r\n type: NavigationType.pop,\r\n direction: delta\r\n ? delta > 0\r\n ? NavigationDirection.forward\r\n : NavigationDirection.back\r\n : NavigationDirection.unknown,\r\n });\r\n });\r\n };\r\n function pauseListeners() {\r\n pauseState = currentLocation.value;\r\n }\r\n function listen(callback) {\r\n // set up the listener and prepare teardown callbacks\r\n listeners.push(callback);\r\n const teardown = () => {\r\n const index = listeners.indexOf(callback);\r\n if (index > -1)\r\n listeners.splice(index, 1);\r\n };\r\n teardowns.push(teardown);\r\n return teardown;\r\n }\r\n function beforeUnloadListener() {\r\n const { history } = window;\r\n if (!history.state)\r\n return;\r\n history.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), '');\r\n }\r\n function destroy() {\r\n for (const teardown of teardowns)\r\n teardown();\r\n teardowns = [];\r\n window.removeEventListener('popstate', popStateHandler);\r\n window.removeEventListener('beforeunload', beforeUnloadListener);\r\n }\r\n // set up the listeners and prepare teardown callbacks\r\n window.addEventListener('popstate', popStateHandler);\r\n window.addEventListener('beforeunload', beforeUnloadListener);\r\n return {\r\n pauseListeners,\r\n listen,\r\n destroy,\r\n };\r\n}\r\n/**\r\n * Creates a state object\r\n */\r\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\r\n return {\r\n back,\r\n current,\r\n forward,\r\n replaced,\r\n position: window.history.length,\r\n scroll: computeScroll ? computeScrollPosition() : null,\r\n };\r\n}\r\nfunction useHistoryStateNavigation(base) {\r\n const { history, location } = window;\r\n // private variables\r\n const currentLocation = {\r\n value: createCurrentLocation(base, location),\r\n };\r\n const historyState = { value: history.state };\r\n // build current history entry as this is a fresh navigation\r\n if (!historyState.value) {\r\n changeLocation(currentLocation.value, {\r\n back: null,\r\n current: currentLocation.value,\r\n forward: null,\r\n // the length is off by one, we need to decrease it\r\n position: history.length - 1,\r\n replaced: true,\r\n // don't add a scroll as the user may have an anchor, and we want\r\n // scrollBehavior to be triggered without a saved position\r\n scroll: null,\r\n }, true);\r\n }\r\n function changeLocation(to, state, replace) {\r\n /**\r\n * if a base tag is provided, and we are on a normal domain, we have to\r\n * respect the provided `base` attribute because pushState() will use it and\r\n * potentially erase anything before the `#` like at\r\n * https://github.com/vuejs/router/issues/685 where a base of\r\n * `/folder/#` but a base of `/` would erase the `/folder/` section. If\r\n * there is no host, the `` tag makes no sense and if there isn't a\r\n * base tag we can just use everything after the `#`.\r\n */\r\n const hashIndex = base.indexOf('#');\r\n const url = hashIndex > -1\r\n ? (location.host && document.querySelector('base')\r\n ? base\r\n : base.slice(hashIndex)) + to\r\n : createBaseLocation() + base + to;\r\n try {\r\n // BROWSER QUIRK\r\n // NOTE: Safari throws a SecurityError when calling this function 100 times in 30 seconds\r\n history[replace ? 'replaceState' : 'pushState'](state, '', url);\r\n historyState.value = state;\r\n }\r\n catch (err) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Error with push/replace State', err);\r\n }\r\n else {\r\n console.error(err);\r\n }\r\n // Force the navigation, this also resets the call count\r\n location[replace ? 'replace' : 'assign'](url);\r\n }\r\n }\r\n function replace(to, data) {\r\n const state = assign({}, history.state, buildState(historyState.value.back, \r\n // keep back and forward entries but override current position\r\n to, historyState.value.forward, true), data, { position: historyState.value.position });\r\n changeLocation(to, state, true);\r\n currentLocation.value = to;\r\n }\r\n function push(to, data) {\r\n // Add to current entry the information of where we are going\r\n // as well as saving the current position\r\n const currentState = assign({}, \r\n // use current history state to gracefully handle a wrong call to\r\n // history.replaceState\r\n // https://github.com/vuejs/router/issues/366\r\n historyState.value, history.state, {\r\n forward: to,\r\n scroll: computeScrollPosition(),\r\n });\r\n if ((process.env.NODE_ENV !== 'production') && !history.state) {\r\n warn(`history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\n` +\r\n `history.replaceState(history.state, '', url)\\n\\n` +\r\n `You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`);\r\n }\r\n changeLocation(currentState.current, currentState, true);\r\n const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data);\r\n changeLocation(to, state, false);\r\n currentLocation.value = to;\r\n }\r\n return {\r\n location: currentLocation,\r\n state: historyState,\r\n push,\r\n replace,\r\n };\r\n}\r\n/**\r\n * Creates an HTML5 history. Most common history for single page applications.\r\n *\r\n * @param base -\r\n */\r\nfunction createWebHistory(base) {\r\n base = normalizeBase(base);\r\n const historyNavigation = useHistoryStateNavigation(base);\r\n const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\r\n function go(delta, triggerListeners = true) {\r\n if (!triggerListeners)\r\n historyListeners.pauseListeners();\r\n history.go(delta);\r\n }\r\n const routerHistory = assign({\r\n // it's overridden right after\r\n location: '',\r\n base,\r\n go,\r\n createHref: createHref.bind(null, base),\r\n }, historyNavigation, historyListeners);\r\n Object.defineProperty(routerHistory, 'location', {\r\n enumerable: true,\r\n get: () => historyNavigation.location.value,\r\n });\r\n Object.defineProperty(routerHistory, 'state', {\r\n enumerable: true,\r\n get: () => historyNavigation.state.value,\r\n });\r\n return routerHistory;\r\n}\n\n/**\r\n * Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\r\n * It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\r\n *\r\n * @param base - Base applied to all urls, defaults to '/'\r\n * @returns a history object that can be passed to the router constructor\r\n */\r\nfunction createMemoryHistory(base = '') {\r\n let listeners = [];\r\n let queue = [START];\r\n let position = 0;\r\n base = normalizeBase(base);\r\n function setLocation(location) {\r\n position++;\r\n if (position === queue.length) {\r\n // we are at the end, we can simply append a new entry\r\n queue.push(location);\r\n }\r\n else {\r\n // we are in the middle, we remove everything from here in the queue\r\n queue.splice(position);\r\n queue.push(location);\r\n }\r\n }\r\n function triggerListeners(to, from, { direction, delta }) {\r\n const info = {\r\n direction,\r\n delta,\r\n type: NavigationType.pop,\r\n };\r\n for (const callback of listeners) {\r\n callback(to, from, info);\r\n }\r\n }\r\n const routerHistory = {\r\n // rewritten by Object.defineProperty\r\n location: START,\r\n // TODO: should be kept in queue\r\n state: {},\r\n base,\r\n createHref: createHref.bind(null, base),\r\n replace(to) {\r\n // remove current entry and decrement position\r\n queue.splice(position--, 1);\r\n setLocation(to);\r\n },\r\n push(to, data) {\r\n setLocation(to);\r\n },\r\n listen(callback) {\r\n listeners.push(callback);\r\n return () => {\r\n const index = listeners.indexOf(callback);\r\n if (index > -1)\r\n listeners.splice(index, 1);\r\n };\r\n },\r\n destroy() {\r\n listeners = [];\r\n queue = [START];\r\n position = 0;\r\n },\r\n go(delta, shouldTrigger = true) {\r\n const from = this.location;\r\n const direction = \r\n // we are considering delta === 0 going forward, but in abstract mode\r\n // using 0 for the delta doesn't make sense like it does in html5 where\r\n // it reloads the page\r\n delta < 0 ? NavigationDirection.back : NavigationDirection.forward;\r\n position = Math.max(0, Math.min(position + delta, queue.length - 1));\r\n if (shouldTrigger) {\r\n triggerListeners(this.location, from, {\r\n direction,\r\n delta,\r\n });\r\n }\r\n },\r\n };\r\n Object.defineProperty(routerHistory, 'location', {\r\n enumerable: true,\r\n get: () => queue[position],\r\n });\r\n return routerHistory;\r\n}\n\n/**\r\n * Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to\r\n * handle any URL is not possible.\r\n *\r\n * @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `` tag\r\n * in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState()\r\n * calls**, meaning that if you use a `` tag, it's `href` value **has to match this parameter** (ignoring anything\r\n * after the `#`).\r\n *\r\n * @example\r\n * ```js\r\n * // at https://example.com/folder\r\n * createWebHashHistory() // gives a url of `https://example.com/folder#`\r\n * createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\r\n * // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\r\n * createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\r\n * // you should avoid doing this because it changes the original url and breaks copying urls\r\n * createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\r\n *\r\n * // at file:///usr/etc/folder/index.html\r\n * // for locations with no `host`, the base is ignored\r\n * createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\r\n * ```\r\n */\r\nfunction createWebHashHistory(base) {\r\n // Make sure this implementation is fine in terms of encoding, specially for IE11\r\n // for `file://`, directly use the pathname and ignore the base\r\n // location.pathname contains an initial `/` even at the root: `https://example.com`\r\n base = location.host ? base || location.pathname + location.search : '';\r\n // allow the user to provide a `#` in the middle: `/base/#/app`\r\n if (!base.includes('#'))\r\n base += '#';\r\n if ((process.env.NODE_ENV !== 'production') && !base.endsWith('#/') && !base.endsWith('#')) {\r\n warn(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, '#')}\".`);\r\n }\r\n return createWebHistory(base);\r\n}\n\nfunction isRouteLocation(route) {\r\n return typeof route === 'string' || (route && typeof route === 'object');\r\n}\r\nfunction isRouteName(name) {\r\n return typeof name === 'string' || typeof name === 'symbol';\r\n}\n\n/**\r\n * Initial route location where the router is. Can be used in navigation guards\r\n * to differentiate the initial navigation.\r\n *\r\n * @example\r\n * ```js\r\n * import { START_LOCATION } from 'vue-router'\r\n *\r\n * router.beforeEach((to, from) => {\r\n * if (from === START_LOCATION) {\r\n * // initial navigation\r\n * }\r\n * })\r\n * ```\r\n */\r\nconst START_LOCATION_NORMALIZED = {\r\n path: '/',\r\n name: undefined,\r\n params: {},\r\n query: {},\r\n hash: '',\r\n fullPath: '/',\r\n matched: [],\r\n meta: {},\r\n redirectedFrom: undefined,\r\n};\n\nconst NavigationFailureSymbol = Symbol((process.env.NODE_ENV !== 'production') ? 'navigation failure' : '');\r\n/**\r\n * Enumeration with all possible types for navigation failures. Can be passed to\r\n * {@link isNavigationFailure} to check for specific failures.\r\n */\r\nvar NavigationFailureType;\r\n(function (NavigationFailureType) {\r\n /**\r\n * An aborted navigation is a navigation that failed because a navigation\r\n * guard returned `false` or called `next(false)`\r\n */\r\n NavigationFailureType[NavigationFailureType[\"aborted\"] = 4] = \"aborted\";\r\n /**\r\n * A cancelled navigation is a navigation that failed because a more recent\r\n * navigation finished started (not necessarily finished).\r\n */\r\n NavigationFailureType[NavigationFailureType[\"cancelled\"] = 8] = \"cancelled\";\r\n /**\r\n * A duplicated navigation is a navigation that failed because it was\r\n * initiated while already being at the exact same location.\r\n */\r\n NavigationFailureType[NavigationFailureType[\"duplicated\"] = 16] = \"duplicated\";\r\n})(NavigationFailureType || (NavigationFailureType = {}));\r\n// DEV only debug messages\r\nconst ErrorTypeMessages = {\r\n [1 /* ErrorTypes.MATCHER_NOT_FOUND */]({ location, currentLocation }) {\r\n return `No match for\\n ${JSON.stringify(location)}${currentLocation\r\n ? '\\nwhile being at\\n' + JSON.stringify(currentLocation)\r\n : ''}`;\r\n },\r\n [2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */]({ from, to, }) {\r\n return `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\r\n },\r\n [4 /* ErrorTypes.NAVIGATION_ABORTED */]({ from, to }) {\r\n return `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\r\n },\r\n [8 /* ErrorTypes.NAVIGATION_CANCELLED */]({ from, to }) {\r\n return `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\r\n },\r\n [16 /* ErrorTypes.NAVIGATION_DUPLICATED */]({ from, to }) {\r\n return `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\r\n },\r\n};\r\nfunction createRouterError(type, params) {\r\n // keep full error messages in cjs versions\r\n if ((process.env.NODE_ENV !== 'production') || !true) {\r\n return assign(new Error(ErrorTypeMessages[type](params)), {\r\n type,\r\n [NavigationFailureSymbol]: true,\r\n }, params);\r\n }\r\n else {\r\n return assign(new Error(), {\r\n type,\r\n [NavigationFailureSymbol]: true,\r\n }, params);\r\n }\r\n}\r\nfunction isNavigationFailure(error, type) {\r\n return (error instanceof Error &&\r\n NavigationFailureSymbol in error &&\r\n (type == null || !!(error.type & type)));\r\n}\r\nconst propertiesToLog = ['params', 'query', 'hash'];\r\nfunction stringifyRoute(to) {\r\n if (typeof to === 'string')\r\n return to;\r\n if ('path' in to)\r\n return to.path;\r\n const location = {};\r\n for (const key of propertiesToLog) {\r\n if (key in to)\r\n location[key] = to[key];\r\n }\r\n return JSON.stringify(location, null, 2);\r\n}\n\n// default pattern for a param: non-greedy everything but /\r\nconst BASE_PARAM_PATTERN = '[^/]+?';\r\nconst BASE_PATH_PARSER_OPTIONS = {\r\n sensitive: false,\r\n strict: false,\r\n start: true,\r\n end: true,\r\n};\r\n// Special Regex characters that must be escaped in static tokens\r\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\r\n/**\r\n * Creates a path parser from an array of Segments (a segment is an array of Tokens)\r\n *\r\n * @param segments - array of segments returned by tokenizePath\r\n * @param extraOptions - optional options for the regexp\r\n * @returns a PathParser\r\n */\r\nfunction tokensToParser(segments, extraOptions) {\r\n const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\r\n // the amount of scores is the same as the length of segments except for the root segment \"/\"\r\n const score = [];\r\n // the regexp as a string\r\n let pattern = options.start ? '^' : '';\r\n // extracted keys\r\n const keys = [];\r\n for (const segment of segments) {\r\n // the root segment needs special treatment\r\n const segmentScores = segment.length ? [] : [90 /* PathScore.Root */];\r\n // allow trailing slash\r\n if (options.strict && !segment.length)\r\n pattern += '/';\r\n for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\r\n const token = segment[tokenIndex];\r\n // resets the score if we are inside a sub-segment /:a-other-:b\r\n let subSegmentScore = 40 /* PathScore.Segment */ +\r\n (options.sensitive ? 0.25 /* PathScore.BonusCaseSensitive */ : 0);\r\n if (token.type === 0 /* TokenType.Static */) {\r\n // prepend the slash if we are starting a new segment\r\n if (!tokenIndex)\r\n pattern += '/';\r\n pattern += token.value.replace(REGEX_CHARS_RE, '\\\\$&');\r\n subSegmentScore += 40 /* PathScore.Static */;\r\n }\r\n else if (token.type === 1 /* TokenType.Param */) {\r\n const { value, repeatable, optional, regexp } = token;\r\n keys.push({\r\n name: value,\r\n repeatable,\r\n optional,\r\n });\r\n const re = regexp ? regexp : BASE_PARAM_PATTERN;\r\n // the user provided a custom regexp /:id(\\\\d+)\r\n if (re !== BASE_PARAM_PATTERN) {\r\n subSegmentScore += 10 /* PathScore.BonusCustomRegExp */;\r\n // make sure the regexp is valid before using it\r\n try {\r\n new RegExp(`(${re})`);\r\n }\r\n catch (err) {\r\n throw new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` +\r\n err.message);\r\n }\r\n }\r\n // when we repeat we must take care of the repeating leading slash\r\n let subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\r\n // prepend the slash if we are starting a new segment\r\n if (!tokenIndex)\r\n subPattern =\r\n // avoid an optional / if there are more segments e.g. /:p?-static\r\n // or /:p?-:p2\r\n optional && segment.length < 2\r\n ? `(?:/${subPattern})`\r\n : '/' + subPattern;\r\n if (optional)\r\n subPattern += '?';\r\n pattern += subPattern;\r\n subSegmentScore += 20 /* PathScore.Dynamic */;\r\n if (optional)\r\n subSegmentScore += -8 /* PathScore.BonusOptional */;\r\n if (repeatable)\r\n subSegmentScore += -20 /* PathScore.BonusRepeatable */;\r\n if (re === '.*')\r\n subSegmentScore += -50 /* PathScore.BonusWildcard */;\r\n }\r\n segmentScores.push(subSegmentScore);\r\n }\r\n // an empty array like /home/ -> [[{home}], []]\r\n // if (!segment.length) pattern += '/'\r\n score.push(segmentScores);\r\n }\r\n // only apply the strict bonus to the last score\r\n if (options.strict && options.end) {\r\n const i = score.length - 1;\r\n score[i][score[i].length - 1] += 0.7000000000000001 /* PathScore.BonusStrict */;\r\n }\r\n // TODO: dev only warn double trailing slash\r\n if (!options.strict)\r\n pattern += '/?';\r\n if (options.end)\r\n pattern += '$';\r\n // allow paths like /dynamic to only match dynamic or dynamic/... but not dynamic_something_else\r\n else if (options.strict)\r\n pattern += '(?:/|$)';\r\n const re = new RegExp(pattern, options.sensitive ? '' : 'i');\r\n function parse(path) {\r\n const match = path.match(re);\r\n const params = {};\r\n if (!match)\r\n return null;\r\n for (let i = 1; i < match.length; i++) {\r\n const value = match[i] || '';\r\n const key = keys[i - 1];\r\n params[key.name] = value && key.repeatable ? value.split('/') : value;\r\n }\r\n return params;\r\n }\r\n function stringify(params) {\r\n let path = '';\r\n // for optional parameters to allow to be empty\r\n let avoidDuplicatedSlash = false;\r\n for (const segment of segments) {\r\n if (!avoidDuplicatedSlash || !path.endsWith('/'))\r\n path += '/';\r\n avoidDuplicatedSlash = false;\r\n for (const token of segment) {\r\n if (token.type === 0 /* TokenType.Static */) {\r\n path += token.value;\r\n }\r\n else if (token.type === 1 /* TokenType.Param */) {\r\n const { value, repeatable, optional } = token;\r\n const param = value in params ? params[value] : '';\r\n if (isArray(param) && !repeatable) {\r\n throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\r\n }\r\n const text = isArray(param)\r\n ? param.join('/')\r\n : param;\r\n if (!text) {\r\n if (optional) {\r\n // if we have more than one optional param like /:a?-static we don't need to care about the optional param\r\n if (segment.length < 2) {\r\n // remove the last slash as we could be at the end\r\n if (path.endsWith('/'))\r\n path = path.slice(0, -1);\r\n // do not append a slash on the next iteration\r\n else\r\n avoidDuplicatedSlash = true;\r\n }\r\n }\r\n else\r\n throw new Error(`Missing required param \"${value}\"`);\r\n }\r\n path += text;\r\n }\r\n }\r\n }\r\n // avoid empty path when we have multiple optional params\r\n return path || '/';\r\n }\r\n return {\r\n re,\r\n score,\r\n keys,\r\n parse,\r\n stringify,\r\n };\r\n}\r\n/**\r\n * Compares an array of numbers as used in PathParser.score and returns a\r\n * number. This function can be used to `sort` an array\r\n *\r\n * @param a - first array of numbers\r\n * @param b - second array of numbers\r\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\r\n * should be sorted first\r\n */\r\nfunction compareScoreArray(a, b) {\r\n let i = 0;\r\n while (i < a.length && i < b.length) {\r\n const diff = b[i] - a[i];\r\n // only keep going if diff === 0\r\n if (diff)\r\n return diff;\r\n i++;\r\n }\r\n // if the last subsegment was Static, the shorter segments should be sorted first\r\n // otherwise sort the longest segment first\r\n if (a.length < b.length) {\r\n return a.length === 1 && a[0] === 40 /* PathScore.Static */ + 40 /* PathScore.Segment */\r\n ? -1\r\n : 1;\r\n }\r\n else if (a.length > b.length) {\r\n return b.length === 1 && b[0] === 40 /* PathScore.Static */ + 40 /* PathScore.Segment */\r\n ? 1\r\n : -1;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * Compare function that can be used with `sort` to sort an array of PathParser\r\n *\r\n * @param a - first PathParser\r\n * @param b - second PathParser\r\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\r\n */\r\nfunction comparePathParserScore(a, b) {\r\n let i = 0;\r\n const aScore = a.score;\r\n const bScore = b.score;\r\n while (i < aScore.length && i < bScore.length) {\r\n const comp = compareScoreArray(aScore[i], bScore[i]);\r\n // do not return if both are equal\r\n if (comp)\r\n return comp;\r\n i++;\r\n }\r\n if (Math.abs(bScore.length - aScore.length) === 1) {\r\n if (isLastScoreNegative(aScore))\r\n return 1;\r\n if (isLastScoreNegative(bScore))\r\n return -1;\r\n }\r\n // if a and b share the same score entries but b has more, sort b first\r\n return bScore.length - aScore.length;\r\n // this is the ternary version\r\n // return aScore.length < bScore.length\r\n // ? 1\r\n // : aScore.length > bScore.length\r\n // ? -1\r\n // : 0\r\n}\r\n/**\r\n * This allows detecting splats at the end of a path: /home/:id(.*)*\r\n *\r\n * @param score - score to check\r\n * @returns true if the last entry is negative\r\n */\r\nfunction isLastScoreNegative(score) {\r\n const last = score[score.length - 1];\r\n return score.length > 0 && last[last.length - 1] < 0;\r\n}\n\nconst ROOT_TOKEN = {\r\n type: 0 /* TokenType.Static */,\r\n value: '',\r\n};\r\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\r\n// After some profiling, the cache seems to be unnecessary because tokenizePath\r\n// (the slowest part of adding a route) is very fast\r\n// const tokenCache = new Map()\r\nfunction tokenizePath(path) {\r\n if (!path)\r\n return [[]];\r\n if (path === '/')\r\n return [[ROOT_TOKEN]];\r\n if (!path.startsWith('/')) {\r\n throw new Error((process.env.NODE_ENV !== 'production')\r\n ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".`\r\n : `Invalid path \"${path}\"`);\r\n }\r\n // if (tokenCache.has(path)) return tokenCache.get(path)!\r\n function crash(message) {\r\n throw new Error(`ERR (${state})/\"${buffer}\": ${message}`);\r\n }\r\n let state = 0 /* TokenizerState.Static */;\r\n let previousState = state;\r\n const tokens = [];\r\n // the segment will always be valid because we get into the initial state\r\n // with the leading /\r\n let segment;\r\n function finalizeSegment() {\r\n if (segment)\r\n tokens.push(segment);\r\n segment = [];\r\n }\r\n // index on the path\r\n let i = 0;\r\n // char at index\r\n let char;\r\n // buffer of the value read\r\n let buffer = '';\r\n // custom regexp for a param\r\n let customRe = '';\r\n function consumeBuffer() {\r\n if (!buffer)\r\n return;\r\n if (state === 0 /* TokenizerState.Static */) {\r\n segment.push({\r\n type: 0 /* TokenType.Static */,\r\n value: buffer,\r\n });\r\n }\r\n else if (state === 1 /* TokenizerState.Param */ ||\r\n state === 2 /* TokenizerState.ParamRegExp */ ||\r\n state === 3 /* TokenizerState.ParamRegExpEnd */) {\r\n if (segment.length > 1 && (char === '*' || char === '+'))\r\n crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\r\n segment.push({\r\n type: 1 /* TokenType.Param */,\r\n value: buffer,\r\n regexp: customRe,\r\n repeatable: char === '*' || char === '+',\r\n optional: char === '*' || char === '?',\r\n });\r\n }\r\n else {\r\n crash('Invalid state to consume buffer');\r\n }\r\n buffer = '';\r\n }\r\n function addCharToBuffer() {\r\n buffer += char;\r\n }\r\n while (i < path.length) {\r\n char = path[i++];\r\n if (char === '\\\\' && state !== 2 /* TokenizerState.ParamRegExp */) {\r\n previousState = state;\r\n state = 4 /* TokenizerState.EscapeNext */;\r\n continue;\r\n }\r\n switch (state) {\r\n case 0 /* TokenizerState.Static */:\r\n if (char === '/') {\r\n if (buffer) {\r\n consumeBuffer();\r\n }\r\n finalizeSegment();\r\n }\r\n else if (char === ':') {\r\n consumeBuffer();\r\n state = 1 /* TokenizerState.Param */;\r\n }\r\n else {\r\n addCharToBuffer();\r\n }\r\n break;\r\n case 4 /* TokenizerState.EscapeNext */:\r\n addCharToBuffer();\r\n state = previousState;\r\n break;\r\n case 1 /* TokenizerState.Param */:\r\n if (char === '(') {\r\n state = 2 /* TokenizerState.ParamRegExp */;\r\n }\r\n else if (VALID_PARAM_RE.test(char)) {\r\n addCharToBuffer();\r\n }\r\n else {\r\n consumeBuffer();\r\n state = 0 /* TokenizerState.Static */;\r\n // go back one character if we were not modifying\r\n if (char !== '*' && char !== '?' && char !== '+')\r\n i--;\r\n }\r\n break;\r\n case 2 /* TokenizerState.ParamRegExp */:\r\n // TODO: is it worth handling nested regexp? like :p(?:prefix_([^/]+)_suffix)\r\n // it already works by escaping the closing )\r\n // https://paths.esm.dev/?p=AAMeJbiAwQEcDKbAoAAkP60PG2R6QAvgNaA6AFACM2ABuQBB#\r\n // is this really something people need since you can also write\r\n // /prefix_:p()_suffix\r\n if (char === ')') {\r\n // handle the escaped )\r\n if (customRe[customRe.length - 1] == '\\\\')\r\n customRe = customRe.slice(0, -1) + char;\r\n else\r\n state = 3 /* TokenizerState.ParamRegExpEnd */;\r\n }\r\n else {\r\n customRe += char;\r\n }\r\n break;\r\n case 3 /* TokenizerState.ParamRegExpEnd */:\r\n // same as finalizing a param\r\n consumeBuffer();\r\n state = 0 /* TokenizerState.Static */;\r\n // go back one character if we were not modifying\r\n if (char !== '*' && char !== '?' && char !== '+')\r\n i--;\r\n customRe = '';\r\n break;\r\n default:\r\n crash('Unknown state');\r\n break;\r\n }\r\n }\r\n if (state === 2 /* TokenizerState.ParamRegExp */)\r\n crash(`Unfinished custom RegExp for param \"${buffer}\"`);\r\n consumeBuffer();\r\n finalizeSegment();\r\n // tokenCache.set(path, tokens)\r\n return tokens;\r\n}\n\nfunction createRouteRecordMatcher(record, parent, options) {\r\n const parser = tokensToParser(tokenizePath(record.path), options);\r\n // warn against params with the same name\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const existingKeys = new Set();\r\n for (const key of parser.keys) {\r\n if (existingKeys.has(key.name))\r\n warn(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\r\n existingKeys.add(key.name);\r\n }\r\n }\r\n const matcher = assign(parser, {\r\n record,\r\n parent,\r\n // these needs to be populated by the parent\r\n children: [],\r\n alias: [],\r\n });\r\n if (parent) {\r\n // both are aliases or both are not aliases\r\n // we don't want to mix them because the order is used when\r\n // passing originalRecord in Matcher.addRoute\r\n if (!matcher.record.aliasOf === !parent.record.aliasOf)\r\n parent.children.push(matcher);\r\n }\r\n return matcher;\r\n}\n\n/**\r\n * Creates a Router Matcher.\r\n *\r\n * @internal\r\n * @param routes - array of initial routes\r\n * @param globalOptions - global route options\r\n */\r\nfunction createRouterMatcher(routes, globalOptions) {\r\n // normalized ordered array of matchers\r\n const matchers = [];\r\n const matcherMap = new Map();\r\n globalOptions = mergeOptions({ strict: false, end: true, sensitive: false }, globalOptions);\r\n function getRecordMatcher(name) {\r\n return matcherMap.get(name);\r\n }\r\n function addRoute(record, parent, originalRecord) {\r\n // used later on to remove by name\r\n const isRootAdd = !originalRecord;\r\n const mainNormalizedRecord = normalizeRouteRecord(record);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\r\n }\r\n // we might be the child of an alias\r\n mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\r\n const options = mergeOptions(globalOptions, record);\r\n // generate an array of records to correctly handle aliases\r\n const normalizedRecords = [\r\n mainNormalizedRecord,\r\n ];\r\n if ('alias' in record) {\r\n const aliases = typeof record.alias === 'string' ? [record.alias] : record.alias;\r\n for (const alias of aliases) {\r\n normalizedRecords.push(assign({}, mainNormalizedRecord, {\r\n // this allows us to hold a copy of the `components` option\r\n // so that async components cache is hold on the original record\r\n components: originalRecord\r\n ? originalRecord.record.components\r\n : mainNormalizedRecord.components,\r\n path: alias,\r\n // we might be the child of an alias\r\n aliasOf: originalRecord\r\n ? originalRecord.record\r\n : mainNormalizedRecord,\r\n // the aliases are always of the same kind as the original since they\r\n // are defined on the same record\r\n }));\r\n }\r\n }\r\n let matcher;\r\n let originalMatcher;\r\n for (const normalizedRecord of normalizedRecords) {\r\n const { path } = normalizedRecord;\r\n // Build up the path for nested routes if the child isn't an absolute\r\n // route. Only add the / delimiter if the child path isn't empty and if the\r\n // parent path doesn't have a trailing slash\r\n if (parent && path[0] !== '/') {\r\n const parentPath = parent.record.path;\r\n const connectingSlash = parentPath[parentPath.length - 1] === '/' ? '' : '/';\r\n normalizedRecord.path =\r\n parent.record.path + (path && connectingSlash + path);\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && normalizedRecord.path === '*') {\r\n throw new Error('Catch all routes (\"*\") must now be defined using a param with a custom regexp.\\n' +\r\n 'See more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.');\r\n }\r\n // create the object beforehand, so it can be passed to children\r\n matcher = createRouteRecordMatcher(normalizedRecord, parent, options);\r\n if ((process.env.NODE_ENV !== 'production') && parent && path[0] === '/')\r\n checkMissingParamsInAbsolutePath(matcher, parent);\r\n // if we are an alias we must tell the original record that we exist,\r\n // so we can be removed\r\n if (originalRecord) {\r\n originalRecord.alias.push(matcher);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkSameParams(originalRecord, matcher);\r\n }\r\n }\r\n else {\r\n // otherwise, the first record is the original and others are aliases\r\n originalMatcher = originalMatcher || matcher;\r\n if (originalMatcher !== matcher)\r\n originalMatcher.alias.push(matcher);\r\n // remove the route if named and only for the top record (avoid in nested calls)\r\n // this works because the original record is the first one\r\n if (isRootAdd && record.name && !isAliasRecord(matcher))\r\n removeRoute(record.name);\r\n }\r\n if (mainNormalizedRecord.children) {\r\n const children = mainNormalizedRecord.children;\r\n for (let i = 0; i < children.length; i++) {\r\n addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\r\n }\r\n }\r\n // if there was no original record, then the first one was not an alias and all\r\n // other aliases (if any) need to reference this record when adding children\r\n originalRecord = originalRecord || matcher;\r\n // TODO: add normalized records for more flexibility\r\n // if (parent && isAliasRecord(originalRecord)) {\r\n // parent.children.push(originalRecord)\r\n // }\r\n // Avoid adding a record that doesn't display anything. This allows passing through records without a component to\r\n // not be reached and pass through the catch all route\r\n if ((matcher.record.components &&\r\n Object.keys(matcher.record.components).length) ||\r\n matcher.record.name ||\r\n matcher.record.redirect) {\r\n insertMatcher(matcher);\r\n }\r\n }\r\n return originalMatcher\r\n ? () => {\r\n // since other matchers are aliases, they should be removed by the original matcher\r\n removeRoute(originalMatcher);\r\n }\r\n : noop;\r\n }\r\n function removeRoute(matcherRef) {\r\n if (isRouteName(matcherRef)) {\r\n const matcher = matcherMap.get(matcherRef);\r\n if (matcher) {\r\n matcherMap.delete(matcherRef);\r\n matchers.splice(matchers.indexOf(matcher), 1);\r\n matcher.children.forEach(removeRoute);\r\n matcher.alias.forEach(removeRoute);\r\n }\r\n }\r\n else {\r\n const index = matchers.indexOf(matcherRef);\r\n if (index > -1) {\r\n matchers.splice(index, 1);\r\n if (matcherRef.record.name)\r\n matcherMap.delete(matcherRef.record.name);\r\n matcherRef.children.forEach(removeRoute);\r\n matcherRef.alias.forEach(removeRoute);\r\n }\r\n }\r\n }\r\n function getRoutes() {\r\n return matchers;\r\n }\r\n function insertMatcher(matcher) {\r\n let i = 0;\r\n while (i < matchers.length &&\r\n comparePathParserScore(matcher, matchers[i]) >= 0 &&\r\n // Adding children with empty path should still appear before the parent\r\n // https://github.com/vuejs/router/issues/1124\r\n (matcher.record.path !== matchers[i].record.path ||\r\n !isRecordChildOf(matcher, matchers[i])))\r\n i++;\r\n matchers.splice(i, 0, matcher);\r\n // only add the original record to the name map\r\n if (matcher.record.name && !isAliasRecord(matcher))\r\n matcherMap.set(matcher.record.name, matcher);\r\n }\r\n function resolve(location, currentLocation) {\r\n let matcher;\r\n let params = {};\r\n let path;\r\n let name;\r\n if ('name' in location && location.name) {\r\n matcher = matcherMap.get(location.name);\r\n if (!matcher)\r\n throw createRouterError(1 /* ErrorTypes.MATCHER_NOT_FOUND */, {\r\n location,\r\n });\r\n // warn if the user is passing invalid params so they can debug it better when they get removed\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const invalidParams = Object.keys(location.params || {}).filter(paramName => !matcher.keys.find(k => k.name === paramName));\r\n if (invalidParams.length) {\r\n warn(`Discarded invalid param(s) \"${invalidParams.join('\", \"')}\" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`);\r\n }\r\n }\r\n name = matcher.record.name;\r\n params = assign(\r\n // paramsFromLocation is a new object\r\n paramsFromLocation(currentLocation.params, \r\n // only keep params that exist in the resolved location\r\n // TODO: only keep optional params coming from a parent record\r\n matcher.keys.filter(k => !k.optional).map(k => k.name)), \r\n // discard any existing params in the current location that do not exist here\r\n // #1497 this ensures better active/exact matching\r\n location.params &&\r\n paramsFromLocation(location.params, matcher.keys.map(k => k.name)));\r\n // throws if cannot be stringified\r\n path = matcher.stringify(params);\r\n }\r\n else if ('path' in location) {\r\n // no need to resolve the path with the matcher as it was provided\r\n // this also allows the user to control the encoding\r\n path = location.path;\r\n if ((process.env.NODE_ENV !== 'production') && !path.startsWith('/')) {\r\n warn(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/router.`);\r\n }\r\n matcher = matchers.find(m => m.re.test(path));\r\n // matcher should have a value after the loop\r\n if (matcher) {\r\n // we know the matcher works because we tested the regexp\r\n params = matcher.parse(path);\r\n name = matcher.record.name;\r\n }\r\n // location is a relative path\r\n }\r\n else {\r\n // match by name or path of current route\r\n matcher = currentLocation.name\r\n ? matcherMap.get(currentLocation.name)\r\n : matchers.find(m => m.re.test(currentLocation.path));\r\n if (!matcher)\r\n throw createRouterError(1 /* ErrorTypes.MATCHER_NOT_FOUND */, {\r\n location,\r\n currentLocation,\r\n });\r\n name = matcher.record.name;\r\n // since we are navigating to the same location, we don't need to pick the\r\n // params like when `name` is provided\r\n params = assign({}, currentLocation.params, location.params);\r\n path = matcher.stringify(params);\r\n }\r\n const matched = [];\r\n let parentMatcher = matcher;\r\n while (parentMatcher) {\r\n // reversed order so parents are at the beginning\r\n matched.unshift(parentMatcher.record);\r\n parentMatcher = parentMatcher.parent;\r\n }\r\n return {\r\n name,\r\n path,\r\n params,\r\n matched,\r\n meta: mergeMetaFields(matched),\r\n };\r\n }\r\n // add initial routes\r\n routes.forEach(route => addRoute(route));\r\n return { addRoute, resolve, removeRoute, getRoutes, getRecordMatcher };\r\n}\r\nfunction paramsFromLocation(params, keys) {\r\n const newParams = {};\r\n for (const key of keys) {\r\n if (key in params)\r\n newParams[key] = params[key];\r\n }\r\n return newParams;\r\n}\r\n/**\r\n * Normalizes a RouteRecordRaw. Creates a copy\r\n *\r\n * @param record\r\n * @returns the normalized version\r\n */\r\nfunction normalizeRouteRecord(record) {\r\n return {\r\n path: record.path,\r\n redirect: record.redirect,\r\n name: record.name,\r\n meta: record.meta || {},\r\n aliasOf: undefined,\r\n beforeEnter: record.beforeEnter,\r\n props: normalizeRecordProps(record),\r\n children: record.children || [],\r\n instances: {},\r\n leaveGuards: new Set(),\r\n updateGuards: new Set(),\r\n enterCallbacks: {},\r\n components: 'components' in record\r\n ? record.components || null\r\n : record.component && { default: record.component },\r\n };\r\n}\r\n/**\r\n * Normalize the optional `props` in a record to always be an object similar to\r\n * components. Also accept a boolean for components.\r\n * @param record\r\n */\r\nfunction normalizeRecordProps(record) {\r\n const propsObject = {};\r\n // props does not exist on redirect records, but we can set false directly\r\n const props = record.props || false;\r\n if ('component' in record) {\r\n propsObject.default = props;\r\n }\r\n else {\r\n // NOTE: we could also allow a function to be applied to every component.\r\n // Would need user feedback for use cases\r\n for (const name in record.components)\r\n propsObject[name] = typeof props === 'boolean' ? props : props[name];\r\n }\r\n return propsObject;\r\n}\r\n/**\r\n * Checks if a record or any of its parent is an alias\r\n * @param record\r\n */\r\nfunction isAliasRecord(record) {\r\n while (record) {\r\n if (record.record.aliasOf)\r\n return true;\r\n record = record.parent;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Merge meta fields of an array of records\r\n *\r\n * @param matched - array of matched records\r\n */\r\nfunction mergeMetaFields(matched) {\r\n return matched.reduce((meta, record) => assign(meta, record.meta), {});\r\n}\r\nfunction mergeOptions(defaults, partialOptions) {\r\n const options = {};\r\n for (const key in defaults) {\r\n options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\r\n }\r\n return options;\r\n}\r\nfunction isSameParam(a, b) {\r\n return (a.name === b.name &&\r\n a.optional === b.optional &&\r\n a.repeatable === b.repeatable);\r\n}\r\n/**\r\n * Check if a path and its alias have the same required params\r\n *\r\n * @param a - original record\r\n * @param b - alias record\r\n */\r\nfunction checkSameParams(a, b) {\r\n for (const key of a.keys) {\r\n if (!key.optional && !b.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\r\n }\r\n for (const key of b.keys) {\r\n if (!key.optional && !a.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\r\n }\r\n}\r\n/**\r\n * A route with a name and a child with an empty path without a name should warn when adding the route\r\n *\r\n * @param mainNormalizedRecord - RouteRecordNormalized\r\n * @param parent - RouteRecordMatcher\r\n */\r\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\r\n if (parent &&\r\n parent.record.name &&\r\n !mainNormalizedRecord.name &&\r\n !mainNormalizedRecord.path) {\r\n warn(`The route named \"${String(parent.record.name)}\" has a child without a name and an empty path. Using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to remove the warning.`);\r\n }\r\n}\r\nfunction checkMissingParamsInAbsolutePath(record, parent) {\r\n for (const key of parent.keys) {\r\n if (!record.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Absolute path \"${record.record.path}\" must have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\r\n }\r\n}\r\nfunction isRecordChildOf(record, parent) {\r\n return parent.children.some(child => child === record || isRecordChildOf(record, child));\r\n}\n\n/**\r\n * Encoding Rules ␣ = Space Path: ␣ \" < > # ? { } Query: ␣ \" < > # & = Hash: ␣ \"\r\n * < > `\r\n *\r\n * On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\r\n * defines some extra characters to be encoded. Most browsers do not encode them\r\n * in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\r\n * also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`)\r\n * plus `-._~`. This extra safety should be applied to query by patching the\r\n * string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\r\n * should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\r\n * into a `/` if directly typed in. The _backtick_ (`````) should also be\r\n * encoded everywhere because some browsers like FF encode it when directly\r\n * written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\r\n */\r\n// const EXTRA_RESERVED_RE = /[!'()*]/g\r\n// const encodeReservedReplacer = (c: string) => '%' + c.charCodeAt(0).toString(16)\r\nconst HASH_RE = /#/g; // %23\r\nconst AMPERSAND_RE = /&/g; // %26\r\nconst SLASH_RE = /\\//g; // %2F\r\nconst EQUAL_RE = /=/g; // %3D\r\nconst IM_RE = /\\?/g; // %3F\r\nconst PLUS_RE = /\\+/g; // %2B\r\n/**\r\n * NOTE: It's not clear to me if we should encode the + symbol in queries, it\r\n * seems to be less flexible than not doing so and I can't find out the legacy\r\n * systems requiring this for regular requests like text/html. In the standard,\r\n * the encoding of the plus character is only mentioned for\r\n * application/x-www-form-urlencoded\r\n * (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\r\n * leave the plus character as is in queries. To be more flexible, we allow the\r\n * plus character on the query, but it can also be manually encoded by the user.\r\n *\r\n * Resources:\r\n * - https://url.spec.whatwg.org/#urlencoded-parsing\r\n * - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\r\n */\r\nconst ENC_BRACKET_OPEN_RE = /%5B/g; // [\r\nconst ENC_BRACKET_CLOSE_RE = /%5D/g; // ]\r\nconst ENC_CARET_RE = /%5E/g; // ^\r\nconst ENC_BACKTICK_RE = /%60/g; // `\r\nconst ENC_CURLY_OPEN_RE = /%7B/g; // {\r\nconst ENC_PIPE_RE = /%7C/g; // |\r\nconst ENC_CURLY_CLOSE_RE = /%7D/g; // }\r\nconst ENC_SPACE_RE = /%20/g; // }\r\n/**\r\n * Encode characters that need to be encoded on the path, search and hash\r\n * sections of the URL.\r\n *\r\n * @internal\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction commonEncode(text) {\r\n return encodeURI('' + text)\r\n .replace(ENC_PIPE_RE, '|')\r\n .replace(ENC_BRACKET_OPEN_RE, '[')\r\n .replace(ENC_BRACKET_CLOSE_RE, ']');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the hash section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeHash(text) {\r\n return commonEncode(text)\r\n .replace(ENC_CURLY_OPEN_RE, '{')\r\n .replace(ENC_CURLY_CLOSE_RE, '}')\r\n .replace(ENC_CARET_RE, '^');\r\n}\r\n/**\r\n * Encode characters that need to be encoded query values on the query\r\n * section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeQueryValue(text) {\r\n return (commonEncode(text)\r\n // Encode the space as +, encode the + to differentiate it from the space\r\n .replace(PLUS_RE, '%2B')\r\n .replace(ENC_SPACE_RE, '+')\r\n .replace(HASH_RE, '%23')\r\n .replace(AMPERSAND_RE, '%26')\r\n .replace(ENC_BACKTICK_RE, '`')\r\n .replace(ENC_CURLY_OPEN_RE, '{')\r\n .replace(ENC_CURLY_CLOSE_RE, '}')\r\n .replace(ENC_CARET_RE, '^'));\r\n}\r\n/**\r\n * Like `encodeQueryValue` but also encodes the `=` character.\r\n *\r\n * @param text - string to encode\r\n */\r\nfunction encodeQueryKey(text) {\r\n return encodeQueryValue(text).replace(EQUAL_RE, '%3D');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the path section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodePath(text) {\r\n return commonEncode(text).replace(HASH_RE, '%23').replace(IM_RE, '%3F');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the path section of the URL as a\r\n * param. This function encodes everything {@link encodePath} does plus the\r\n * slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\r\n * string instead.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeParam(text) {\r\n return text == null ? '' : encodePath(text).replace(SLASH_RE, '%2F');\r\n}\r\n/**\r\n * Decode text using `decodeURIComponent`. Returns the original text if it\r\n * fails.\r\n *\r\n * @param text - string to decode\r\n * @returns decoded string\r\n */\r\nfunction decode(text) {\r\n try {\r\n return decodeURIComponent('' + text);\r\n }\r\n catch (err) {\r\n (process.env.NODE_ENV !== 'production') && warn(`Error decoding \"${text}\". Using original value`);\r\n }\r\n return '' + text;\r\n}\n\n/**\r\n * Transforms a queryString into a {@link LocationQuery} object. Accept both, a\r\n * version with the leading `?` and without Should work as URLSearchParams\r\n\n * @internal\r\n *\r\n * @param search - search string to parse\r\n * @returns a query object\r\n */\r\nfunction parseQuery(search) {\r\n const query = {};\r\n // avoid creating an object with an empty key and empty value\r\n // because of split('&')\r\n if (search === '' || search === '?')\r\n return query;\r\n const hasLeadingIM = search[0] === '?';\r\n const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&');\r\n for (let i = 0; i < searchParams.length; ++i) {\r\n // pre decode the + into space\r\n const searchParam = searchParams[i].replace(PLUS_RE, ' ');\r\n // allow the = character\r\n const eqPos = searchParam.indexOf('=');\r\n const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\r\n const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\r\n if (key in query) {\r\n // an extra variable for ts types\r\n let currentValue = query[key];\r\n if (!isArray(currentValue)) {\r\n currentValue = query[key] = [currentValue];\r\n }\r\n currentValue.push(value);\r\n }\r\n else {\r\n query[key] = value;\r\n }\r\n }\r\n return query;\r\n}\r\n/**\r\n * Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\r\n * doesn't prepend a `?`\r\n *\r\n * @internal\r\n *\r\n * @param query - query object to stringify\r\n * @returns string version of the query without the leading `?`\r\n */\r\nfunction stringifyQuery(query) {\r\n let search = '';\r\n for (let key in query) {\r\n const value = query[key];\r\n key = encodeQueryKey(key);\r\n if (value == null) {\r\n // only null adds the value\r\n if (value !== undefined) {\r\n search += (search.length ? '&' : '') + key;\r\n }\r\n continue;\r\n }\r\n // keep null values\r\n const values = isArray(value)\r\n ? value.map(v => v && encodeQueryValue(v))\r\n : [value && encodeQueryValue(value)];\r\n values.forEach(value => {\r\n // skip undefined values in arrays as if they were not present\r\n // smaller code than using filter\r\n if (value !== undefined) {\r\n // only append & with non-empty search\r\n search += (search.length ? '&' : '') + key;\r\n if (value != null)\r\n search += '=' + value;\r\n }\r\n });\r\n }\r\n return search;\r\n}\r\n/**\r\n * Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\r\n * numbers into strings, removing keys with an undefined value and replacing\r\n * undefined with null in arrays\r\n *\r\n * @param query - query object to normalize\r\n * @returns a normalized query object\r\n */\r\nfunction normalizeQuery(query) {\r\n const normalizedQuery = {};\r\n for (const key in query) {\r\n const value = query[key];\r\n if (value !== undefined) {\r\n normalizedQuery[key] = isArray(value)\r\n ? value.map(v => (v == null ? null : '' + v))\r\n : value == null\r\n ? value\r\n : '' + value;\r\n }\r\n }\r\n return normalizedQuery;\r\n}\n\n/**\r\n * RouteRecord being rendered by the closest ancestor Router View. Used for\r\n * `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\r\n * Location Matched\r\n *\r\n * @internal\r\n */\r\nconst matchedRouteKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view location matched' : '');\r\n/**\r\n * Allows overriding the router view depth to control which component in\r\n * `matched` is rendered. rvd stands for Router View Depth\r\n *\r\n * @internal\r\n */\r\nconst viewDepthKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view depth' : '');\r\n/**\r\n * Allows overriding the router instance returned by `useRouter` in tests. r\r\n * stands for router\r\n *\r\n * @internal\r\n */\r\nconst routerKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router' : '');\r\n/**\r\n * Allows overriding the current route returned by `useRoute` in tests. rl\r\n * stands for route location\r\n *\r\n * @internal\r\n */\r\nconst routeLocationKey = Symbol((process.env.NODE_ENV !== 'production') ? 'route location' : '');\r\n/**\r\n * Allows overriding the current route used by router-view. Internally this is\r\n * used when the `route` prop is passed.\r\n *\r\n * @internal\r\n */\r\nconst routerViewLocationKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view location' : '');\n\n/**\r\n * Create a list of callbacks that can be reset. Used to create before and after navigation guards list\r\n */\r\nfunction useCallbacks() {\r\n let handlers = [];\r\n function add(handler) {\r\n handlers.push(handler);\r\n return () => {\r\n const i = handlers.indexOf(handler);\r\n if (i > -1)\r\n handlers.splice(i, 1);\r\n };\r\n }\r\n function reset() {\r\n handlers = [];\r\n }\r\n return {\r\n add,\r\n list: () => handlers,\r\n reset,\r\n };\r\n}\n\nfunction registerGuard(record, name, guard) {\r\n const removeFromList = () => {\r\n record[name].delete(guard);\r\n };\r\n onUnmounted(removeFromList);\r\n onDeactivated(removeFromList);\r\n onActivated(() => {\r\n record[name].add(guard);\r\n });\r\n record[name].add(guard);\r\n}\r\n/**\r\n * Add a navigation guard that triggers whenever the component for the current\r\n * location is about to be left. Similar to {@link beforeRouteLeave} but can be\r\n * used in any component. The guard is removed when the component is unmounted.\r\n *\r\n * @param leaveGuard - {@link NavigationGuard}\r\n */\r\nfunction onBeforeRouteLeave(leaveGuard) {\r\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\r\n warn('getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function');\r\n return;\r\n }\r\n const activeRecord = inject(matchedRouteKey, \r\n // to avoid warning\r\n {}).value;\r\n if (!activeRecord) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn('No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?');\r\n return;\r\n }\r\n registerGuard(activeRecord, 'leaveGuards', leaveGuard);\r\n}\r\n/**\r\n * Add a navigation guard that triggers whenever the current location is about\r\n * to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\r\n * component. The guard is removed when the component is unmounted.\r\n *\r\n * @param updateGuard - {@link NavigationGuard}\r\n */\r\nfunction onBeforeRouteUpdate(updateGuard) {\r\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\r\n warn('getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function');\r\n return;\r\n }\r\n const activeRecord = inject(matchedRouteKey, \r\n // to avoid warning\r\n {}).value;\r\n if (!activeRecord) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn('No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?');\r\n return;\r\n }\r\n registerGuard(activeRecord, 'updateGuards', updateGuard);\r\n}\r\nfunction guardToPromiseFn(guard, to, from, record, name) {\r\n // keep a reference to the enterCallbackArray to prevent pushing callbacks if a new navigation took place\r\n const enterCallbackArray = record &&\r\n // name is defined if record is because of the function overload\r\n (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\r\n return () => new Promise((resolve, reject) => {\r\n const next = (valid) => {\r\n if (valid === false) {\r\n reject(createRouterError(4 /* ErrorTypes.NAVIGATION_ABORTED */, {\r\n from,\r\n to,\r\n }));\r\n }\r\n else if (valid instanceof Error) {\r\n reject(valid);\r\n }\r\n else if (isRouteLocation(valid)) {\r\n reject(createRouterError(2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */, {\r\n from: to,\r\n to: valid,\r\n }));\r\n }\r\n else {\r\n if (enterCallbackArray &&\r\n // since enterCallbackArray is truthy, both record and name also are\r\n record.enterCallbacks[name] === enterCallbackArray &&\r\n typeof valid === 'function') {\r\n enterCallbackArray.push(valid);\r\n }\r\n resolve();\r\n }\r\n };\r\n // wrapping with Promise.resolve allows it to work with both async and sync guards\r\n const guardReturn = guard.call(record && record.instances[name], to, from, (process.env.NODE_ENV !== 'production') ? canOnlyBeCalledOnce(next, to, from) : next);\r\n let guardCall = Promise.resolve(guardReturn);\r\n if (guard.length < 3)\r\n guardCall = guardCall.then(next);\r\n if ((process.env.NODE_ENV !== 'production') && guard.length > 2) {\r\n const message = `The \"next\" callback was never called inside of ${guard.name ? '\"' + guard.name + '\"' : ''}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\r\n if (typeof guardReturn === 'object' && 'then' in guardReturn) {\r\n guardCall = guardCall.then(resolvedValue => {\r\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\r\n if (!next._called) {\r\n warn(message);\r\n return Promise.reject(new Error('Invalid navigation guard'));\r\n }\r\n return resolvedValue;\r\n });\r\n }\r\n else if (guardReturn !== undefined) {\r\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\r\n if (!next._called) {\r\n warn(message);\r\n reject(new Error('Invalid navigation guard'));\r\n return;\r\n }\r\n }\r\n }\r\n guardCall.catch(err => reject(err));\r\n });\r\n}\r\nfunction canOnlyBeCalledOnce(next, to, from) {\r\n let called = 0;\r\n return function () {\r\n if (called++ === 1)\r\n warn(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\r\n // @ts-expect-error: we put it in the original one because it's easier to check\r\n next._called = true;\r\n if (called === 1)\r\n next.apply(null, arguments);\r\n };\r\n}\r\nfunction extractComponentsGuards(matched, guardType, to, from) {\r\n const guards = [];\r\n for (const record of matched) {\r\n if ((process.env.NODE_ENV !== 'production') && !record.components && !record.children.length) {\r\n warn(`Record with path \"${record.path}\" is either missing a \"component(s)\"` +\r\n ` or \"children\" property.`);\r\n }\r\n for (const name in record.components) {\r\n let rawComponent = record.components[name];\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!rawComponent ||\r\n (typeof rawComponent !== 'object' &&\r\n typeof rawComponent !== 'function')) {\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is not` +\r\n ` a valid component. Received \"${String(rawComponent)}\".`);\r\n // throw to ensure we stop here but warn to ensure the message isn't\r\n // missed by the user\r\n throw new Error('Invalid route component');\r\n }\r\n else if ('then' in rawComponent) {\r\n // warn if user wrote import('/component.vue') instead of () =>\r\n // import('./component.vue')\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a ` +\r\n `Promise instead of a function that returns a Promise. Did you ` +\r\n `write \"import('./MyPage.vue')\" instead of ` +\r\n `\"() => import('./MyPage.vue')\" ? This will break in ` +\r\n `production if not fixed.`);\r\n const promise = rawComponent;\r\n rawComponent = () => promise;\r\n }\r\n else if (rawComponent.__asyncLoader &&\r\n // warn only once per component\r\n !rawComponent.__warnedDefineAsync) {\r\n rawComponent.__warnedDefineAsync = true;\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is defined ` +\r\n `using \"defineAsyncComponent()\". ` +\r\n `Write \"() => import('./MyPage.vue')\" instead of ` +\r\n `\"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\r\n }\r\n }\r\n // skip update and leave guards if the route component is not mounted\r\n if (guardType !== 'beforeRouteEnter' && !record.instances[name])\r\n continue;\r\n if (isRouteComponent(rawComponent)) {\r\n // __vccOpts is added by vue-class-component and contain the regular options\r\n const options = rawComponent.__vccOpts || rawComponent;\r\n const guard = options[guardType];\r\n guard && guards.push(guardToPromiseFn(guard, to, from, record, name));\r\n }\r\n else {\r\n // start requesting the chunk already\r\n let componentPromise = rawComponent();\r\n if ((process.env.NODE_ENV !== 'production') && !('catch' in componentPromise)) {\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\r\n componentPromise = Promise.resolve(componentPromise);\r\n }\r\n guards.push(() => componentPromise.then(resolved => {\r\n if (!resolved)\r\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`));\r\n const resolvedComponent = isESModule(resolved)\r\n ? resolved.default\r\n : resolved;\r\n // replace the function with the resolved component\r\n // cannot be null or undefined because we went into the for loop\r\n record.components[name] = resolvedComponent;\r\n // __vccOpts is added by vue-class-component and contain the regular options\r\n const options = resolvedComponent.__vccOpts || resolvedComponent;\r\n const guard = options[guardType];\r\n return guard && guardToPromiseFn(guard, to, from, record, name)();\r\n }));\r\n }\r\n }\r\n }\r\n return guards;\r\n}\r\n/**\r\n * Allows differentiating lazy components from functional components and vue-class-component\r\n * @internal\r\n *\r\n * @param component\r\n */\r\nfunction isRouteComponent(component) {\r\n return (typeof component === 'object' ||\r\n 'displayName' in component ||\r\n 'props' in component ||\r\n '__vccOpts' in component);\r\n}\r\n/**\r\n * Ensures a route is loaded, so it can be passed as o prop to ``.\r\n *\r\n * @param route - resolved route to load\r\n */\r\nfunction loadRouteLocation(route) {\r\n return route.matched.every(record => record.redirect)\r\n ? Promise.reject(new Error('Cannot load a route that redirects.'))\r\n : Promise.all(route.matched.map(record => record.components &&\r\n Promise.all(Object.keys(record.components).reduce((promises, name) => {\r\n const rawComponent = record.components[name];\r\n if (typeof rawComponent === 'function' &&\r\n !('displayName' in rawComponent)) {\r\n promises.push(rawComponent().then(resolved => {\r\n if (!resolved)\r\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\". Ensure you passed a function that returns a promise.`));\r\n const resolvedComponent = isESModule(resolved)\r\n ? resolved.default\r\n : resolved;\r\n // replace the function with the resolved component\r\n // cannot be null or undefined because we went into the for loop\r\n record.components[name] = resolvedComponent;\r\n return;\r\n }));\r\n }\r\n return promises;\r\n }, [])))).then(() => route);\r\n}\n\n// TODO: we could allow currentRoute as a prop to expose `isActive` and\r\n// `isExactActive` behavior should go through an RFC\r\nfunction useLink(props) {\r\n const router = inject(routerKey);\r\n const currentRoute = inject(routeLocationKey);\r\n const route = computed(() => router.resolve(unref(props.to)));\r\n const activeRecordIndex = computed(() => {\r\n const { matched } = route.value;\r\n const { length } = matched;\r\n const routeMatched = matched[length - 1];\r\n const currentMatched = currentRoute.matched;\r\n if (!routeMatched || !currentMatched.length)\r\n return -1;\r\n const index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\r\n if (index > -1)\r\n return index;\r\n // possible parent record\r\n const parentRecordPath = getOriginalPath(matched[length - 2]);\r\n return (\r\n // we are dealing with nested routes\r\n length > 1 &&\r\n // if the parent and matched route have the same path, this link is\r\n // referring to the empty child. Or we currently are on a different\r\n // child of the same parent\r\n getOriginalPath(routeMatched) === parentRecordPath &&\r\n // avoid comparing the child with its parent\r\n currentMatched[currentMatched.length - 1].path !== parentRecordPath\r\n ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2]))\r\n : index);\r\n });\r\n const isActive = computed(() => activeRecordIndex.value > -1 &&\r\n includesParams(currentRoute.params, route.value.params));\r\n const isExactActive = computed(() => activeRecordIndex.value > -1 &&\r\n activeRecordIndex.value === currentRoute.matched.length - 1 &&\r\n isSameRouteLocationParams(currentRoute.params, route.value.params));\r\n function navigate(e = {}) {\r\n if (guardEvent(e)) {\r\n return router[unref(props.replace) ? 'replace' : 'push'](unref(props.to)\r\n // avoid uncaught errors are they are logged anyway\r\n ).catch(noop);\r\n }\r\n return Promise.resolve();\r\n }\r\n // devtools only\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\r\n const instance = getCurrentInstance();\r\n if (instance) {\r\n const linkContextDevtools = {\r\n route: route.value,\r\n isActive: isActive.value,\r\n isExactActive: isExactActive.value,\r\n };\r\n // @ts-expect-error: this is internal\r\n instance.__vrl_devtools = instance.__vrl_devtools || [];\r\n // @ts-expect-error: this is internal\r\n instance.__vrl_devtools.push(linkContextDevtools);\r\n watchEffect(() => {\r\n linkContextDevtools.route = route.value;\r\n linkContextDevtools.isActive = isActive.value;\r\n linkContextDevtools.isExactActive = isExactActive.value;\r\n }, { flush: 'post' });\r\n }\r\n }\r\n /**\r\n * NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this\r\n */\r\n return {\r\n route,\r\n href: computed(() => route.value.href),\r\n isActive,\r\n isExactActive,\r\n navigate,\r\n };\r\n}\r\nconst RouterLinkImpl = /*#__PURE__*/ defineComponent({\r\n name: 'RouterLink',\r\n compatConfig: { MODE: 3 },\r\n props: {\r\n to: {\r\n type: [String, Object],\r\n required: true,\r\n },\r\n replace: Boolean,\r\n activeClass: String,\r\n // inactiveClass: String,\r\n exactActiveClass: String,\r\n custom: Boolean,\r\n ariaCurrentValue: {\r\n type: String,\r\n default: 'page',\r\n },\r\n },\r\n useLink,\r\n setup(props, { slots }) {\r\n const link = reactive(useLink(props));\r\n const { options } = inject(routerKey);\r\n const elClass = computed(() => ({\r\n [getLinkClass(props.activeClass, options.linkActiveClass, 'router-link-active')]: link.isActive,\r\n // [getLinkClass(\r\n // props.inactiveClass,\r\n // options.linkInactiveClass,\r\n // 'router-link-inactive'\r\n // )]: !link.isExactActive,\r\n [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, 'router-link-exact-active')]: link.isExactActive,\r\n }));\r\n return () => {\r\n const children = slots.default && slots.default(link);\r\n return props.custom\r\n ? children\r\n : h('a', {\r\n 'aria-current': link.isExactActive\r\n ? props.ariaCurrentValue\r\n : null,\r\n href: link.href,\r\n // this would override user added attrs but Vue will still add\r\n // the listener, so we end up triggering both\r\n onClick: link.navigate,\r\n class: elClass.value,\r\n }, children);\r\n };\r\n },\r\n});\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\n/**\r\n * Component to render a link that triggers a navigation on click.\r\n */\r\nconst RouterLink = RouterLinkImpl;\r\nfunction guardEvent(e) {\r\n // don't redirect with control keys\r\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\r\n return;\r\n // don't redirect when preventDefault called\r\n if (e.defaultPrevented)\r\n return;\r\n // don't redirect on right click\r\n if (e.button !== undefined && e.button !== 0)\r\n return;\r\n // don't redirect if `target=\"_blank\"`\r\n // @ts-expect-error getAttribute does exist\r\n if (e.currentTarget && e.currentTarget.getAttribute) {\r\n // @ts-expect-error getAttribute exists\r\n const target = e.currentTarget.getAttribute('target');\r\n if (/\\b_blank\\b/i.test(target))\r\n return;\r\n }\r\n // this may be a Weex event which doesn't have this method\r\n if (e.preventDefault)\r\n e.preventDefault();\r\n return true;\r\n}\r\nfunction includesParams(outer, inner) {\r\n for (const key in inner) {\r\n const innerValue = inner[key];\r\n const outerValue = outer[key];\r\n if (typeof innerValue === 'string') {\r\n if (innerValue !== outerValue)\r\n return false;\r\n }\r\n else {\r\n if (!isArray(outerValue) ||\r\n outerValue.length !== innerValue.length ||\r\n innerValue.some((value, i) => value !== outerValue[i]))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Get the original path value of a record by following its aliasOf\r\n * @param record\r\n */\r\nfunction getOriginalPath(record) {\r\n return record ? (record.aliasOf ? record.aliasOf.path : record.path) : '';\r\n}\r\n/**\r\n * Utility class to get the active class based on defaults.\r\n * @param propClass\r\n * @param globalClass\r\n * @param defaultClass\r\n */\r\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null\r\n ? propClass\r\n : globalClass != null\r\n ? globalClass\r\n : defaultClass;\n\nconst RouterViewImpl = /*#__PURE__*/ defineComponent({\r\n name: 'RouterView',\r\n // #674 we manually inherit them\r\n inheritAttrs: false,\r\n props: {\r\n name: {\r\n type: String,\r\n default: 'default',\r\n },\r\n route: Object,\r\n },\r\n // Better compat for @vue/compat users\r\n // https://github.com/vuejs/router/issues/1315\r\n compatConfig: { MODE: 3 },\r\n setup(props, { attrs, slots }) {\r\n (process.env.NODE_ENV !== 'production') && warnDeprecatedUsage();\r\n const injectedRoute = inject(routerViewLocationKey);\r\n const routeToDisplay = computed(() => props.route || injectedRoute.value);\r\n const injectedDepth = inject(viewDepthKey, 0);\r\n // The depth changes based on empty components option, which allows passthrough routes e.g. routes with children\r\n // that are used to reuse the `path` property\r\n const depth = computed(() => {\r\n let initialDepth = unref(injectedDepth);\r\n const { matched } = routeToDisplay.value;\r\n let matchedRoute;\r\n while ((matchedRoute = matched[initialDepth]) &&\r\n !matchedRoute.components) {\r\n initialDepth++;\r\n }\r\n return initialDepth;\r\n });\r\n const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\r\n provide(viewDepthKey, computed(() => depth.value + 1));\r\n provide(matchedRouteKey, matchedRouteRef);\r\n provide(routerViewLocationKey, routeToDisplay);\r\n const viewRef = ref();\r\n // watch at the same time the component instance, the route record we are\r\n // rendering, and the name\r\n watch(() => [viewRef.value, matchedRouteRef.value, props.name], ([instance, to, name], [oldInstance, from, oldName]) => {\r\n // copy reused instances\r\n if (to) {\r\n // this will update the instance for new instances as well as reused\r\n // instances when navigating to a new route\r\n to.instances[name] = instance;\r\n // the component instance is reused for a different route or name, so\r\n // we copy any saved update or leave guards. With async setup, the\r\n // mounting component will mount before the matchedRoute changes,\r\n // making instance === oldInstance, so we check if guards have been\r\n // added before. This works because we remove guards when\r\n // unmounting/deactivating components\r\n if (from && from !== to && instance && instance === oldInstance) {\r\n if (!to.leaveGuards.size) {\r\n to.leaveGuards = from.leaveGuards;\r\n }\r\n if (!to.updateGuards.size) {\r\n to.updateGuards = from.updateGuards;\r\n }\r\n }\r\n }\r\n // trigger beforeRouteEnter next callbacks\r\n if (instance &&\r\n to &&\r\n // if there is no instance but to and from are the same this might be\r\n // the first visit\r\n (!from || !isSameRouteRecord(to, from) || !oldInstance)) {\r\n (to.enterCallbacks[name] || []).forEach(callback => callback(instance));\r\n }\r\n }, { flush: 'post' });\r\n return () => {\r\n const route = routeToDisplay.value;\r\n // we need the value at the time we render because when we unmount, we\r\n // navigated to a different location so the value is different\r\n const currentName = props.name;\r\n const matchedRoute = matchedRouteRef.value;\r\n const ViewComponent = matchedRoute && matchedRoute.components[currentName];\r\n if (!ViewComponent) {\r\n return normalizeSlot(slots.default, { Component: ViewComponent, route });\r\n }\r\n // props from route configuration\r\n const routePropsOption = matchedRoute.props[currentName];\r\n const routeProps = routePropsOption\r\n ? routePropsOption === true\r\n ? route.params\r\n : typeof routePropsOption === 'function'\r\n ? routePropsOption(route)\r\n : routePropsOption\r\n : null;\r\n const onVnodeUnmounted = vnode => {\r\n // remove the instance reference to prevent leak\r\n if (vnode.component.isUnmounted) {\r\n matchedRoute.instances[currentName] = null;\r\n }\r\n };\r\n const component = h(ViewComponent, assign({}, routeProps, attrs, {\r\n onVnodeUnmounted,\r\n ref: viewRef,\r\n }));\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n isBrowser &&\r\n component.ref) {\r\n // TODO: can display if it's an alias, its props\r\n const info = {\r\n depth: depth.value,\r\n name: matchedRoute.name,\r\n path: matchedRoute.path,\r\n meta: matchedRoute.meta,\r\n };\r\n const internalInstances = isArray(component.ref)\r\n ? component.ref.map(r => r.i)\r\n : [component.ref.i];\r\n internalInstances.forEach(instance => {\r\n // @ts-expect-error\r\n instance.__vrv_devtools = info;\r\n });\r\n }\r\n return (\r\n // pass the vnode to the slot as a prop.\r\n // h and both accept vnodes\r\n normalizeSlot(slots.default, { Component: component, route }) ||\r\n component);\r\n };\r\n },\r\n});\r\nfunction normalizeSlot(slot, data) {\r\n if (!slot)\r\n return null;\r\n const slotContent = slot(data);\r\n return slotContent.length === 1 ? slotContent[0] : slotContent;\r\n}\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\n/**\r\n * Component to display the current route the user is at.\r\n */\r\nconst RouterView = RouterViewImpl;\r\n// warn against deprecated usage with & \r\n// due to functional component being no longer eager in Vue 3\r\nfunction warnDeprecatedUsage() {\r\n const instance = getCurrentInstance();\r\n const parentName = instance.parent && instance.parent.type.name;\r\n if (parentName &&\r\n (parentName === 'KeepAlive' || parentName.includes('Transition'))) {\r\n const comp = parentName === 'KeepAlive' ? 'keep-alive' : 'transition';\r\n warn(` can no longer be used directly inside or .\\n` +\r\n `Use slot props instead:\\n\\n` +\r\n `\\n` +\r\n ` <${comp}>\\n` +\r\n ` \\n` +\r\n ` \\n` +\r\n ``);\r\n }\r\n}\n\n/**\r\n * Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances).\r\n *\r\n * @param routeLocation - routeLocation to format\r\n * @param tooltip - optional tooltip\r\n * @returns a copy of the routeLocation\r\n */\r\nfunction formatRouteLocation(routeLocation, tooltip) {\r\n const copy = assign({}, routeLocation, {\r\n // remove variables that can contain vue instances\r\n matched: routeLocation.matched.map(matched => omit(matched, ['instances', 'children', 'aliasOf'])),\r\n });\r\n return {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: routeLocation.fullPath,\r\n tooltip,\r\n value: copy,\r\n },\r\n };\r\n}\r\nfunction formatDisplay(display) {\r\n return {\r\n _custom: {\r\n display,\r\n },\r\n };\r\n}\r\n// to support multiple router instances\r\nlet routerId = 0;\r\nfunction addDevtools(app, router, matcher) {\r\n // Take over router.beforeEach and afterEach\r\n // make sure we are not registering the devtool twice\r\n if (router.__hasDevtools)\r\n return;\r\n router.__hasDevtools = true;\r\n // increment to support multiple router instances\r\n const id = routerId++;\r\n setupDevtoolsPlugin({\r\n id: 'org.vuejs.router' + (id ? '.' + id : ''),\r\n label: 'Vue Router',\r\n packageName: 'vue-router',\r\n homepage: 'https://router.vuejs.org',\r\n logo: 'https://router.vuejs.org/logo.png',\r\n componentStateTypes: ['Routing'],\r\n app,\r\n }, api => {\r\n if (typeof api.now !== 'function') {\r\n console.warn('[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.');\r\n }\r\n // display state added by the router\r\n api.on.inspectComponent((payload, ctx) => {\r\n if (payload.instanceData) {\r\n payload.instanceData.state.push({\r\n type: 'Routing',\r\n key: '$route',\r\n editable: false,\r\n value: formatRouteLocation(router.currentRoute.value, 'Current Route'),\r\n });\r\n }\r\n });\r\n // mark router-link as active and display tags on router views\r\n api.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\r\n if (componentInstance.__vrv_devtools) {\r\n const info = componentInstance.__vrv_devtools;\r\n node.tags.push({\r\n label: (info.name ? `${info.name.toString()}: ` : '') + info.path,\r\n textColor: 0,\r\n tooltip: 'This component is rendered by <router-view>',\r\n backgroundColor: PINK_500,\r\n });\r\n }\r\n // if multiple useLink are used\r\n if (isArray(componentInstance.__vrl_devtools)) {\r\n componentInstance.__devtoolsApi = api;\r\n componentInstance.__vrl_devtools.forEach(devtoolsData => {\r\n let backgroundColor = ORANGE_400;\r\n let tooltip = '';\r\n if (devtoolsData.isExactActive) {\r\n backgroundColor = LIME_500;\r\n tooltip = 'This is exactly active';\r\n }\r\n else if (devtoolsData.isActive) {\r\n backgroundColor = BLUE_600;\r\n tooltip = 'This link is active';\r\n }\r\n node.tags.push({\r\n label: devtoolsData.route.path,\r\n textColor: 0,\r\n tooltip,\r\n backgroundColor,\r\n });\r\n });\r\n }\r\n });\r\n watch(router.currentRoute, () => {\r\n // refresh active state\r\n refreshRoutesView();\r\n api.notifyComponentUpdate();\r\n api.sendInspectorTree(routerInspectorId);\r\n api.sendInspectorState(routerInspectorId);\r\n });\r\n const navigationsLayerId = 'router:navigations:' + id;\r\n api.addTimelineLayer({\r\n id: navigationsLayerId,\r\n label: `Router${id ? ' ' + id : ''} Navigations`,\r\n color: 0x40a8c4,\r\n });\r\n // const errorsLayerId = 'router:errors'\r\n // api.addTimelineLayer({\r\n // id: errorsLayerId,\r\n // label: 'Router Errors',\r\n // color: 0xea5455,\r\n // })\r\n router.onError((error, to) => {\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n title: 'Error during Navigation',\r\n subtitle: to.fullPath,\r\n logType: 'error',\r\n time: api.now(),\r\n data: { error },\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n // attached to `meta` and used to group events\r\n let navigationId = 0;\r\n router.beforeEach((to, from) => {\r\n const data = {\r\n guard: formatDisplay('beforeEach'),\r\n from: formatRouteLocation(from, 'Current Location during this navigation'),\r\n to: formatRouteLocation(to, 'Target location'),\r\n };\r\n // Used to group navigations together, hide from devtools\r\n Object.defineProperty(to.meta, '__navigationId', {\r\n value: navigationId++,\r\n });\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n time: api.now(),\r\n title: 'Start of navigation',\r\n subtitle: to.fullPath,\r\n data,\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n router.afterEach((to, from, failure) => {\r\n const data = {\r\n guard: formatDisplay('afterEach'),\r\n };\r\n if (failure) {\r\n data.failure = {\r\n _custom: {\r\n type: Error,\r\n readOnly: true,\r\n display: failure ? failure.message : '',\r\n tooltip: 'Navigation Failure',\r\n value: failure,\r\n },\r\n };\r\n data.status = formatDisplay('❌');\r\n }\r\n else {\r\n data.status = formatDisplay('✅');\r\n }\r\n // we set here to have the right order\r\n data.from = formatRouteLocation(from, 'Current Location during this navigation');\r\n data.to = formatRouteLocation(to, 'Target location');\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n title: 'End of navigation',\r\n subtitle: to.fullPath,\r\n time: api.now(),\r\n data,\r\n logType: failure ? 'warning' : 'default',\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n /**\r\n * Inspector of Existing routes\r\n */\r\n const routerInspectorId = 'router-inspector:' + id;\r\n api.addInspector({\r\n id: routerInspectorId,\r\n label: 'Routes' + (id ? ' ' + id : ''),\r\n icon: 'book',\r\n treeFilterPlaceholder: 'Search routes',\r\n });\r\n function refreshRoutesView() {\r\n // the routes view isn't active\r\n if (!activeRoutesPayload)\r\n return;\r\n const payload = activeRoutesPayload;\r\n // children routes will appear as nested\r\n let routes = matcher.getRoutes().filter(route => !route.parent);\r\n // reset match state to false\r\n routes.forEach(resetMatchStateOnRouteRecord);\r\n // apply a match state if there is a payload\r\n if (payload.filter) {\r\n routes = routes.filter(route => \r\n // save matches state based on the payload\r\n isRouteMatching(route, payload.filter.toLowerCase()));\r\n }\r\n // mark active routes\r\n routes.forEach(route => markRouteRecordActive(route, router.currentRoute.value));\r\n payload.rootNodes = routes.map(formatRouteRecordForInspector);\r\n }\r\n let activeRoutesPayload;\r\n api.on.getInspectorTree(payload => {\r\n activeRoutesPayload = payload;\r\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\r\n refreshRoutesView();\r\n }\r\n });\r\n /**\r\n * Display information about the currently selected route record\r\n */\r\n api.on.getInspectorState(payload => {\r\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\r\n const routes = matcher.getRoutes();\r\n const route = routes.find(route => route.record.__vd_id === payload.nodeId);\r\n if (route) {\r\n payload.state = {\r\n options: formatRouteRecordMatcherForStateInspector(route),\r\n };\r\n }\r\n }\r\n });\r\n api.sendInspectorTree(routerInspectorId);\r\n api.sendInspectorState(routerInspectorId);\r\n });\r\n}\r\nfunction modifierForKey(key) {\r\n if (key.optional) {\r\n return key.repeatable ? '*' : '?';\r\n }\r\n else {\r\n return key.repeatable ? '+' : '';\r\n }\r\n}\r\nfunction formatRouteRecordMatcherForStateInspector(route) {\r\n const { record } = route;\r\n const fields = [\r\n { editable: false, key: 'path', value: record.path },\r\n ];\r\n if (record.name != null) {\r\n fields.push({\r\n editable: false,\r\n key: 'name',\r\n value: record.name,\r\n });\r\n }\r\n fields.push({ editable: false, key: 'regexp', value: route.re });\r\n if (route.keys.length) {\r\n fields.push({\r\n editable: false,\r\n key: 'keys',\r\n value: {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: route.keys\r\n .map(key => `${key.name}${modifierForKey(key)}`)\r\n .join(' '),\r\n tooltip: 'Param keys',\r\n value: route.keys,\r\n },\r\n },\r\n });\r\n }\r\n if (record.redirect != null) {\r\n fields.push({\r\n editable: false,\r\n key: 'redirect',\r\n value: record.redirect,\r\n });\r\n }\r\n if (route.alias.length) {\r\n fields.push({\r\n editable: false,\r\n key: 'aliases',\r\n value: route.alias.map(alias => alias.record.path),\r\n });\r\n }\r\n if (Object.keys(route.record.meta).length) {\r\n fields.push({\r\n editable: false,\r\n key: 'meta',\r\n value: route.record.meta,\r\n });\r\n }\r\n fields.push({\r\n key: 'score',\r\n editable: false,\r\n value: {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: route.score.map(score => score.join(', ')).join(' | '),\r\n tooltip: 'Score used to sort routes',\r\n value: route.score,\r\n },\r\n },\r\n });\r\n return fields;\r\n}\r\n/**\r\n * Extracted from tailwind palette\r\n */\r\nconst PINK_500 = 0xec4899;\r\nconst BLUE_600 = 0x2563eb;\r\nconst LIME_500 = 0x84cc16;\r\nconst CYAN_400 = 0x22d3ee;\r\nconst ORANGE_400 = 0xfb923c;\r\n// const GRAY_100 = 0xf4f4f5\r\nconst DARK = 0x666666;\r\nfunction formatRouteRecordForInspector(route) {\r\n const tags = [];\r\n const { record } = route;\r\n if (record.name != null) {\r\n tags.push({\r\n label: String(record.name),\r\n textColor: 0,\r\n backgroundColor: CYAN_400,\r\n });\r\n }\r\n if (record.aliasOf) {\r\n tags.push({\r\n label: 'alias',\r\n textColor: 0,\r\n backgroundColor: ORANGE_400,\r\n });\r\n }\r\n if (route.__vd_match) {\r\n tags.push({\r\n label: 'matches',\r\n textColor: 0,\r\n backgroundColor: PINK_500,\r\n });\r\n }\r\n if (route.__vd_exactActive) {\r\n tags.push({\r\n label: 'exact',\r\n textColor: 0,\r\n backgroundColor: LIME_500,\r\n });\r\n }\r\n if (route.__vd_active) {\r\n tags.push({\r\n label: 'active',\r\n textColor: 0,\r\n backgroundColor: BLUE_600,\r\n });\r\n }\r\n if (record.redirect) {\r\n tags.push({\r\n label: typeof record.redirect === 'string'\r\n ? `redirect: ${record.redirect}`\r\n : 'redirects',\r\n textColor: 0xffffff,\r\n backgroundColor: DARK,\r\n });\r\n }\r\n // add an id to be able to select it. Using the `path` is not possible because\r\n // empty path children would collide with their parents\r\n let id = record.__vd_id;\r\n if (id == null) {\r\n id = String(routeRecordId++);\r\n record.__vd_id = id;\r\n }\r\n return {\r\n id,\r\n label: record.path,\r\n tags,\r\n children: route.children.map(formatRouteRecordForInspector),\r\n };\r\n}\r\n// incremental id for route records and inspector state\r\nlet routeRecordId = 0;\r\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\r\nfunction markRouteRecordActive(route, currentRoute) {\r\n // no route will be active if matched is empty\r\n // reset the matching state\r\n const isExactActive = currentRoute.matched.length &&\r\n isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\r\n route.__vd_exactActive = route.__vd_active = isExactActive;\r\n if (!isExactActive) {\r\n route.__vd_active = currentRoute.matched.some(match => isSameRouteRecord(match, route.record));\r\n }\r\n route.children.forEach(childRoute => markRouteRecordActive(childRoute, currentRoute));\r\n}\r\nfunction resetMatchStateOnRouteRecord(route) {\r\n route.__vd_match = false;\r\n route.children.forEach(resetMatchStateOnRouteRecord);\r\n}\r\nfunction isRouteMatching(route, filter) {\r\n const found = String(route.re).match(EXTRACT_REGEXP_RE);\r\n route.__vd_match = false;\r\n if (!found || found.length < 3) {\r\n return false;\r\n }\r\n // use a regexp without $ at the end to match nested routes better\r\n const nonEndingRE = new RegExp(found[1].replace(/\\$$/, ''), found[2]);\r\n if (nonEndingRE.test(filter)) {\r\n // mark children as matches\r\n route.children.forEach(child => isRouteMatching(child, filter));\r\n // exception case: `/`\r\n if (route.record.path !== '/' || filter === '/') {\r\n route.__vd_match = route.re.test(filter);\r\n return true;\r\n }\r\n // hide the / route\r\n return false;\r\n }\r\n const path = route.record.path.toLowerCase();\r\n const decodedPath = decode(path);\r\n // also allow partial matching on the path\r\n if (!filter.startsWith('/') &&\r\n (decodedPath.includes(filter) || path.includes(filter)))\r\n return true;\r\n if (decodedPath.startsWith(filter) || path.startsWith(filter))\r\n return true;\r\n if (route.record.name && String(route.record.name).includes(filter))\r\n return true;\r\n return route.children.some(child => isRouteMatching(child, filter));\r\n}\r\nfunction omit(obj, keys) {\r\n const ret = {};\r\n for (const key in obj) {\r\n if (!keys.includes(key)) {\r\n // @ts-expect-error\r\n ret[key] = obj[key];\r\n }\r\n }\r\n return ret;\r\n}\n\n/**\r\n * Creates a Router instance that can be used by a Vue app.\r\n *\r\n * @param options - {@link RouterOptions}\r\n */\r\nfunction createRouter(options) {\r\n const matcher = createRouterMatcher(options.routes, options);\r\n const parseQuery$1 = options.parseQuery || parseQuery;\r\n const stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\r\n const routerHistory = options.history;\r\n if ((process.env.NODE_ENV !== 'production') && !routerHistory)\r\n throw new Error('Provide the \"history\" option when calling \"createRouter()\":' +\r\n ' https://next.router.vuejs.org/api/#history.');\r\n const beforeGuards = useCallbacks();\r\n const beforeResolveGuards = useCallbacks();\r\n const afterGuards = useCallbacks();\r\n const currentRoute = shallowRef(START_LOCATION_NORMALIZED);\r\n let pendingLocation = START_LOCATION_NORMALIZED;\r\n // leave the scrollRestoration if no scrollBehavior is provided\r\n if (isBrowser && options.scrollBehavior && 'scrollRestoration' in history) {\r\n history.scrollRestoration = 'manual';\r\n }\r\n const normalizeParams = applyToParams.bind(null, paramValue => '' + paramValue);\r\n const encodeParams = applyToParams.bind(null, encodeParam);\r\n const decodeParams = \r\n // @ts-expect-error: intentionally avoid the type check\r\n applyToParams.bind(null, decode);\r\n function addRoute(parentOrRoute, route) {\r\n let parent;\r\n let record;\r\n if (isRouteName(parentOrRoute)) {\r\n parent = matcher.getRecordMatcher(parentOrRoute);\r\n record = route;\r\n }\r\n else {\r\n record = parentOrRoute;\r\n }\r\n return matcher.addRoute(record, parent);\r\n }\r\n function removeRoute(name) {\r\n const recordMatcher = matcher.getRecordMatcher(name);\r\n if (recordMatcher) {\r\n matcher.removeRoute(recordMatcher);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Cannot remove non-existent route \"${String(name)}\"`);\r\n }\r\n }\r\n function getRoutes() {\r\n return matcher.getRoutes().map(routeMatcher => routeMatcher.record);\r\n }\r\n function hasRoute(name) {\r\n return !!matcher.getRecordMatcher(name);\r\n }\r\n function resolve(rawLocation, currentLocation) {\r\n // const objectLocation = routerLocationAsObject(rawLocation)\r\n // we create a copy to modify it later\r\n currentLocation = assign({}, currentLocation || currentRoute.value);\r\n if (typeof rawLocation === 'string') {\r\n const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\r\n const matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\r\n const href = routerHistory.createHref(locationNormalized.fullPath);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (href.startsWith('//'))\r\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\r\n else if (!matchedRoute.matched.length) {\r\n warn(`No match found for location with path \"${rawLocation}\"`);\r\n }\r\n }\r\n // locationNormalized is always a new object\r\n return assign(locationNormalized, matchedRoute, {\r\n params: decodeParams(matchedRoute.params),\r\n hash: decode(locationNormalized.hash),\r\n redirectedFrom: undefined,\r\n href,\r\n });\r\n }\r\n let matcherLocation;\r\n // path could be relative in object as well\r\n if ('path' in rawLocation) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n 'params' in rawLocation &&\r\n !('name' in rawLocation) &&\r\n // @ts-expect-error: the type is never\r\n Object.keys(rawLocation.params).length) {\r\n warn(`Path \"${\r\n // @ts-expect-error: the type is never\r\n rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\r\n }\r\n matcherLocation = assign({}, rawLocation, {\r\n path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path,\r\n });\r\n }\r\n else {\r\n // remove any nullish param\r\n const targetParams = assign({}, rawLocation.params);\r\n for (const key in targetParams) {\r\n if (targetParams[key] == null) {\r\n delete targetParams[key];\r\n }\r\n }\r\n // pass encoded values to the matcher, so it can produce encoded path and fullPath\r\n matcherLocation = assign({}, rawLocation, {\r\n params: encodeParams(rawLocation.params),\r\n });\r\n // current location params are decoded, we need to encode them in case the\r\n // matcher merges the params\r\n currentLocation.params = encodeParams(currentLocation.params);\r\n }\r\n const matchedRoute = matcher.resolve(matcherLocation, currentLocation);\r\n const hash = rawLocation.hash || '';\r\n if ((process.env.NODE_ENV !== 'production') && hash && !hash.startsWith('#')) {\r\n warn(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\r\n }\r\n // the matcher might have merged current location params, so\r\n // we need to run the decoding again\r\n matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\r\n const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\r\n hash: encodeHash(hash),\r\n path: matchedRoute.path,\r\n }));\r\n const href = routerHistory.createHref(fullPath);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (href.startsWith('//')) {\r\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\r\n }\r\n else if (!matchedRoute.matched.length) {\r\n warn(`No match found for location with path \"${'path' in rawLocation ? rawLocation.path : rawLocation}\"`);\r\n }\r\n }\r\n return assign({\r\n fullPath,\r\n // keep the hash encoded so fullPath is effectively path + encodedQuery +\r\n // hash\r\n hash,\r\n query: \r\n // if the user is using a custom query lib like qs, we might have\r\n // nested objects, so we keep the query as is, meaning it can contain\r\n // numbers at `$route.query`, but at the point, the user will have to\r\n // use their own type anyway.\r\n // https://github.com/vuejs/router/issues/328#issuecomment-649481567\r\n stringifyQuery$1 === stringifyQuery\r\n ? normalizeQuery(rawLocation.query)\r\n : (rawLocation.query || {}),\r\n }, matchedRoute, {\r\n redirectedFrom: undefined,\r\n href,\r\n });\r\n }\r\n function locationAsObject(to) {\r\n return typeof to === 'string'\r\n ? parseURL(parseQuery$1, to, currentRoute.value.path)\r\n : assign({}, to);\r\n }\r\n function checkCanceledNavigation(to, from) {\r\n if (pendingLocation !== to) {\r\n return createRouterError(8 /* ErrorTypes.NAVIGATION_CANCELLED */, {\r\n from,\r\n to,\r\n });\r\n }\r\n }\r\n function push(to) {\r\n return pushWithRedirect(to);\r\n }\r\n function replace(to) {\r\n return push(assign(locationAsObject(to), { replace: true }));\r\n }\r\n function handleRedirectRecord(to) {\r\n const lastMatched = to.matched[to.matched.length - 1];\r\n if (lastMatched && lastMatched.redirect) {\r\n const { redirect } = lastMatched;\r\n let newTargetLocation = typeof redirect === 'function' ? redirect(to) : redirect;\r\n if (typeof newTargetLocation === 'string') {\r\n newTargetLocation =\r\n newTargetLocation.includes('?') || newTargetLocation.includes('#')\r\n ? (newTargetLocation = locationAsObject(newTargetLocation))\r\n : // force empty params\r\n { path: newTargetLocation };\r\n // @ts-expect-error: force empty params when a string is passed to let\r\n // the router parse them again\r\n newTargetLocation.params = {};\r\n }\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n !('path' in newTargetLocation) &&\r\n !('name' in newTargetLocation)) {\r\n warn(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\r\n throw new Error('Invalid redirect');\r\n }\r\n return assign({\r\n query: to.query,\r\n hash: to.hash,\r\n // avoid transferring params if the redirect has a path\r\n params: 'path' in newTargetLocation ? {} : to.params,\r\n }, newTargetLocation);\r\n }\r\n }\r\n function pushWithRedirect(to, redirectedFrom) {\r\n const targetLocation = (pendingLocation = resolve(to));\r\n const from = currentRoute.value;\r\n const data = to.state;\r\n const force = to.force;\r\n // to could be a string where `replace` is a function\r\n const replace = to.replace === true;\r\n const shouldRedirect = handleRedirectRecord(targetLocation);\r\n if (shouldRedirect)\r\n return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\r\n state: typeof shouldRedirect === 'object'\r\n ? assign({}, data, shouldRedirect.state)\r\n : data,\r\n force,\r\n replace,\r\n }), \r\n // keep original redirectedFrom if it exists\r\n redirectedFrom || targetLocation);\r\n // if it was a redirect we already called `pushWithRedirect` above\r\n const toLocation = targetLocation;\r\n toLocation.redirectedFrom = redirectedFrom;\r\n let failure;\r\n if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\r\n failure = createRouterError(16 /* ErrorTypes.NAVIGATION_DUPLICATED */, { to: toLocation, from });\r\n // trigger scroll to allow scrolling to the same anchor\r\n handleScroll(from, from, \r\n // this is a push, the only way for it to be triggered from a\r\n // history.listen is with a redirect, which makes it become a push\r\n true, \r\n // This cannot be the first navigation because the initial location\r\n // cannot be manually navigated to\r\n false);\r\n }\r\n return (failure ? Promise.resolve(failure) : navigate(toLocation, from))\r\n .catch((error) => isNavigationFailure(error)\r\n ? // navigation redirects still mark the router as ready\r\n isNavigationFailure(error, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)\r\n ? error\r\n : markAsReady(error) // also returns the error\r\n : // reject any unknown error\r\n triggerError(error, toLocation, from))\r\n .then((failure) => {\r\n if (failure) {\r\n if (isNavigationFailure(failure, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n // we are redirecting to the same location we were already at\r\n isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) &&\r\n // and we have done it a couple of times\r\n redirectedFrom &&\r\n // @ts-expect-error: added only in dev\r\n (redirectedFrom._count = redirectedFrom._count\r\n ? // @ts-expect-error\r\n redirectedFrom._count + 1\r\n : 1) > 10) {\r\n warn(`Detected an infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow. This will break in production if not fixed.`);\r\n return Promise.reject(new Error('Infinite redirect in navigation guard'));\r\n }\r\n return pushWithRedirect(\r\n // keep options\r\n assign({\r\n // preserve an existing replacement but allow the redirect to override it\r\n replace,\r\n }, locationAsObject(failure.to), {\r\n state: typeof failure.to === 'object'\r\n ? assign({}, data, failure.to.state)\r\n : data,\r\n force,\r\n }), \r\n // preserve the original redirectedFrom if any\r\n redirectedFrom || toLocation);\r\n }\r\n }\r\n else {\r\n // if we fail we don't finalize the navigation\r\n failure = finalizeNavigation(toLocation, from, true, replace, data);\r\n }\r\n triggerAfterEach(toLocation, from, failure);\r\n return failure;\r\n });\r\n }\r\n /**\r\n * Helper to reject and skip all navigation guards if a new navigation happened\r\n * @param to\r\n * @param from\r\n */\r\n function checkCanceledNavigationAndReject(to, from) {\r\n const error = checkCanceledNavigation(to, from);\r\n return error ? Promise.reject(error) : Promise.resolve();\r\n }\r\n // TODO: refactor the whole before guards by internally using router.beforeEach\r\n function navigate(to, from) {\r\n let guards;\r\n const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\r\n // all components here have been resolved once because we are leaving\r\n guards = extractComponentsGuards(leavingRecords.reverse(), 'beforeRouteLeave', to, from);\r\n // leavingRecords is already reversed\r\n for (const record of leavingRecords) {\r\n record.leaveGuards.forEach(guard => {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n });\r\n }\r\n const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeRouteLeave guards\r\n return (runGuardQueue(guards)\r\n .then(() => {\r\n // check global guards beforeEach\r\n guards = [];\r\n for (const guard of beforeGuards.list()) {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n }\r\n guards.push(canceledNavigationCheck);\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check in components beforeRouteUpdate\r\n guards = extractComponentsGuards(updatingRecords, 'beforeRouteUpdate', to, from);\r\n for (const record of updatingRecords) {\r\n record.updateGuards.forEach(guard => {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n });\r\n }\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check the route beforeEnter\r\n guards = [];\r\n for (const record of to.matched) {\r\n // do not trigger beforeEnter on reused views\r\n if (record.beforeEnter && !from.matched.includes(record)) {\r\n if (isArray(record.beforeEnter)) {\r\n for (const beforeEnter of record.beforeEnter)\r\n guards.push(guardToPromiseFn(beforeEnter, to, from));\r\n }\r\n else {\r\n guards.push(guardToPromiseFn(record.beforeEnter, to, from));\r\n }\r\n }\r\n }\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // NOTE: at this point to.matched is normalized and does not contain any () => Promise\r\n // clear existing enterCallbacks, these are added by extractComponentsGuards\r\n to.matched.forEach(record => (record.enterCallbacks = {}));\r\n // check in-component beforeRouteEnter\r\n guards = extractComponentsGuards(enteringRecords, 'beforeRouteEnter', to, from);\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check global guards beforeResolve\r\n guards = [];\r\n for (const guard of beforeResolveGuards.list()) {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n }\r\n guards.push(canceledNavigationCheck);\r\n return runGuardQueue(guards);\r\n })\r\n // catch any navigation canceled\r\n .catch(err => isNavigationFailure(err, 8 /* ErrorTypes.NAVIGATION_CANCELLED */)\r\n ? err\r\n : Promise.reject(err)));\r\n }\r\n function triggerAfterEach(to, from, failure) {\r\n // navigation is confirmed, call afterGuards\r\n // TODO: wrap with error handlers\r\n for (const guard of afterGuards.list())\r\n guard(to, from, failure);\r\n }\r\n /**\r\n * - Cleans up any navigation guards\r\n * - Changes the url if necessary\r\n * - Calls the scrollBehavior\r\n */\r\n function finalizeNavigation(toLocation, from, isPush, replace, data) {\r\n // a more recent navigation took place\r\n const error = checkCanceledNavigation(toLocation, from);\r\n if (error)\r\n return error;\r\n // only consider as push if it's not the first navigation\r\n const isFirstNavigation = from === START_LOCATION_NORMALIZED;\r\n const state = !isBrowser ? {} : history.state;\r\n // change URL only if the user did a push/replace and if it's not the initial navigation because\r\n // it's just reflecting the url\r\n if (isPush) {\r\n // on the initial navigation, we want to reuse the scroll position from\r\n // history state if it exists\r\n if (replace || isFirstNavigation)\r\n routerHistory.replace(toLocation.fullPath, assign({\r\n scroll: isFirstNavigation && state && state.scroll,\r\n }, data));\r\n else\r\n routerHistory.push(toLocation.fullPath, data);\r\n }\r\n // accept current navigation\r\n currentRoute.value = toLocation;\r\n handleScroll(toLocation, from, isPush, isFirstNavigation);\r\n markAsReady();\r\n }\r\n let removeHistoryListener;\r\n // attach listener to history to trigger navigations\r\n function setupListeners() {\r\n // avoid setting up listeners twice due to an invalid first navigation\r\n if (removeHistoryListener)\r\n return;\r\n removeHistoryListener = routerHistory.listen((to, _from, info) => {\r\n if (!router.listening)\r\n return;\r\n // cannot be a redirect route because it was in history\r\n const toLocation = resolve(to);\r\n // due to dynamic routing, and to hash history with manual navigation\r\n // (manually changing the url or calling history.hash = '#/somewhere'),\r\n // there could be a redirect record in history\r\n const shouldRedirect = handleRedirectRecord(toLocation);\r\n if (shouldRedirect) {\r\n pushWithRedirect(assign(shouldRedirect, { replace: true }), toLocation).catch(noop);\r\n return;\r\n }\r\n pendingLocation = toLocation;\r\n const from = currentRoute.value;\r\n // TODO: should be moved to web history?\r\n if (isBrowser) {\r\n saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\r\n }\r\n navigate(toLocation, from)\r\n .catch((error) => {\r\n if (isNavigationFailure(error, 4 /* ErrorTypes.NAVIGATION_ABORTED */ | 8 /* ErrorTypes.NAVIGATION_CANCELLED */)) {\r\n return error;\r\n }\r\n if (isNavigationFailure(error, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)) {\r\n // Here we could call if (info.delta) routerHistory.go(-info.delta,\r\n // false) but this is bug prone as we have no way to wait the\r\n // navigation to be finished before calling pushWithRedirect. Using\r\n // a setTimeout of 16ms seems to work but there is no guarantee for\r\n // it to work on every browser. So instead we do not restore the\r\n // history entry and trigger a new navigation as requested by the\r\n // navigation guard.\r\n // the error is already handled by router.push we just want to avoid\r\n // logging the error\r\n pushWithRedirect(error.to, toLocation\r\n // avoid an uncaught rejection, let push call triggerError\r\n )\r\n .then(failure => {\r\n // manual change in hash history #916 ending up in the URL not\r\n // changing, but it was changed by the manual url change, so we\r\n // need to manually change it ourselves\r\n if (isNavigationFailure(failure, 4 /* ErrorTypes.NAVIGATION_ABORTED */ |\r\n 16 /* ErrorTypes.NAVIGATION_DUPLICATED */) &&\r\n !info.delta &&\r\n info.type === NavigationType.pop) {\r\n routerHistory.go(-1, false);\r\n }\r\n })\r\n .catch(noop);\r\n // avoid the then branch\r\n return Promise.reject();\r\n }\r\n // do not restore history on unknown direction\r\n if (info.delta) {\r\n routerHistory.go(-info.delta, false);\r\n }\r\n // unrecognized error, transfer to the global handler\r\n return triggerError(error, toLocation, from);\r\n })\r\n .then((failure) => {\r\n failure =\r\n failure ||\r\n finalizeNavigation(\r\n // after navigation, all matched components are resolved\r\n toLocation, from, false);\r\n // revert the navigation\r\n if (failure) {\r\n if (info.delta &&\r\n // a new navigation has been triggered, so we do not want to revert, that will change the current history\r\n // entry while a different route is displayed\r\n !isNavigationFailure(failure, 8 /* ErrorTypes.NAVIGATION_CANCELLED */)) {\r\n routerHistory.go(-info.delta, false);\r\n }\r\n else if (info.type === NavigationType.pop &&\r\n isNavigationFailure(failure, 4 /* ErrorTypes.NAVIGATION_ABORTED */ | 16 /* ErrorTypes.NAVIGATION_DUPLICATED */)) {\r\n // manual change in hash history #916\r\n // it's like a push but lacks the information of the direction\r\n routerHistory.go(-1, false);\r\n }\r\n }\r\n triggerAfterEach(toLocation, from, failure);\r\n })\r\n .catch(noop);\r\n });\r\n }\r\n // Initialization and Errors\r\n let readyHandlers = useCallbacks();\r\n let errorHandlers = useCallbacks();\r\n let ready;\r\n /**\r\n * Trigger errorHandlers added via onError and throws the error as well\r\n *\r\n * @param error - error to throw\r\n * @param to - location we were navigating to when the error happened\r\n * @param from - location we were navigating from when the error happened\r\n * @returns the error as a rejected promise\r\n */\r\n function triggerError(error, to, from) {\r\n markAsReady(error);\r\n const list = errorHandlers.list();\r\n if (list.length) {\r\n list.forEach(handler => handler(error, to, from));\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn('uncaught error during route navigation:');\r\n }\r\n console.error(error);\r\n }\r\n return Promise.reject(error);\r\n }\r\n function isReady() {\r\n if (ready && currentRoute.value !== START_LOCATION_NORMALIZED)\r\n return Promise.resolve();\r\n return new Promise((resolve, reject) => {\r\n readyHandlers.add([resolve, reject]);\r\n });\r\n }\r\n function markAsReady(err) {\r\n if (!ready) {\r\n // still not ready if an error happened\r\n ready = !err;\r\n setupListeners();\r\n readyHandlers\r\n .list()\r\n .forEach(([resolve, reject]) => (err ? reject(err) : resolve()));\r\n readyHandlers.reset();\r\n }\r\n return err;\r\n }\r\n // Scroll behavior\r\n function handleScroll(to, from, isPush, isFirstNavigation) {\r\n const { scrollBehavior } = options;\r\n if (!isBrowser || !scrollBehavior)\r\n return Promise.resolve();\r\n const scrollPosition = (!isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0))) ||\r\n ((isFirstNavigation || !isPush) &&\r\n history.state &&\r\n history.state.scroll) ||\r\n null;\r\n return nextTick()\r\n .then(() => scrollBehavior(to, from, scrollPosition))\r\n .then(position => position && scrollToPosition(position))\r\n .catch(err => triggerError(err, to, from));\r\n }\r\n const go = (delta) => routerHistory.go(delta);\r\n let started;\r\n const installedApps = new Set();\r\n const router = {\r\n currentRoute,\r\n listening: true,\r\n addRoute,\r\n removeRoute,\r\n hasRoute,\r\n getRoutes,\r\n resolve,\r\n options,\r\n push,\r\n replace,\r\n go,\r\n back: () => go(-1),\r\n forward: () => go(1),\r\n beforeEach: beforeGuards.add,\r\n beforeResolve: beforeResolveGuards.add,\r\n afterEach: afterGuards.add,\r\n onError: errorHandlers.add,\r\n isReady,\r\n install(app) {\r\n const router = this;\r\n app.component('RouterLink', RouterLink);\r\n app.component('RouterView', RouterView);\r\n app.config.globalProperties.$router = router;\r\n Object.defineProperty(app.config.globalProperties, '$route', {\r\n enumerable: true,\r\n get: () => unref(currentRoute),\r\n });\r\n // this initial navigation is only necessary on client, on server it doesn't\r\n // make sense because it will create an extra unnecessary navigation and could\r\n // lead to problems\r\n if (isBrowser &&\r\n // used for the initial navigation client side to avoid pushing\r\n // multiple times when the router is used in multiple apps\r\n !started &&\r\n currentRoute.value === START_LOCATION_NORMALIZED) {\r\n // see above\r\n started = true;\r\n push(routerHistory.location).catch(err => {\r\n if ((process.env.NODE_ENV !== 'production'))\r\n warn('Unexpected error when starting the router:', err);\r\n });\r\n }\r\n const reactiveRoute = {};\r\n for (const key in START_LOCATION_NORMALIZED) {\r\n // @ts-expect-error: the key matches\r\n reactiveRoute[key] = computed(() => currentRoute.value[key]);\r\n }\r\n app.provide(routerKey, router);\r\n app.provide(routeLocationKey, reactive(reactiveRoute));\r\n app.provide(routerViewLocationKey, currentRoute);\r\n const unmountApp = app.unmount;\r\n installedApps.add(app);\r\n app.unmount = function () {\r\n installedApps.delete(app);\r\n // the router is not attached to an app anymore\r\n if (installedApps.size < 1) {\r\n // invalidate the current navigation\r\n pendingLocation = START_LOCATION_NORMALIZED;\r\n removeHistoryListener && removeHistoryListener();\r\n removeHistoryListener = null;\r\n currentRoute.value = START_LOCATION_NORMALIZED;\r\n started = false;\r\n ready = false;\r\n }\r\n unmountApp();\r\n };\r\n // TODO: this probably needs to be updated so it can be used by vue-termui\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\r\n addDevtools(app, router, matcher);\r\n }\r\n },\r\n };\r\n return router;\r\n}\r\nfunction runGuardQueue(guards) {\r\n return guards.reduce((promise, guard) => promise.then(() => guard()), Promise.resolve());\r\n}\r\nfunction extractChangingRecords(to, from) {\r\n const leavingRecords = [];\r\n const updatingRecords = [];\r\n const enteringRecords = [];\r\n const len = Math.max(from.matched.length, to.matched.length);\r\n for (let i = 0; i < len; i++) {\r\n const recordFrom = from.matched[i];\r\n if (recordFrom) {\r\n if (to.matched.find(record => isSameRouteRecord(record, recordFrom)))\r\n updatingRecords.push(recordFrom);\r\n else\r\n leavingRecords.push(recordFrom);\r\n }\r\n const recordTo = to.matched[i];\r\n if (recordTo) {\r\n // the type doesn't matter because we are comparing per reference\r\n if (!from.matched.find(record => isSameRouteRecord(record, recordTo))) {\r\n enteringRecords.push(recordTo);\r\n }\r\n }\r\n }\r\n return [leavingRecords, updatingRecords, enteringRecords];\r\n}\n\n/**\r\n * Returns the router instance. Equivalent to using `$router` inside\r\n * templates.\r\n */\r\nfunction useRouter() {\r\n return inject(routerKey);\r\n}\r\n/**\r\n * Returns the current route location. Equivalent to using `$route` inside\r\n * templates.\r\n */\r\nfunction useRoute() {\r\n return inject(routeLocationKey);\r\n}\n\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };\n","/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT © Zeno Rocha\n */\n!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){\"use strict\";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c(\"cut\"),t};function o(t,e){var n,o,t=(n=t,o=\"rtl\"===document.documentElement.getAttribute(\"dir\"),(t=document.createElement(\"textarea\")).style.fontSize=\"12pt\",t.style.border=\"0\",t.style.padding=\"0\",t.style.margin=\"0\",t.style.position=\"absolute\",t.style[o?\"right\":\"left\"]=\"-9999px\",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top=\"\".concat(o,\"px\"),t.setAttribute(\"readonly\",\"\"),t.value=n,t);return e.container.appendChild(t),e=r()(t),c(\"copy\"),t.remove(),e}var f=function(t){var e=1 {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","import { resolveDirective, openBlock, createElementBlock, normalizeClass, withDirectives, withKeys, createElementVNode, createCommentVNode, toDisplayString, renderSlot, Fragment, renderList, vModelDynamic } from \"vue\";\nconst allCountries = [\n [\n \"Afghanistan (\\u202B\\u0627\\u0641\\u063A\\u0627\\u0646\\u0633\\u062A\\u0627\\u0646\\u202C\\u200E)\",\n \"af\",\n \"93\"\n ],\n [\n \"Albania (Shqip\\xEBri)\",\n \"al\",\n \"355\"\n ],\n [\n \"Algeria (\\u202B\\u0627\\u0644\\u062C\\u0632\\u0627\\u0626\\u0631\\u202C\\u200E)\",\n \"dz\",\n \"213\"\n ],\n [\n \"American Samoa\",\n \"as\",\n \"1684\"\n ],\n [\n \"Andorra\",\n \"ad\",\n \"376\"\n ],\n [\n \"Angola\",\n \"ao\",\n \"244\"\n ],\n [\n \"Anguilla\",\n \"ai\",\n \"1264\"\n ],\n [\n \"Antigua and Barbuda\",\n \"ag\",\n \"1268\"\n ],\n [\n \"Argentina\",\n \"ar\",\n \"54\"\n ],\n [\n \"Armenia (\\u0540\\u0561\\u0575\\u0561\\u057D\\u057F\\u0561\\u0576)\",\n \"am\",\n \"374\"\n ],\n [\n \"Aruba\",\n \"aw\",\n \"297\"\n ],\n [\n \"Australia\",\n \"au\",\n \"61\"\n ],\n [\n \"Austria (\\xD6sterreich)\",\n \"at\",\n \"43\"\n ],\n [\n \"Azerbaijan (Az\\u0259rbaycan)\",\n \"az\",\n \"994\"\n ],\n [\n \"Bahamas\",\n \"bs\",\n \"1242\"\n ],\n [\n \"Bahrain (\\u202B\\u0627\\u0644\\u0628\\u062D\\u0631\\u064A\\u0646\\u202C\\u200E)\",\n \"bh\",\n \"973\"\n ],\n [\n \"Bangladesh (\\u09AC\\u09BE\\u0982\\u09B2\\u09BE\\u09A6\\u09C7\\u09B6)\",\n \"bd\",\n \"880\"\n ],\n [\n \"Barbados\",\n \"bb\",\n \"1246\"\n ],\n [\n \"Belarus (\\u0411\\u0435\\u043B\\u0430\\u0440\\u0443\\u0441\\u044C)\",\n \"by\",\n \"375\"\n ],\n [\n \"Belgium (Belgi\\xEB)\",\n \"be\",\n \"32\"\n ],\n [\n \"Belize\",\n \"bz\",\n \"501\"\n ],\n [\n \"Benin (B\\xE9nin)\",\n \"bj\",\n \"229\"\n ],\n [\n \"Bermuda\",\n \"bm\",\n \"1441\"\n ],\n [\n \"Bhutan (\\u0F60\\u0F56\\u0FB2\\u0F74\\u0F42)\",\n \"bt\",\n \"975\"\n ],\n [\n \"Bolivia\",\n \"bo\",\n \"591\"\n ],\n [\n \"Bosnia and Herzegovina (\\u0411\\u043E\\u0441\\u043D\\u0430 \\u0438 \\u0425\\u0435\\u0440\\u0446\\u0435\\u0433\\u043E\\u0432\\u0438\\u043D\\u0430)\",\n \"ba\",\n \"387\"\n ],\n [\n \"Botswana\",\n \"bw\",\n \"267\"\n ],\n [\n \"Brazil (Brasil)\",\n \"br\",\n \"55\"\n ],\n [\n \"British Indian Ocean Territory\",\n \"io\",\n \"246\"\n ],\n [\n \"British Virgin Islands\",\n \"vg\",\n \"1284\"\n ],\n [\n \"Brunei\",\n \"bn\",\n \"673\"\n ],\n [\n \"Bulgaria (\\u0411\\u044A\\u043B\\u0433\\u0430\\u0440\\u0438\\u044F)\",\n \"bg\",\n \"359\"\n ],\n [\n \"Burkina Faso\",\n \"bf\",\n \"226\"\n ],\n [\n \"Burundi (Uburundi)\",\n \"bi\",\n \"257\"\n ],\n [\n \"Cambodia (\\u1780\\u1798\\u17D2\\u1796\\u17BB\\u1787\\u17B6)\",\n \"kh\",\n \"855\"\n ],\n [\n \"Cameroon (Cameroun)\",\n \"cm\",\n \"237\"\n ],\n [\n \"Canada\",\n \"ca\",\n \"1\"\n ],\n [\n \"Cape Verde (Kabu Verdi)\",\n \"cv\",\n \"238\"\n ],\n [\n \"Caribbean Netherlands\",\n \"bq\",\n \"599\"\n ],\n [\n \"Cayman Islands\",\n \"ky\",\n \"1345\"\n ],\n [\n \"Central African Republic (R\\xE9publique centrafricaine)\",\n \"cf\",\n \"236\"\n ],\n [\n \"Chad (Tchad)\",\n \"td\",\n \"235\"\n ],\n [\n \"Chile\",\n \"cl\",\n \"56\"\n ],\n [\n \"China (\\u4E2D\\u56FD)\",\n \"cn\",\n \"86\"\n ],\n [\n \"Christmas Island\",\n \"cx\",\n \"61\"\n ],\n [\n \"Cocos (Keeling) Islands\",\n \"cc\",\n \"61\"\n ],\n [\n \"Colombia\",\n \"co\",\n \"57\"\n ],\n [\n \"Comoros (\\u202B\\u062C\\u0632\\u0631 \\u0627\\u0644\\u0642\\u0645\\u0631\\u202C\\u200E)\",\n \"km\",\n \"269\"\n ],\n [\n \"Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)\",\n \"cd\",\n \"243\"\n ],\n [\n \"Congo (Republic) (Congo-Brazzaville)\",\n \"cg\",\n \"242\"\n ],\n [\n \"Cook Islands\",\n \"ck\",\n \"682\"\n ],\n [\n \"Costa Rica\",\n \"cr\",\n \"506\"\n ],\n [\n \"C\\xF4te d\\u2019Ivoire\",\n \"ci\",\n \"225\"\n ],\n [\n \"Croatia (Hrvatska)\",\n \"hr\",\n \"385\"\n ],\n [\n \"Cuba\",\n \"cu\",\n \"53\"\n ],\n [\n \"Cura\\xE7ao\",\n \"cw\",\n \"599\"\n ],\n [\n \"Cyprus (\\u039A\\u03CD\\u03C0\\u03C1\\u03BF\\u03C2)\",\n \"cy\",\n \"357\"\n ],\n [\n \"Czech Republic (\\u010Cesk\\xE1 republika)\",\n \"cz\",\n \"420\"\n ],\n [\n \"Denmark (Danmark)\",\n \"dk\",\n \"45\"\n ],\n [\n \"Djibouti\",\n \"dj\",\n \"253\"\n ],\n [\n \"Dominica\",\n \"dm\",\n \"1767\"\n ],\n [\n \"Dominican Republic (Rep\\xFAblica Dominicana)\",\n \"do\",\n \"1\"\n ],\n [\n \"Ecuador\",\n \"ec\",\n \"593\"\n ],\n [\n \"Egypt (\\u202B\\u0645\\u0635\\u0631\\u202C\\u200E)\",\n \"eg\",\n \"20\"\n ],\n [\n \"El Salvador\",\n \"sv\",\n \"503\"\n ],\n [\n \"Equatorial Guinea (Guinea Ecuatorial)\",\n \"gq\",\n \"240\"\n ],\n [\n \"Eritrea\",\n \"er\",\n \"291\"\n ],\n [\n \"Estonia (Eesti)\",\n \"ee\",\n \"372\"\n ],\n [\n \"Ethiopia\",\n \"et\",\n \"251\"\n ],\n [\n \"Falkland Islands (Islas Malvinas)\",\n \"fk\",\n \"500\"\n ],\n [\n \"Faroe Islands (F\\xF8royar)\",\n \"fo\",\n \"298\"\n ],\n [\n \"Fiji\",\n \"fj\",\n \"679\"\n ],\n [\n \"Finland (Suomi)\",\n \"fi\",\n \"358\"\n ],\n [\n \"France\",\n \"fr\",\n \"33\"\n ],\n [\n \"French Guiana (Guyane fran\\xE7aise)\",\n \"gf\",\n \"594\"\n ],\n [\n \"French Polynesia (Polyn\\xE9sie fran\\xE7aise)\",\n \"pf\",\n \"689\"\n ],\n [\n \"Gabon\",\n \"ga\",\n \"241\"\n ],\n [\n \"Gambia\",\n \"gm\",\n \"220\"\n ],\n [\n \"Georgia (\\u10E1\\u10D0\\u10E5\\u10D0\\u10E0\\u10D7\\u10D5\\u10D4\\u10DA\\u10DD)\",\n \"ge\",\n \"995\"\n ],\n [\n \"Germany (Deutschland)\",\n \"de\",\n \"49\"\n ],\n [\n \"Ghana (Gaana)\",\n \"gh\",\n \"233\"\n ],\n [\n \"Gibraltar\",\n \"gi\",\n \"350\"\n ],\n [\n \"Greece (\\u0395\\u03BB\\u03BB\\u03AC\\u03B4\\u03B1)\",\n \"gr\",\n \"30\"\n ],\n [\n \"Greenland (Kalaallit Nunaat)\",\n \"gl\",\n \"299\"\n ],\n [\n \"Grenada\",\n \"gd\",\n \"1473\"\n ],\n [\n \"Guadeloupe\",\n \"gp\",\n \"590\"\n ],\n [\n \"Guam\",\n \"gu\",\n \"1671\"\n ],\n [\n \"Guatemala\",\n \"gt\",\n \"502\"\n ],\n [\n \"Guernsey\",\n \"gg\",\n \"44\",\n 1\n ],\n [\n \"Guinea (Guin\\xE9e)\",\n \"gn\",\n \"224\"\n ],\n [\n \"Guinea-Bissau (Guin\\xE9 Bissau)\",\n \"gw\",\n \"245\"\n ],\n [\n \"Guyana\",\n \"gy\",\n \"592\"\n ],\n [\n \"Haiti\",\n \"ht\",\n \"509\"\n ],\n [\n \"Honduras\",\n \"hn\",\n \"504\"\n ],\n [\n \"Hong Kong (\\u9999\\u6E2F)\",\n \"hk\",\n \"852\"\n ],\n [\n \"Hungary (Magyarorsz\\xE1g)\",\n \"hu\",\n \"36\"\n ],\n [\n \"Iceland (\\xCDsland)\",\n \"is\",\n \"354\"\n ],\n [\n \"India (\\u092D\\u093E\\u0930\\u0924)\",\n \"in\",\n \"91\"\n ],\n [\n \"Indonesia\",\n \"id\",\n \"62\"\n ],\n [\n \"Iran (\\u202B\\u0627\\u06CC\\u0631\\u0627\\u0646\\u202C\\u200E)\",\n \"ir\",\n \"98\"\n ],\n [\n \"Iraq (\\u202B\\u0627\\u0644\\u0639\\u0631\\u0627\\u0642\\u202C\\u200E)\",\n \"iq\",\n \"964\"\n ],\n [\n \"Ireland\",\n \"ie\",\n \"353\"\n ],\n [\n \"Isle of Man\",\n \"im\",\n \"44\"\n ],\n [\n \"Israel (\\u202B\\u05D9\\u05E9\\u05E8\\u05D0\\u05DC\\u202C\\u200E)\",\n \"il\",\n \"972\"\n ],\n [\n \"Italy (Italia)\",\n \"it\",\n \"39\"\n ],\n [\n \"Jamaica\",\n \"jm\",\n \"1876\"\n ],\n [\n \"Japan (\\u65E5\\u672C)\",\n \"jp\",\n \"81\"\n ],\n [\n \"Jersey\",\n \"je\",\n \"44\"\n ],\n [\n \"Jordan (\\u202B\\u0627\\u0644\\u0623\\u0631\\u062F\\u0646\\u202C\\u200E)\",\n \"jo\",\n \"962\"\n ],\n [\n \"Kazakhstan (\\u041A\\u0430\\u0437\\u0430\\u0445\\u0441\\u0442\\u0430\\u043D)\",\n \"kz\",\n \"7\"\n ],\n [\n \"Kenya\",\n \"ke\",\n \"254\"\n ],\n [\n \"Kiribati\",\n \"ki\",\n \"686\"\n ],\n [\n \"Kosovo\",\n \"xk\",\n \"383\"\n ],\n [\n \"Kuwait (\\u202B\\u0627\\u0644\\u0643\\u0648\\u064A\\u062A\\u202C\\u200E)\",\n \"kw\",\n \"965\"\n ],\n [\n \"Kyrgyzstan (\\u041A\\u044B\\u0440\\u0433\\u044B\\u0437\\u0441\\u0442\\u0430\\u043D)\",\n \"kg\",\n \"996\"\n ],\n [\n \"Laos (\\u0EA5\\u0EB2\\u0EA7)\",\n \"la\",\n \"856\"\n ],\n [\n \"Latvia (Latvija)\",\n \"lv\",\n \"371\"\n ],\n [\n \"Lebanon (\\u202B\\u0644\\u0628\\u0646\\u0627\\u0646\\u202C\\u200E)\",\n \"lb\",\n \"961\"\n ],\n [\n \"Lesotho\",\n \"ls\",\n \"266\"\n ],\n [\n \"Liberia\",\n \"lr\",\n \"231\"\n ],\n [\n \"Libya (\\u202B\\u0644\\u064A\\u0628\\u064A\\u0627\\u202C\\u200E)\",\n \"ly\",\n \"218\"\n ],\n [\n \"Liechtenstein\",\n \"li\",\n \"423\"\n ],\n [\n \"Lithuania (Lietuva)\",\n \"lt\",\n \"370\"\n ],\n [\n \"Luxembourg\",\n \"lu\",\n \"352\"\n ],\n [\n \"Macau (\\u6FB3\\u9580)\",\n \"mo\",\n \"853\"\n ],\n [\n \"Macedonia (FYROM) (\\u041C\\u0430\\u043A\\u0435\\u0434\\u043E\\u043D\\u0438\\u0458\\u0430)\",\n \"mk\",\n \"389\"\n ],\n [\n \"Madagascar (Madagasikara)\",\n \"mg\",\n \"261\"\n ],\n [\n \"Malawi\",\n \"mw\",\n \"265\"\n ],\n [\n \"Malaysia\",\n \"my\",\n \"60\"\n ],\n [\n \"Maldives\",\n \"mv\",\n \"960\"\n ],\n [\n \"Mali\",\n \"ml\",\n \"223\"\n ],\n [\n \"Malta\",\n \"mt\",\n \"356\"\n ],\n [\n \"Marshall Islands\",\n \"mh\",\n \"692\"\n ],\n [\n \"Martinique\",\n \"mq\",\n \"596\"\n ],\n [\n \"Mauritania (\\u202B\\u0645\\u0648\\u0631\\u064A\\u062A\\u0627\\u0646\\u064A\\u0627\\u202C\\u200E)\",\n \"mr\",\n \"222\"\n ],\n [\n \"Mauritius (Moris)\",\n \"mu\",\n \"230\"\n ],\n [\n \"Mayotte\",\n \"yt\",\n \"262\"\n ],\n [\n \"Mexico (M\\xE9xico)\",\n \"mx\",\n \"52\"\n ],\n [\n \"Micronesia\",\n \"fm\",\n \"691\"\n ],\n [\n \"Moldova (Republica Moldova)\",\n \"md\",\n \"373\"\n ],\n [\n \"Monaco\",\n \"mc\",\n \"377\"\n ],\n [\n \"Mongolia (\\u041C\\u043E\\u043D\\u0433\\u043E\\u043B)\",\n \"mn\",\n \"976\"\n ],\n [\n \"Montenegro (Crna Gora)\",\n \"me\",\n \"382\"\n ],\n [\n \"Montserrat\",\n \"ms\",\n \"1664\"\n ],\n [\n \"Morocco (\\u202B\\u0627\\u0644\\u0645\\u063A\\u0631\\u0628\\u202C\\u200E)\",\n \"ma\",\n \"212\"\n ],\n [\n \"Mozambique (Mo\\xE7ambique)\",\n \"mz\",\n \"258\"\n ],\n [\n \"Myanmar (Burma) (\\u1019\\u103C\\u1014\\u103A\\u1019\\u102C)\",\n \"mm\",\n \"95\"\n ],\n [\n \"Namibia (Namibi\\xEB)\",\n \"na\",\n \"264\"\n ],\n [\n \"Nauru\",\n \"nr\",\n \"674\"\n ],\n [\n \"Nepal (\\u0928\\u0947\\u092A\\u093E\\u0932)\",\n \"np\",\n \"977\"\n ],\n [\n \"Netherlands (Nederland)\",\n \"nl\",\n \"31\"\n ],\n [\n \"New Caledonia (Nouvelle-Cal\\xE9donie)\",\n \"nc\",\n \"687\"\n ],\n [\n \"New Zealand\",\n \"nz\",\n \"64\"\n ],\n [\n \"Nicaragua\",\n \"ni\",\n \"505\"\n ],\n [\n \"Niger (Nijar)\",\n \"ne\",\n \"227\"\n ],\n [\n \"Nigeria\",\n \"ng\",\n \"234\"\n ],\n [\n \"Niue\",\n \"nu\",\n \"683\"\n ],\n [\n \"Norfolk Island\",\n \"nf\",\n \"672\"\n ],\n [\n \"North Korea (\\uC870\\uC120 \\uBBFC\\uC8FC\\uC8FC\\uC758 \\uC778\\uBBFC \\uACF5\\uD654\\uAD6D)\",\n \"kp\",\n \"850\"\n ],\n [\n \"Northern Mariana Islands\",\n \"mp\",\n \"1670\"\n ],\n [\n \"Norway (Norge)\",\n \"no\",\n \"47\"\n ],\n [\n \"Oman (\\u202B\\u0639\\u064F\\u0645\\u0627\\u0646\\u202C\\u200E)\",\n \"om\",\n \"968\"\n ],\n [\n \"Pakistan (\\u202B\\u067E\\u0627\\u06A9\\u0633\\u062A\\u0627\\u0646\\u202C\\u200E)\",\n \"pk\",\n \"92\"\n ],\n [\n \"Palau\",\n \"pw\",\n \"680\"\n ],\n [\n \"Palestine (\\u202B\\u0641\\u0644\\u0633\\u0637\\u064A\\u0646\\u202C\\u200E)\",\n \"ps\",\n \"970\"\n ],\n [\n \"Panama (Panam\\xE1)\",\n \"pa\",\n \"507\"\n ],\n [\n \"Papua New Guinea\",\n \"pg\",\n \"675\"\n ],\n [\n \"Paraguay\",\n \"py\",\n \"595\"\n ],\n [\n \"Peru (Per\\xFA)\",\n \"pe\",\n \"51\"\n ],\n [\n \"Philippines\",\n \"ph\",\n \"63\"\n ],\n [\n \"Poland (Polska)\",\n \"pl\",\n \"48\"\n ],\n [\n \"Portugal\",\n \"pt\",\n \"351\"\n ],\n [\n \"Puerto Rico\",\n \"pr\",\n \"1\"\n ],\n [\n \"Qatar (\\u202B\\u0642\\u0637\\u0631\\u202C\\u200E)\",\n \"qa\",\n \"974\"\n ],\n [\n \"R\\xE9union (La R\\xE9union)\",\n \"re\",\n \"262\"\n ],\n [\n \"Romania (Rom\\xE2nia)\",\n \"ro\",\n \"40\"\n ],\n [\n \"Russia (\\u0420\\u043E\\u0441\\u0441\\u0438\\u044F)\",\n \"ru\",\n \"7\"\n ],\n [\n \"Rwanda\",\n \"rw\",\n \"250\"\n ],\n [\n \"Saint Barth\\xE9lemy\",\n \"bl\",\n \"590\"\n ],\n [\n \"Saint Helena\",\n \"sh\",\n \"290\"\n ],\n [\n \"Saint Kitts and Nevis\",\n \"kn\",\n \"1869\"\n ],\n [\n \"Saint Lucia\",\n \"lc\",\n \"1758\"\n ],\n [\n \"Saint Martin (Saint-Martin (partie fran\\xE7aise))\",\n \"mf\",\n \"590\"\n ],\n [\n \"Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)\",\n \"pm\",\n \"508\"\n ],\n [\n \"Saint Vincent and the Grenadines\",\n \"vc\",\n \"1784\"\n ],\n [\n \"Samoa\",\n \"ws\",\n \"685\"\n ],\n [\n \"San Marino\",\n \"sm\",\n \"378\"\n ],\n [\n \"S\\xE3o Tom\\xE9 and Pr\\xEDncipe (S\\xE3o Tom\\xE9 e Pr\\xEDncipe)\",\n \"st\",\n \"239\"\n ],\n [\n \"Saudi Arabia (\\u202B\\u0627\\u0644\\u0645\\u0645\\u0644\\u0643\\u0629 \\u0627\\u0644\\u0639\\u0631\\u0628\\u064A\\u0629 \\u0627\\u0644\\u0633\\u0639\\u0648\\u062F\\u064A\\u0629\\u202C\\u200E)\",\n \"sa\",\n \"966\"\n ],\n [\n \"Senegal (S\\xE9n\\xE9gal)\",\n \"sn\",\n \"221\"\n ],\n [\n \"Serbia (\\u0421\\u0440\\u0431\\u0438\\u0458\\u0430)\",\n \"rs\",\n \"381\"\n ],\n [\n \"Seychelles\",\n \"sc\",\n \"248\"\n ],\n [\n \"Sierra Leone\",\n \"sl\",\n \"232\"\n ],\n [\n \"Singapore\",\n \"sg\",\n \"65\"\n ],\n [\n \"Sint Maarten\",\n \"sx\",\n \"1721\"\n ],\n [\n \"Slovakia (Slovensko)\",\n \"sk\",\n \"421\"\n ],\n [\n \"Slovenia (Slovenija)\",\n \"si\",\n \"386\"\n ],\n [\n \"Solomon Islands\",\n \"sb\",\n \"677\"\n ],\n [\n \"Somalia (Soomaaliya)\",\n \"so\",\n \"252\"\n ],\n [\n \"South Africa\",\n \"za\",\n \"27\"\n ],\n [\n \"South Korea (\\uB300\\uD55C\\uBBFC\\uAD6D)\",\n \"kr\",\n \"82\"\n ],\n [\n \"South Sudan (\\u202B\\u062C\\u0646\\u0648\\u0628 \\u0627\\u0644\\u0633\\u0648\\u062F\\u0627\\u0646\\u202C\\u200E)\",\n \"ss\",\n \"211\"\n ],\n [\n \"Spain (Espa\\xF1a)\",\n \"es\",\n \"34\"\n ],\n [\n \"Sri Lanka (\\u0DC1\\u0DCA\\u200D\\u0DBB\\u0DD3 \\u0DBD\\u0D82\\u0D9A\\u0DCF\\u0DC0)\",\n \"lk\",\n \"94\"\n ],\n [\n \"Sudan (\\u202B\\u0627\\u0644\\u0633\\u0648\\u062F\\u0627\\u0646\\u202C\\u200E)\",\n \"sd\",\n \"249\"\n ],\n [\n \"Suriname\",\n \"sr\",\n \"597\"\n ],\n [\n \"Svalbard and Jan Mayen\",\n \"sj\",\n \"47\"\n ],\n [\n \"Swaziland\",\n \"sz\",\n \"268\"\n ],\n [\n \"Sweden (Sverige)\",\n \"se\",\n \"46\"\n ],\n [\n \"Switzerland (Schweiz)\",\n \"ch\",\n \"41\"\n ],\n [\n \"Syria (\\u202B\\u0633\\u0648\\u0631\\u064A\\u0627\\u202C\\u200E)\",\n \"sy\",\n \"963\"\n ],\n [\n \"Taiwan (\\u53F0\\u7063)\",\n \"tw\",\n \"886\"\n ],\n [\n \"Tajikistan\",\n \"tj\",\n \"992\"\n ],\n [\n \"Tanzania\",\n \"tz\",\n \"255\"\n ],\n [\n \"Thailand (\\u0E44\\u0E17\\u0E22)\",\n \"th\",\n \"66\"\n ],\n [\n \"Timor-Leste\",\n \"tl\",\n \"670\"\n ],\n [\n \"Togo\",\n \"tg\",\n \"228\"\n ],\n [\n \"Tokelau\",\n \"tk\",\n \"690\"\n ],\n [\n \"Tonga\",\n \"to\",\n \"676\"\n ],\n [\n \"Trinidad and Tobago\",\n \"tt\",\n \"1868\"\n ],\n [\n \"Tunisia (\\u202B\\u062A\\u0648\\u0646\\u0633\\u202C\\u200E)\",\n \"tn\",\n \"216\"\n ],\n [\n \"Turkey (T\\xFCrkiye)\",\n \"tr\",\n \"90\"\n ],\n [\n \"Turkmenistan\",\n \"tm\",\n \"993\"\n ],\n [\n \"Turks and Caicos Islands\",\n \"tc\",\n \"1649\"\n ],\n [\n \"Tuvalu\",\n \"tv\",\n \"688\"\n ],\n [\n \"U.S. Virgin Islands\",\n \"vi\",\n \"1340\"\n ],\n [\n \"Uganda\",\n \"ug\",\n \"256\"\n ],\n [\n \"Ukraine (\\u0423\\u043A\\u0440\\u0430\\u0457\\u043D\\u0430)\",\n \"ua\",\n \"380\"\n ],\n [\n \"United Arab Emirates (\\u202B\\u0627\\u0644\\u0625\\u0645\\u0627\\u0631\\u0627\\u062A \\u0627\\u0644\\u0639\\u0631\\u0628\\u064A\\u0629 \\u0627\\u0644\\u0645\\u062A\\u062D\\u062F\\u0629\\u202C\\u200E)\",\n \"ae\",\n \"971\"\n ],\n [\n \"United Kingdom\",\n \"gb\",\n \"44\"\n ],\n [\n \"United States\",\n \"us\",\n \"1\"\n ],\n [\n \"Uruguay\",\n \"uy\",\n \"598\"\n ],\n [\n \"Uzbekistan (O\\u02BBzbekiston)\",\n \"uz\",\n \"998\"\n ],\n [\n \"Vanuatu\",\n \"vu\",\n \"678\"\n ],\n [\n \"Vatican City (Citt\\xE0 del Vaticano)\",\n \"va\",\n \"39\"\n ],\n [\n \"Venezuela\",\n \"ve\",\n \"58\"\n ],\n [\n \"Vietnam (Vi\\u1EC7t Nam)\",\n \"vn\",\n \"84\"\n ],\n [\n \"Wallis and Futuna (Wallis-et-Futuna)\",\n \"wf\",\n \"681\"\n ],\n [\n \"Western Sahara (\\u202B\\u0627\\u0644\\u0635\\u062D\\u0631\\u0627\\u0621 \\u0627\\u0644\\u063A\\u0631\\u0628\\u064A\\u0629\\u202C\\u200E)\",\n \"eh\",\n \"212\"\n ],\n [\n \"Yemen (\\u202B\\u0627\\u0644\\u064A\\u0645\\u0646\\u202C\\u200E)\",\n \"ye\",\n \"967\"\n ],\n [\n \"Zambia\",\n \"zm\",\n \"260\"\n ],\n [\n \"Zimbabwe\",\n \"zw\",\n \"263\"\n ],\n [\n \"\\xC5land Islands\",\n \"ax\",\n \"358\"\n ]\n];\nvar allCountries$1 = allCountries.map(([name, iso2, dialCode]) => ({\n name,\n iso2: iso2.toUpperCase(),\n dialCode\n}));\nfunction getCountry() {\n return fetch(\"https://ip2c.org/s\").then((response) => response.text()).then((response) => {\n const result2 = (response || \"\").toString();\n if (!result2 || result2[0] !== \"1\") {\n throw new Error(\"unable to fetch the country\");\n }\n return result2.substr(2, 2);\n });\n}\nfunction setCaretPosition(ctrl, pos) {\n if (ctrl.setSelectionRange) {\n ctrl.focus();\n ctrl.setSelectionRange(pos, pos);\n } else if (ctrl.createTextRange) {\n const range = ctrl.createTextRange();\n range.collapse(true);\n range.moveEnd(\"character\", pos);\n range.moveStart(\"character\", pos);\n range.select();\n }\n}\nconst allProps = [\n {\n name: \"allCountries\",\n type: Array,\n default: allCountries$1,\n description: \"All countries that are used in libphonenumber-js, can be overridden by this prop\",\n inDemo: false\n },\n {\n name: \"autoFormat\",\n type: Boolean,\n default: true,\n description: \"Auto update the input to the formatted phone number when it's valid\",\n inDemo: true\n },\n {\n name: \"customValidate\",\n type: [Boolean, RegExp],\n default: false,\n description: \"Custom validation RegExp for input\",\n inDemo: false\n },\n {\n name: \"defaultCountry\",\n default: \"\",\n type: [String, Number],\n description: \"Default country (by iso2 or dialCode), will override the country fetched from IP address of user\",\n inDemo: false\n },\n {\n name: \"disabled\",\n default: false,\n type: Boolean,\n description: \"Disable vue-tel-input, including the input & flag dropdown\",\n inDemo: false\n },\n {\n name: \"autoDefaultCountry\",\n default: true,\n type: Boolean,\n description: \"To fetch default country based on IP address of user\",\n inDemo: false\n },\n {\n name: \"dropdownOptions\",\n type: Object,\n description: \"Options for dropdown, see below\",\n inDemo: false\n },\n {\n name: \"dropdownOptions.disabled\",\n default: false,\n type: Boolean,\n description: \"Disable dropdown\",\n inDemo: false\n },\n {\n name: \"dropdownOptions.showDialCodeInList\",\n default: true,\n type: Boolean,\n description: \"Show dial code in the dropdown list\",\n inDemo: true\n },\n {\n name: \"dropdownOptions.showDialCodeInSelection\",\n default: false,\n type: Boolean,\n description: \"Show dial code in the dropdown selection\",\n inDemo: true\n },\n {\n name: \"dropdownOptions.showFlags\",\n default: true,\n type: Boolean,\n description: \"Show flags in the dropdown selection and list\",\n inDemo: true\n },\n {\n name: \"dropdownOptions.tabindex\",\n default: 0,\n type: Number,\n description: \"Native dropdown tabindex attribute\",\n inDemo: false\n },\n {\n name: \"ignoredCountries\",\n default: [],\n type: Array,\n description: \"List of countries will NOT be shown on the dropdown\",\n inDemo: false\n },\n {\n name: \"inputOptions\",\n type: Object,\n description: \"Options for input, see below\",\n inDemo: false\n },\n {\n name: \"inputOptions.autocomplete\",\n type: String,\n default: \"on\",\n description: \"Native input autocomplete attribute\",\n inDemo: false\n },\n {\n name: \"inputOptions.autofocus\",\n type: Boolean,\n default: false,\n description: \"Native input autofocus attribute\",\n inDemo: false\n },\n {\n name: \"inputOptions.aria-describedby\",\n default: \"\",\n type: String,\n description: \"Native input aria-describedby attribute\",\n inDemo: false\n },\n {\n name: \"inputOptions.id\",\n default: \"\",\n type: String,\n description: \"Native input id attribute\",\n inDemo: false\n },\n {\n name: \"inputOptions.maxlength\",\n default: 25,\n type: Number,\n description: \"Native input maxlength attribute\",\n inDemo: false\n },\n {\n name: \"inputOptions.name\",\n default: \"telephone\",\n type: String,\n description: \"Native input name attribute\",\n inDemo: false\n },\n {\n name: \"inputOptions.showDialCode\",\n default: false,\n type: Boolean,\n description: \"Show dial code in input\",\n inDemo: false\n },\n {\n name: \"inputOptions.placeholder\",\n default: \"Enter a phone number\",\n type: String,\n description: \"Placeholder for the input\",\n inDemo: false\n },\n {\n name: \"inputOptions.readonly\",\n default: false,\n type: Boolean,\n description: \"Native input readonly attribute\",\n inDemo: false\n },\n {\n name: \"inputOptions.required\",\n default: false,\n type: Boolean,\n description: \"Native input required attribute\",\n inDemo: false\n },\n {\n name: \"inputOptions.tabindex\",\n default: 0,\n type: Number,\n description: \"Native input tabindex attribute\",\n inDemo: false\n },\n {\n name: \"inputOptions.type\",\n default: \"tel\",\n type: String,\n description: \"Native input type attribute\",\n inDemo: false\n },\n {\n name: \"inputOptions.styleClasses\",\n default: \"\",\n type: [String, Array, Object],\n description: \"Custom classes for the input\",\n inDemo: false\n },\n {\n name: \"invalidMsg\",\n default: \"\",\n type: String,\n description: \"\",\n inDemo: false\n },\n {\n name: \"mode\",\n default: \"auto\",\n type: String,\n description: \"Allowed values: 'auto' (Default set by phone), 'international' (Format number with the dial code i.e. + 61), 'national' (Format number without dial code i.e. 0321232)\",\n inDemo: true,\n options: [\"auto\", \"national\", \"international\"]\n },\n {\n name: \"onlyCountries\",\n default: [],\n type: Array,\n description: \"List of countries will be shown on the dropdown\",\n inDemo: false\n },\n {\n name: \"preferredCountries\",\n default: [],\n type: Array,\n description: \"Preferred countries list, will be on top of the dropdown\",\n inDemo: false\n },\n {\n name: \"styleClasses\",\n default: \"\",\n type: [String, Array, Object],\n description: \"Custom classes for the wrapper\",\n inDemo: false\n },\n {\n name: \"validCharactersOnly\",\n default: false,\n type: Boolean,\n description: \"Only allow valid characters in a phone number (will also verify in mounted, so phone number with invalid characters will be shown as an empty string)\",\n inDemo: false\n }\n];\nconst defaultOptions = [...allProps].reduce((prv, crr) => {\n if (crr.name.includes(\".\")) {\n const [key, nestedKey] = crr.name.split(\".\");\n if (prv[key]) {\n Object.assign(prv[key], { [nestedKey]: crr.default });\n } else {\n Object.assign(prv, { [key]: { [nestedKey]: crr.default } });\n }\n } else {\n Object.assign(prv, { [crr.name]: crr.default });\n }\n return prv;\n}, {});\nvar utils = {\n options: { ...defaultOptions }\n};\nvar metadata = { \"version\": 4, \"country_calling_codes\": { \"1\": [\"US\", \"AG\", \"AI\", \"AS\", \"BB\", \"BM\", \"BS\", \"CA\", \"DM\", \"DO\", \"GD\", \"GU\", \"JM\", \"KN\", \"KY\", \"LC\", \"MP\", \"MS\", \"PR\", \"SX\", \"TC\", \"TT\", \"VC\", \"VG\", \"VI\"], \"7\": [\"RU\", \"KZ\"], \"20\": [\"EG\"], \"27\": [\"ZA\"], \"30\": [\"GR\"], \"31\": [\"NL\"], \"32\": [\"BE\"], \"33\": [\"FR\"], \"34\": [\"ES\"], \"36\": [\"HU\"], \"39\": [\"IT\", \"VA\"], \"40\": [\"RO\"], \"41\": [\"CH\"], \"43\": [\"AT\"], \"44\": [\"GB\", \"GG\", \"IM\", \"JE\"], \"45\": [\"DK\"], \"46\": [\"SE\"], \"47\": [\"NO\", \"SJ\"], \"48\": [\"PL\"], \"49\": [\"DE\"], \"51\": [\"PE\"], \"52\": [\"MX\"], \"53\": [\"CU\"], \"54\": [\"AR\"], \"55\": [\"BR\"], \"56\": [\"CL\"], \"57\": [\"CO\"], \"58\": [\"VE\"], \"60\": [\"MY\"], \"61\": [\"AU\", \"CC\", \"CX\"], \"62\": [\"ID\"], \"63\": [\"PH\"], \"64\": [\"NZ\"], \"65\": [\"SG\"], \"66\": [\"TH\"], \"81\": [\"JP\"], \"82\": [\"KR\"], \"84\": [\"VN\"], \"86\": [\"CN\"], \"90\": [\"TR\"], \"91\": [\"IN\"], \"92\": [\"PK\"], \"93\": [\"AF\"], \"94\": [\"LK\"], \"95\": [\"MM\"], \"98\": [\"IR\"], \"211\": [\"SS\"], \"212\": [\"MA\", \"EH\"], \"213\": [\"DZ\"], \"216\": [\"TN\"], \"218\": [\"LY\"], \"220\": [\"GM\"], \"221\": [\"SN\"], \"222\": [\"MR\"], \"223\": [\"ML\"], \"224\": [\"GN\"], \"225\": [\"CI\"], \"226\": [\"BF\"], \"227\": [\"NE\"], \"228\": [\"TG\"], \"229\": [\"BJ\"], \"230\": [\"MU\"], \"231\": [\"LR\"], \"232\": [\"SL\"], \"233\": [\"GH\"], \"234\": [\"NG\"], \"235\": [\"TD\"], \"236\": [\"CF\"], \"237\": [\"CM\"], \"238\": [\"CV\"], \"239\": [\"ST\"], \"240\": [\"GQ\"], \"241\": [\"GA\"], \"242\": [\"CG\"], \"243\": [\"CD\"], \"244\": [\"AO\"], \"245\": [\"GW\"], \"246\": [\"IO\"], \"247\": [\"AC\"], \"248\": [\"SC\"], \"249\": [\"SD\"], \"250\": [\"RW\"], \"251\": [\"ET\"], \"252\": [\"SO\"], \"253\": [\"DJ\"], \"254\": [\"KE\"], \"255\": [\"TZ\"], \"256\": [\"UG\"], \"257\": [\"BI\"], \"258\": [\"MZ\"], \"260\": [\"ZM\"], \"261\": [\"MG\"], \"262\": [\"RE\", \"YT\"], \"263\": [\"ZW\"], \"264\": [\"NA\"], \"265\": [\"MW\"], \"266\": [\"LS\"], \"267\": [\"BW\"], \"268\": [\"SZ\"], \"269\": [\"KM\"], \"290\": [\"SH\", \"TA\"], \"291\": [\"ER\"], \"297\": [\"AW\"], \"298\": [\"FO\"], \"299\": [\"GL\"], \"350\": [\"GI\"], \"351\": [\"PT\"], \"352\": [\"LU\"], \"353\": [\"IE\"], \"354\": [\"IS\"], \"355\": [\"AL\"], \"356\": [\"MT\"], \"357\": [\"CY\"], \"358\": [\"FI\", \"AX\"], \"359\": [\"BG\"], \"370\": [\"LT\"], \"371\": [\"LV\"], \"372\": [\"EE\"], \"373\": [\"MD\"], \"374\": [\"AM\"], \"375\": [\"BY\"], \"376\": [\"AD\"], \"377\": [\"MC\"], \"378\": [\"SM\"], \"380\": [\"UA\"], \"381\": [\"RS\"], \"382\": [\"ME\"], \"383\": [\"XK\"], \"385\": [\"HR\"], \"386\": [\"SI\"], \"387\": [\"BA\"], \"389\": [\"MK\"], \"420\": [\"CZ\"], \"421\": [\"SK\"], \"423\": [\"LI\"], \"500\": [\"FK\"], \"501\": [\"BZ\"], \"502\": [\"GT\"], \"503\": [\"SV\"], \"504\": [\"HN\"], \"505\": [\"NI\"], \"506\": [\"CR\"], \"507\": [\"PA\"], \"508\": [\"PM\"], \"509\": [\"HT\"], \"590\": [\"GP\", \"BL\", \"MF\"], \"591\": [\"BO\"], \"592\": [\"GY\"], \"593\": [\"EC\"], \"594\": [\"GF\"], \"595\": [\"PY\"], \"596\": [\"MQ\"], \"597\": [\"SR\"], \"598\": [\"UY\"], \"599\": [\"CW\", \"BQ\"], \"670\": [\"TL\"], \"672\": [\"NF\"], \"673\": [\"BN\"], \"674\": [\"NR\"], \"675\": [\"PG\"], \"676\": [\"TO\"], \"677\": [\"SB\"], \"678\": [\"VU\"], \"679\": [\"FJ\"], \"680\": [\"PW\"], \"681\": [\"WF\"], \"682\": [\"CK\"], \"683\": [\"NU\"], \"685\": [\"WS\"], \"686\": [\"KI\"], \"687\": [\"NC\"], \"688\": [\"TV\"], \"689\": [\"PF\"], \"690\": [\"TK\"], \"691\": [\"FM\"], \"692\": [\"MH\"], \"850\": [\"KP\"], \"852\": [\"HK\"], \"853\": [\"MO\"], \"855\": [\"KH\"], \"856\": [\"LA\"], \"880\": [\"BD\"], \"886\": [\"TW\"], \"960\": [\"MV\"], \"961\": [\"LB\"], \"962\": [\"JO\"], \"963\": [\"SY\"], \"964\": [\"IQ\"], \"965\": [\"KW\"], \"966\": [\"SA\"], \"967\": [\"YE\"], \"968\": [\"OM\"], \"970\": [\"PS\"], \"971\": [\"AE\"], \"972\": [\"IL\"], \"973\": [\"BH\"], \"974\": [\"QA\"], \"975\": [\"BT\"], \"976\": [\"MN\"], \"977\": [\"NP\"], \"992\": [\"TJ\"], \"993\": [\"TM\"], \"994\": [\"AZ\"], \"995\": [\"GE\"], \"996\": [\"KG\"], \"998\": [\"UZ\"] }, \"countries\": { \"AC\": [\"247\", \"00\", \"(?:[01589]\\\\d|[46])\\\\d{4}\", [5, 6]], \"AD\": [\"376\", \"00\", \"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\", [6, 8, 9], [[\"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"[135-9]\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"1\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6\"]]]], \"AE\": [\"971\", \"00\", \"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\", [5, 6, 7, 8, 9, 10, 11, 12], [[\"(\\\\d{3})(\\\\d{2,9})\", \"$1 $2\", [\"60|8\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[236]|[479][2-8]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d)(\\\\d{5})\", \"$1 $2 $3\", [\"[479]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"5\"], \"0$1\"]], \"0\"], \"AF\": [\"93\", \"00\", \"[2-7]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-7]\"], \"0$1\"]], \"0\"], \"AG\": [\"1\", \"011\", \"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([457]\\\\d{6})$\", \"268$1\", 0, \"268\"], \"AI\": [\"1\", \"011\", \"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2457]\\\\d{6})$\", \"264$1\", 0, \"264\"], \"AL\": [\"355\", \"00\", \"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\", [6, 7, 8, 9], [[\"(\\\\d{3})(\\\\d{3,4})\", \"$1 $2\", [\"80|9\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"4[2-6]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2358][2-5]|4\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[23578]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"6\"], \"0$1\"]], \"0\"], \"AM\": [\"374\", \"00\", \"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\", [8], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[89]0\"], \"0 $1\"], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"2|3[12]\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"1|47\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[3-9]\"], \"0$1\"]], \"0\"], \"AO\": [\"244\", \"00\", \"[29]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[29]\"]]]], \"AR\": [\"54\", \"00\", \"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\", [10, 11], [[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\", \"$1 $2-$3\", [\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\", \"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\", \"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\", \"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"], \"0$1\", 1], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2-$3\", [\"1\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"[68]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2-$3\", [\"[23]\"], \"0$1\", 1], [\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\", \"$2 15-$3-$4\", [\"9(?:2[2-469]|3[3-578])\", \"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\", \"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\", \"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\", \"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"], \"0$1\", 0, \"$1 $2 $3-$4\"], [\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$2 15-$3-$4\", [\"91\"], \"0$1\", 0, \"$1 $2 $3-$4\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\", \"$1-$2-$3\", [\"8\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$2 15-$3-$4\", [\"9\"], \"0$1\", 0, \"$1 $2 $3-$4\"]], \"0\", 0, \"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\", \"9$1\"], \"AS\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([267]\\\\d{6})$\", \"684$1\", 0, \"684\"], \"AT\": [\"43\", \"00\", \"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13], [[\"(\\\\d)(\\\\d{3,12})\", \"$1 $2\", [\"1(?:11|[2-9])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})\", \"$1 $2\", [\"517\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3,5})\", \"$1 $2\", [\"5[079]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3,10})\", \"$1 $2\", [\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3,9})\", \"$1 $2\", [\"[2-467]|5[2-6]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"5\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\", \"$1 $2 $3\", [\"5\"], \"0$1\"]], \"0\"], \"AU\": [\"61\", \"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\", \"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\", [5, 6, 7, 8, 9, 10, 12], [[\"(\\\\d{2})(\\\\d{3,4})\", \"$1 $2\", [\"16\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\", \"$1 $2 $3\", [\"16\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"14|4\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[2378]\"], \"(0$1)\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1(?:30|[89])\"]]], \"0\", 0, \"0|(183[12])\", 0, 0, 0, [[\"(?:(?:2(?:[0-26-9]\\\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\\\d|2[0-8]))\\\\d{3}|8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\\\d|7[89]|9[0-4]))|(?:6[0-8]|[78]\\\\d)\\\\d{3}|9(?:[02-9]\\\\d{3}|1(?:(?:[0-58]\\\\d|6[0135-9])\\\\d|7(?:0[0-24-9]|[1-9]\\\\d)|9(?:[0-46-9]\\\\d|5[0-79])))))\\\\d{3}\", [9]], [\"4(?:83[0-38]|93[0-6])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\\\d{6}\", [9]], [\"180(?:0\\\\d{3}|2)\\\\d{3}\", [7, 10]], [\"190[0-26]\\\\d{6}\", [10]], 0, 0, 0, [\"163\\\\d{2,6}\", [5, 6, 7, 8, 9]], [\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\", [9]], [\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\", [6, 8, 10, 12]]], \"0011\"], \"AW\": [\"297\", \"00\", \"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[25-9]\"]]]], \"AX\": [\"358\", \"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\", \"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\", [5, 6, 7, 8, 9, 10, 11, 12], 0, \"0\", 0, 0, 0, 0, \"18\", 0, \"00\"], \"AZ\": [\"994\", \"00\", \"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"90\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"1[28]|2|365|46\", \"1[28]|2|365[45]|46\", \"1[28]|2|365(?:4|5[02])|46\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[13-9]\"], \"0$1\"]], \"0\"], \"BA\": [\"387\", \"00\", \"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6[1-3]|[7-9]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2-$3\", [\"[3-5]|6[56]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"6\"], \"0$1\"]], \"0\"], \"BB\": [\"1\", \"011\", \"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-9]\\\\d{6})$\", \"246$1\", 0, \"246\"], \"BD\": [\"880\", \"00\", \"[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}\", [6, 7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{4,6})\", \"$1-$2\", [\"31[5-8]|[459]1\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3,7})\", \"$1-$2\", [\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:28|4[14]|5)|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3,6})\", \"$1-$2\", [\"[13-9]|22\"], \"0$1\"], [\"(\\\\d)(\\\\d{7,8})\", \"$1-$2\", [\"2\"], \"0$1\"]], \"0\"], \"BE\": [\"32\", \"00\", \"4\\\\d{8}|[1-9]\\\\d{7}\", [8, 9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"(?:80|9)0\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[239]|4[23]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[15-8]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"4\"], \"0$1\"]], \"0\"], \"BF\": [\"226\", \"00\", \"[025-7]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[025-7]\"]]]], \"BG\": [\"359\", \"00\", \"[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\", [6, 7, 8, 9], [[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"2\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"43[1-6]|70[1-9]\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\", \"$1 $2 $3\", [\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"(?:70|8)0\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1 $2 $3\", [\"43[1-7]|7\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[48]|9[08]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"9\"], \"0$1\"]], \"0\"], \"BH\": [\"973\", \"00\", \"[136-9]\\\\d{7}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[13679]|8[047]\"]]]], \"BI\": [\"257\", \"00\", \"(?:[267]\\\\d|31)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2367]\"]]]], \"BJ\": [\"229\", \"00\", \"(?:[25689]\\\\d|40)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[24-689]\"]]]], \"BL\": [\"590\", \"00\", \"(?:590|(?:69|80)\\\\d|976)\\\\d{6}\", [9], 0, \"0\", 0, 0, 0, 0, 0, [[\"590(?:2[7-9]|5[12]|87)\\\\d{4}\"], [\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\"], [\"80[0-5]\\\\d{6}\"], 0, 0, 0, 0, 0, [\"976[01]\\\\d{5}\"]]], \"BM\": [\"1\", \"011\", \"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-8]\\\\d{6})$\", \"441$1\", 0, \"441\"], \"BN\": [\"673\", \"00\", \"[2-578]\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-578]\"]]]], \"BO\": [\"591\", \"00(?:1\\\\d)?\", \"(?:[2-467]\\\\d\\\\d|8001)\\\\d{5}\", [8, 9], [[\"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"[23]|4[46]\"]], [\"(\\\\d{8})\", \"$1\", [\"[67]\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]]], \"0\", 0, \"0(1\\\\d)?\"], \"BQ\": [\"599\", \"00\", \"(?:[34]1|7\\\\d)\\\\d{5}\", [7], 0, 0, 0, 0, 0, 0, \"[347]\"], \"BR\": [\"55\", \"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\", \"(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-46-9]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}\", [8, 9, 10, 11], [[\"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"300|4(?:0[02]|37)\", \"4(?:02|37)0|[34]00\"]], [\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\", \"$1 $2 $3\", [\"(?:[358]|90)0\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2-$3\", [\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"], \"($1)\"], [\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\", \"$1 $2-$3\", [\"[16][1-9]|[2-57-9]\"], \"($1)\"]], \"0\", 0, \"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\", \"$2\"], \"BS\": [\"1\", \"011\", \"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([3-8]\\\\d{6})$\", \"242$1\", 0, \"242\"], \"BT\": [\"975\", \"00\", \"[17]\\\\d{7}|[2-8]\\\\d{6}\", [7, 8], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-68]|7[246]\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"1[67]|7\"]]]], \"BW\": [\"267\", \"00\", \"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\", [7, 8, 10], [[\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"90\"]], [\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[24-6]|3[15-79]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[37]\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"0\"]], [\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]]]], \"BY\": [\"375\", \"810\", \"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\", [6, 7, 8, 9, 10, 11], [[\"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"800\"], \"8 $1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\", \"$1 $2 $3\", [\"800\"], \"8 $1\"], [\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\", \"$1 $2-$3\", [\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\", \"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"], \"8 0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"1(?:[56]|7[467])|2[1-3]\"], \"8 0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"[1-4]\"], \"8 0$1\"], [\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"], \"8 $1\"]], \"8\", 0, \"0|80?\", 0, 0, 0, 0, \"8~10\"], \"BZ\": [\"501\", \"00\", \"(?:0800\\\\d|[2-8])\\\\d{6}\", [7, 11], [[\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[2-8]\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\", \"$1-$2-$3-$4\", [\"0\"]]]], \"CA\": [\"1\", \"011\", \"(?:[2-8]\\\\d|90)\\\\d{8}|3\\\\d{6}\", [7, 10], 0, \"1\", 0, 0, 0, 0, 0, [[\"(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|6[578])|4(?:03|1[68]|3[178]|50|68|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|13|39|47|72)|7(?:0[59]|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\\\d{6}\", [10]], [\"\", [10]], [\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", [10]], [\"900[2-9]\\\\d{6}\", [10]], [\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:00|2[125-7]|33|44|66|77|88)|622)[2-9]\\\\d{6}\", [10]], 0, [\"310\\\\d{4}\", [7]], 0, [\"600[2-9]\\\\d{6}\", [10]]]], \"CC\": [\"61\", \"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\", \"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\", [6, 7, 8, 9, 10, 12], 0, \"0\", 0, \"0|([59]\\\\d{7})$\", \"8$1\", 0, 0, [[\"8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\", [9]], [\"4(?:83[0-38]|93[0-6])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\\\d{6}\", [9]], [\"180(?:0\\\\d{3}|2)\\\\d{3}\", [7, 10]], [\"190[0-26]\\\\d{6}\", [10]], 0, 0, 0, 0, [\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\", [9]], [\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\", [6, 8, 10, 12]]], \"0011\"], \"CD\": [\"243\", \"00\", \"[189]\\\\d{8}|[1-68]\\\\d{6}\", [7, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"88\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"[1-6]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"]], \"0\"], \"CF\": [\"236\", \"00\", \"(?:[27]\\\\d{3}|8776)\\\\d{4}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[278]\"]]]], \"CG\": [\"242\", \"00\", \"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\", [9], [[\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[02]\"]]]], \"CH\": [\"41\", \"00\", \"8\\\\d{11}|[2-9]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8[047]|90\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2-79]|81\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"8\"], \"0$1\"]], \"0\"], \"CI\": [\"225\", \"00\", \"[02]\\\\d{9}\", [10], [[\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\", \"$1 $2 $3 $4\", [\"2\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"0\"]]]], \"CK\": [\"682\", \"00\", \"[2-578]\\\\d{4}\", [5], [[\"(\\\\d{2})(\\\\d{3})\", \"$1 $2\", [\"[2-578]\"]]]], \"CL\": [\"56\", \"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\", \"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\", [9, 10, 11], [[\"(\\\\d{5})(\\\\d{4})\", \"$1 $2\", [\"219\", \"2196\"], \"($1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"44\"]], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"2[1-36]\"], \"($1)\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"9[2-9]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"], \"($1)\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"60|8\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"60\"]]]], \"CM\": [\"237\", \"00\", \"[26]\\\\d{8}|88\\\\d{6,7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"88\"]], [\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"[26]|88\"]]]], \"CN\": [\"86\", \"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\", \"1[127]\\\\d{8,9}|2\\\\d{9}(?:\\\\d{2})?|[12]\\\\d{6,7}|86\\\\d{6}|(?:1[03-689]\\\\d|6)\\\\d{7,9}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{6,9}\", [7, 8, 9, 10, 11, 12], [[\"(\\\\d{2})(\\\\d{5,6})\", \"$1 $2\", [\"(?:10|2[0-57-9])[19]\", \"(?:10|2[0-57-9])(?:10|9[56])\", \"(?:10|2[0-57-9])(?:100|9[56])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5,6})\", \"$1 $2\", [\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\", \"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\", \"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\", \"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"(?:4|80)0\"]], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"10|2(?:[02-57-9]|1[1-9])\", \"10|2(?:[02-57-9]|1[1-9])\", \"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{7,8})\", \"$1 $2\", [\"9\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"80\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[3-578]\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"1[3-9]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"[12]\"], \"0$1\", 1]], \"0\", 0, \"0|(1(?:[12]\\\\d|79)\\\\d\\\\d)\", 0, 0, 0, 0, \"00\"], \"CO\": [\"57\", \"00(?:4(?:[14]4|56)|[579])\", \"(?:60\\\\d\\\\d|9101)\\\\d{6}|(?:1\\\\d|3)\\\\d{9}\", [10, 11], [[\"(\\\\d{3})(\\\\d{7})\", \"$1 $2\", [\"6\"], \"($1)\"], [\"(\\\\d{3})(\\\\d{7})\", \"$1 $2\", [\"[39]\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{7})\", \"$1-$2-$3\", [\"1\"], \"0$1\", 0, \"$1 $2 $3\"]], \"0\", 0, \"0(4(?:[14]4|56)|[579])?\"], \"CR\": [\"506\", \"00\", \"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\", [8, 10], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2-7]|8[3-9]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"[89]\"]]], 0, 0, \"(19(?:0[0-2468]|1[09]|20|66|77|99))\"], \"CU\": [\"53\", \"119\", \"[27]\\\\d{6,7}|[34]\\\\d{5,7}|(?:5|8\\\\d\\\\d)\\\\d{7}\", [6, 7, 8, 10], [[\"(\\\\d{2})(\\\\d{4,6})\", \"$1 $2\", [\"2[1-4]|[34]\"], \"(0$1)\"], [\"(\\\\d)(\\\\d{6,7})\", \"$1 $2\", [\"7\"], \"(0$1)\"], [\"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"5\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{7})\", \"$1 $2\", [\"8\"], \"0$1\"]], \"0\"], \"CV\": [\"238\", \"0\", \"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[2-589]\"]]]], \"CW\": [\"599\", \"00\", \"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\", [7, 8], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[3467]\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"9[4-8]\"]]], 0, 0, 0, 0, 0, \"[69]\"], \"CX\": [\"61\", \"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\", \"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\", [6, 7, 8, 9, 10, 12], 0, \"0\", 0, \"0|([59]\\\\d{7})$\", \"8$1\", 0, 0, [[\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\", [9]], [\"4(?:83[0-38]|93[0-6])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\\\d{6}\", [9]], [\"180(?:0\\\\d{3}|2)\\\\d{3}\", [7, 10]], [\"190[0-26]\\\\d{6}\", [10]], 0, 0, 0, 0, [\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\", [9]], [\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\", [6, 8, 10, 12]]], \"0011\"], \"CY\": [\"357\", \"00\", \"(?:[279]\\\\d|[58]0)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[257-9]\"]]]], \"CZ\": [\"420\", \"00\", \"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-8]|9[015-7]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"96\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"9\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"9\"]]]], \"DE\": [\"49\", \"00\", \"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:2[02-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[015]\\\\d|[23]1|[46][1-8])\\\\d{1,9}\", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [[\"(\\\\d{2})(\\\\d{3,13})\", \"$1 $2\", [\"3[02]|40|[68]9\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3,12})\", \"$1 $2\", [\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\", \"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{2,11})\", \"$1 $2\", [\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\", \"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"138\"], \"0$1\"], [\"(\\\\d{5})(\\\\d{2,10})\", \"$1 $2\", [\"3\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5,11})\", \"$1 $2\", [\"181\"], \"0$1\"], [\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\", \"$1 $2 $3\", [\"1(?:3|80)|9\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{7,8})\", \"$1 $2\", [\"1[67]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{7,12})\", \"$1 $2\", [\"8\"], \"0$1\"], [\"(\\\\d{5})(\\\\d{6})\", \"$1 $2\", [\"185\", \"1850\", \"18500\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{7})\", \"$1 $2\", [\"18[68]\"], \"0$1\"], [\"(\\\\d{5})(\\\\d{6})\", \"$1 $2\", [\"15[0568]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{7})\", \"$1 $2\", [\"15[1279]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{8})\", \"$1 $2\", [\"18\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\", \"$1 $2 $3\", [\"1(?:6[023]|7)\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\", \"$1 $2 $3\", [\"15[279]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\", \"$1 $2 $3\", [\"15\"], \"0$1\"]], \"0\"], \"DJ\": [\"253\", \"00\", \"(?:2\\\\d|77)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[27]\"]]]], \"DK\": [\"45\", \"00\", \"[2-9]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2-9]\"]]]], \"DM\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-7]\\\\d{6})$\", \"767$1\", 0, \"767\"], \"DO\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, 0, 0, 0, \"8001|8[024]9\"], \"DZ\": [\"213\", \"00\", \"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[1-4]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"9\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[5-8]\"], \"0$1\"]], \"0\"], \"EC\": [\"593\", \"00\", \"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\", [8, 9, 10, 11], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2-$3\", [\"[2-7]\"], \"(0$1)\", 0, \"$1-$2-$3\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"9\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"1\"]]], \"0\"], \"EE\": [\"372\", \"00\", \"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\", [7, 8, 10], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\", \"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]], [\"(\\\\d{4})(\\\\d{3,4})\", \"$1 $2\", [\"[45]|8(?:00|[1-49])\", \"[45]|8(?:00[1-9]|[1-49])\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]]]], \"EG\": [\"20\", \"00\", \"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\", [8, 9, 10], [[\"(\\\\d)(\\\\d{7,8})\", \"$1 $2\", [\"[23]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{6,7})\", \"$1 $2\", [\"1[35]|[4-6]|8[2468]|9[235-7]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[189]\"], \"0$1\"]], \"0\"], \"EH\": [\"212\", \"00\", \"[5-8]\\\\d{8}\", [9], 0, \"0\", 0, 0, 0, 0, \"528[89]\"], \"ER\": [\"291\", \"00\", \"[178]\\\\d{6}\", [7], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[178]\"], \"0$1\"]], \"0\"], \"ES\": [\"34\", \"00\", \"[5-9]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[89]00\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[5-9]\"]]]], \"ET\": [\"251\", \"00\", \"(?:11|[2-579]\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[1-579]\"], \"0$1\"]], \"0\"], \"FI\": [\"358\", \"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\", \"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\", [5, 6, 7, 8, 9, 10, 11, 12], [[\"(\\\\d)(\\\\d{4,9})\", \"$1 $2\", [\"[2568][1-8]|3(?:0[1-9]|[1-9])|9\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3,7})\", \"$1 $2\", [\"[12]00|[368]|70[07-9]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4,8})\", \"$1 $2\", [\"[1245]|7[135]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{6,10})\", \"$1 $2\", [\"7\"], \"0$1\"]], \"0\", 0, 0, 0, 0, \"1[03-79]|[2-9]\", 0, \"00\"], \"FJ\": [\"679\", \"0(?:0|52)\", \"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\", [7, 11], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[235-9]|45\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"0\"]]], 0, 0, 0, 0, 0, 0, 0, \"00\"], \"FK\": [\"500\", \"00\", \"[2-7]\\\\d{4}\", [5]], \"FM\": [\"691\", \"00\", \"(?:[39]\\\\d\\\\d|820)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[389]\"]]]], \"FO\": [\"298\", \"00\", \"[2-9]\\\\d{5}\", [6], [[\"(\\\\d{6})\", \"$1\", [\"[2-9]\"]]], 0, 0, \"(10(?:01|[12]0|88))\"], \"FR\": [\"33\", \"00\", \"[1-9]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"], \"0 $1\"], [\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"[1-79]\"], \"0$1\"]], \"0\"], \"GA\": [\"241\", \"00\", \"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\", [7, 8], [[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2-7]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"0\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"11|[67]\"], \"0$1\"]], 0, 0, \"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\", \"$1\"], \"GB\": [\"44\", \"00\", \"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\", [7, 9, 10], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"800\", \"8001\", \"80011\", \"800111\", \"8001111\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"845\", \"8454\", \"84546\", \"845464\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"800\"], \"0$1\"], [\"(\\\\d{5})(\\\\d{4,5})\", \"$1 $2\", [\"1(?:38|5[23]|69|76|94)\", \"1(?:(?:38|69)7|5(?:24|39)|768|946)\", \"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{5,6})\", \"$1 $2\", [\"1(?:[2-69][02-9]|[78])\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[25]|7(?:0|6[02-9])\", \"[25]|7(?:0|6(?:[03-9]|2[356]))\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{6})\", \"$1 $2\", [\"7\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[1389]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[0235])|4(?:[0-5]\\\\d\\\\d|69[7-9]|70[01359])|(?:5[0-26-9]|[78][0-49])\\\\d\\\\d|6(?:[0-4]\\\\d\\\\d|50[0-79]))|2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d\\\\d|1(?:[0-7]\\\\d\\\\d|8(?:[02]\\\\d|1[0-26-9])))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\", [9, 10]], [\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\", [10]], [\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"], [\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\", [7, 10]], [\"70\\\\d{8}\", [10]], 0, [\"(?:3[0347]|55)\\\\d{8}\", [10]], [\"76(?:464|652)\\\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\", [10]], [\"56\\\\d{8}\", [10]]], 0, \" x\"], \"GD\": [\"1\", \"011\", \"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-9]\\\\d{6})$\", \"473$1\", 0, \"473\"], \"GE\": [\"995\", \"00\", \"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"70\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"32\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[57]\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[348]\"], \"0$1\"]], \"0\"], \"GF\": [\"594\", \"00\", \"(?:[56]94|80\\\\d|976)\\\\d{6}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[569]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], \"0\"], \"GG\": [\"44\", \"00\", \"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\", [7, 9, 10], 0, \"0\", 0, \"0|([25-9]\\\\d{5})$\", \"1481$1\", 0, 0, [[\"1481[25-9]\\\\d{5}\", [10]], [\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\", [10]], [\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"], [\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\", [7, 10]], [\"70\\\\d{8}\", [10]], 0, [\"(?:3[0347]|55)\\\\d{8}\", [10]], [\"76(?:464|652)\\\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\", [10]], [\"56\\\\d{8}\", [10]]]], \"GH\": [\"233\", \"00\", \"(?:[235]\\\\d{3}|800)\\\\d{5}\", [8, 9], [[\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"8\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[235]\"], \"0$1\"]], \"0\"], \"GI\": [\"350\", \"00\", \"(?:[25]\\\\d\\\\d|606)\\\\d{5}\", [8], [[\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"2\"]]]], \"GL\": [\"299\", \"00\", \"(?:19|[2-689]\\\\d|70)\\\\d{4}\", [6], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"19|[2-9]\"]]]], \"GM\": [\"220\", \"00\", \"[2-9]\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-9]\"]]]], \"GN\": [\"224\", \"00\", \"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"3\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[67]\"]]]], \"GP\": [\"590\", \"00\", \"(?:590|(?:69|80)\\\\d|976)\\\\d{6}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[569]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1289]|5[3-579]|6[0-289]|7[08]|8[0-689]|9\\\\d)\\\\d{4}\"], [\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\"], [\"80[0-5]\\\\d{6}\"], 0, 0, 0, 0, 0, [\"976[01]\\\\d{5}\"]]], \"GQ\": [\"240\", \"00\", \"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[235]\"]], [\"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"[89]\"]]]], \"GR\": [\"30\", \"00\", \"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\", [10, 11, 12], [[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"21|7\"]], [\"(\\\\d{4})(\\\\d{6})\", \"$1 $2\", [\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2689]\"]], [\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\", \"$1 $2 $3\", [\"8\"]]]], \"GT\": [\"502\", \"00\", \"(?:1\\\\d{3}|[2-7])\\\\d{7}\", [8, 11], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2-7]\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]]]], \"GU\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([3-9]\\\\d{6})$\", \"671$1\", 0, \"671\"], \"GW\": [\"245\", \"00\", \"[49]\\\\d{8}|4\\\\d{6}\", [7, 9], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"40\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[49]\"]]]], \"GY\": [\"592\", \"001\", \"9008\\\\d{3}|(?:[2-467]\\\\d\\\\d|862)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-46-9]\"]]]], \"HK\": [\"852\", \"00(?:30|5[09]|[126-9]?)\", \"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\", [5, 6, 7, 8, 9, 11], [[\"(\\\\d{3})(\\\\d{2,5})\", \"$1 $2\", [\"900\", \"9003\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"9\"]]], 0, 0, 0, 0, 0, 0, 0, \"00\"], \"HN\": [\"504\", \"00\", \"8\\\\d{10}|[237-9]\\\\d{7}\", [8, 11], [[\"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"[237-9]\"]]]], \"HR\": [\"385\", \"00\", \"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\", [6, 7, 8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"6[01]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"8\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[67]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"9\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2-5]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"], \"0$1\"]], \"0\"], \"HT\": [\"509\", \"00\", \"[2-489]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-489]\"]]]], \"HU\": [\"36\", \"00\", \"[235-7]\\\\d{8}|[1-9]\\\\d{7}\", [8, 9], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"(06 $1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"], \"(06 $1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2-9]\"], \"06 $1\"]], \"06\"], \"ID\": [\"62\", \"00[89]\", \"(?:(?:00[1-9]|8\\\\d)\\\\d{4}|[1-36])\\\\d{6}|00\\\\d{10}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\", [7, 8, 9, 10, 11, 12, 13], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"15\"]], [\"(\\\\d{2})(\\\\d{5,9})\", \"$1 $2\", [\"2[124]|[36]1\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{5,7})\", \"$1 $2\", [\"800\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5,8})\", \"$1 $2\", [\"[2-79]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\", \"$1-$2-$3\", [\"8[1-35-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{6,8})\", \"$1 $2\", [\"1\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"804\"], \"0$1\"], [\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"80\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\", \"$1-$2-$3\", [\"8\"], \"0$1\"]], \"0\"], \"IE\": [\"353\", \"00\", \"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\", [7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"2[24-9]|47|58|6[237-9]|9[35-9]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[45]0\"], \"(0$1)\"], [\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2569]|4[1-69]|7[14]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"70\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"81\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[78]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"]], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"4\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], \"0\"], \"IL\": [\"972\", \"0(?:0|1[2-9])\", \"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\", [7, 8, 9, 10, 11, 12], [[\"(\\\\d{4})(\\\\d{3})\", \"$1-$2\", [\"125\"]], [\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\", \"$1-$2-$3\", [\"121\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"[2-489]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"[57]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1-$2-$3\", [\"12\"]], [\"(\\\\d{4})(\\\\d{6})\", \"$1-$2\", [\"159\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1-$2-$3-$4\", [\"1[7-9]\"]], [\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\", \"$1-$2 $3-$4\", [\"15\"]]], \"0\"], \"IM\": [\"44\", \"00\", \"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\", [10], 0, \"0\", 0, \"0|([25-8]\\\\d{5})$\", \"1624$1\", 0, \"74576|(?:16|7[56])24\"], \"IN\": [\"91\", \"00\", \"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\", [8, 9, 10, 11, 12, 13], [[\"(\\\\d{8})\", \"$1\", [\"5(?:0|2[23]|3[03]|[67]1|88)\", \"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\", \"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"], 0, 1], [\"(\\\\d{4})(\\\\d{4,5})\", \"$1 $2\", [\"180\", \"1800\"], 0, 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"140\"], 0, 1], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\", \"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\", \"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\", \"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\", \"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"], \"0$1\", 1], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\", \"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\", \"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"], \"0$1\", 1], [\"(\\\\d{5})(\\\\d{5})\", \"$1 $2\", [\"[6-9]\"], \"0$1\", 1], [\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\", \"$1 $2 $3\", [\"1(?:6|8[06])\", \"1(?:6|8[06]0)\"], 0, 1], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"18\"], 0, 1]], \"0\"], \"IO\": [\"246\", \"00\", \"3\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"3\"]]]], \"IQ\": [\"964\", \"00\", \"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\", [8, 9, 10], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2-6]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"]], \"0\"], \"IR\": [\"98\", \"00\", \"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\", [4, 5, 6, 7, 10], [[\"(\\\\d{4,5})\", \"$1\", [\"96\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4,5})\", \"$1 $2\", [\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"9\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[1-8]\"], \"0$1\"]], \"0\"], \"IS\": [\"354\", \"00|1(?:0(?:01|[12]0)|100)\", \"(?:38\\\\d|[4-9])\\\\d{6}\", [7, 9], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[4-9]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"3\"]]], 0, 0, 0, 0, 0, 0, 0, \"00\"], \"IT\": [\"39\", \"00\", \"0\\\\d{5,10}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\", [6, 7, 8, 9, 10, 11], [[\"(\\\\d{2})(\\\\d{4,6})\", \"$1 $2\", [\"0[26]\"]], [\"(\\\\d{3})(\\\\d{3,6})\", \"$1 $2\", [\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\", \"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]], [\"(\\\\d{4})(\\\\d{2,6})\", \"$1 $2\", [\"0(?:[13-579][2-46-8]|8[236-8])\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"894\"]], [\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"0[26]|5\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"1(?:44|[679])|[378]\"]], [\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"0[13-57-9][0159]|14\"]], [\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\", \"$1 $2 $3\", [\"0[26]\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"0\"]], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\", \"$1 $2 $3\", [\"3\"]]], 0, 0, 0, 0, 0, 0, [[\"0669[0-79]\\\\d{1,6}|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\"], [\"3[1-9]\\\\d{8}|3[2-9]\\\\d{7}\", [9, 10]], [\"80(?:0\\\\d{3}|3)\\\\d{3}\", [6, 9]], [\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\", [6, 8, 9, 10]], [\"1(?:78\\\\d|99)\\\\d{6}\", [9, 10]], 0, 0, 0, [\"55\\\\d{8}\", [10]], [\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\", [6, 9]]]], \"JE\": [\"44\", \"00\", \"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\", [10], 0, \"0\", 0, \"0|([0-24-8]\\\\d{5})$\", \"1534$1\", 0, 0, [[\"1534[0-24-8]\\\\d{5}\"], [\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97[7-9]))\\\\d{5}\"], [\"80(?:07(?:35|81)|8901)\\\\d{4}\"], [\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\"], [\"701511\\\\d{4}\"], 0, [\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\"], [\"76(?:464|652)\\\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\"], [\"56\\\\d{8}\"]]], \"JM\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\", [10], 0, \"1\", 0, 0, 0, 0, \"658|876\"], \"JO\": [\"962\", \"00\", \"(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}\", [8, 9], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2356]|87\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{5,6})\", \"$1 $2\", [\"[89]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"70\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"]], \"0\"], \"JP\": [\"81\", \"010\", \"00[1-9]\\\\d{6,14}|[257-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\", [8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1-$2-$3\", [\"(?:12|57|99)0\"], \"0$1\"], [\"(\\\\d{4})(\\\\d)(\\\\d{4})\", \"$1-$2-$3\", [\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:80|9[16])\", \"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9]|636)|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\", \"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9]|636[457-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"60\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1-$2-$3\", [\"[36]|4(?:2[09]|7[01])\", \"[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[27-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\", \"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|51|6(?:[0-24]|36|5[0-3589]|72|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\", \"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\", \"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1-$2-$3\", [\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"800\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1-$2-$3\", [\"[257-9]\"], \"0$1\"]], \"0\"], \"KE\": [\"254\", \"000\", \"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\", [7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{5,7})\", \"$1 $2\", [\"[24-6]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"[17]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"]], \"0\"], \"KG\": [\"996\", \"00\", \"8\\\\d{9}|(?:[235-8]\\\\d|99)\\\\d{7}\", [9, 10], [[\"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"3(?:1[346]|[24-79])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[235-79]|88\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], \"0\"], \"KH\": [\"855\", \"00[14-9]\", \"1\\\\d{9}|[1-9]\\\\d{7,8}\", [8, 9, 10], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[1-9]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"]]], \"0\"], \"KI\": [\"686\", \"00\", \"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\", [5, 8], 0, \"0\"], \"KM\": [\"269\", \"00\", \"[3478]\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[3478]\"]]]], \"KN\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-7]\\\\d{6})$\", \"869$1\", 0, \"869\"], \"KP\": [\"850\", \"00|99\", \"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\", [8, 10], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-7]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"0$1\"]], \"0\"], \"KR\": [\"82\", \"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\", \"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\", [5, 6, 8, 9, 10, 11, 12, 13, 14], [[\"(\\\\d{2})(\\\\d{3,4})\", \"$1-$2\", [\"(?:3[1-3]|[46][1-4]|5[1-5])1\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"1\"]], [\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\", \"$1-$2-$3\", [\"2\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"60|8\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1-$2-$3\", [\"[1346]|5[1-5]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1-$2-$3\", [\"[57]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\", \"$1-$2-$3\", [\"5\"], \"0$1\"]], \"0\", 0, \"0(8(?:[1-46-8]|5\\\\d\\\\d))?\"], \"KW\": [\"965\", \"00\", \"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\", [7, 8], [[\"(\\\\d{4})(\\\\d{3,4})\", \"$1 $2\", [\"[169]|2(?:[235]|4[1-35-9])|52\"]], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[245]\"]]]], \"KY\": [\"1\", \"011\", \"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-9]\\\\d{6})$\", \"345$1\", 0, \"345\"], \"KZ\": [\"7\", \"810\", \"(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}\", [10, 14], 0, \"8\", 0, 0, 0, 0, \"33|7\", 0, \"8~10\"], \"LA\": [\"856\", \"00\", \"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\", [8, 9, 10], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"2[13]|3[14]|[4-8]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"30[013-9]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"[23]\"], \"0$1\"]], \"0\"], \"LB\": [\"961\", \"00\", \"[27-9]\\\\d{7}|[13-9]\\\\d{6}\", [7, 8], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[27-9]\"]]], \"0\"], \"LC\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-8]\\\\d{6})$\", \"758$1\", 0, \"758\"], \"LI\": [\"423\", \"00\", \"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\", [7, 9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[2379]|8(?:0[09]|7)\", \"[2379]|8(?:0(?:02|9)|7)\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"69\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6\"]]], \"0\", 0, \"0|(1001)\"], \"LK\": [\"94\", \"00\", \"[1-9]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[1-689]\"], \"0$1\"]], \"0\"], \"LR\": [\"231\", \"00\", \"(?:2|33|5\\\\d|77|88)\\\\d{7}|[4-6]\\\\d{6}\", [7, 8, 9], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[4-6]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[3578]\"], \"0$1\"]], \"0\"], \"LS\": [\"266\", \"00\", \"(?:[256]\\\\d\\\\d|800)\\\\d{5}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2568]\"]]]], \"LT\": [\"370\", \"00\", \"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\", [8], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"52[0-7]\"], \"(8-$1)\", 1], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[7-9]\"], \"8 $1\", 1], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"37|4(?:[15]|6[1-8])\"], \"(8-$1)\", 1], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[3-6]\"], \"(8-$1)\", 1]], \"8\", 0, \"[08]\"], \"LU\": [\"352\", \"00\", \"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\", [4, 5, 6, 7, 8, 9, 10, 11], [[\"(\\\\d{2})(\\\\d{3})\", \"$1 $2\", [\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"20[2-689]\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\", \"$1 $2 $3 $4\", [\"2(?:[0367]|4[3-8])\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"80[01]|90[015]\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"20\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\", \"$1 $2 $3 $4 $5\", [\"2(?:[0367]|4[3-8])\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\", \"$1 $2 $3 $4\", [\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]], 0, 0, \"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\"], \"LV\": [\"371\", \"00\", \"(?:[268]\\\\d|90)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[269]|8[01]\"]]]], \"LY\": [\"218\", \"00\", \"[2-9]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{7})\", \"$1-$2\", [\"[2-9]\"], \"0$1\"]], \"0\"], \"MA\": [\"212\", \"00\", \"[5-8]\\\\d{8}\", [9], [[\"(\\\\d{5})(\\\\d{4})\", \"$1-$2\", [\"5(?:29|38)\", \"5(?:29[89]|389)\", \"5(?:29[89]|389)0\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"5[45]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{5})\", \"$1-$2\", [\"5(?:2[2-489]|3[5-9]|9)|892\", \"5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1-$2\", [\"8\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{6})\", \"$1-$2\", [\"[5-7]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"5(?:29(?:[189][05]|2[29]|3[01])|389[05])\\\\d{4}|5(?:2(?:[0-25-7]\\\\d|3[1-578]|4[02-46-8]|8[0235-7]|90)|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|8[08]|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\"], [\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[017]\\\\d|2[0-2]|6[0-8]))\\\\d{6}\"], [\"80\\\\d{7}\"], [\"89\\\\d{7}\"], 0, 0, 0, 0, [\"592(?:4[0-2]|93)\\\\d{4}\"]]], \"MC\": [\"377\", \"00\", \"(?:[3489]|6\\\\d)\\\\d{7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"4\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[389]\"]], [\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"6\"], \"0$1\"]], \"0\"], \"MD\": [\"373\", \"00\", \"(?:[235-7]\\\\d|[89]0)\\\\d{6}\", [8], [[\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[89]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"22|3\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[25-7]\"], \"0$1\"]], \"0\"], \"ME\": [\"382\", \"00\", \"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2-9]\"], \"0$1\"]], \"0\"], \"MF\": [\"590\", \"00\", \"(?:590|(?:69|80)\\\\d|976)\\\\d{6}\", [9], 0, \"0\", 0, 0, 0, 0, 0, [[\"590(?:0[079]|[14]3|[27][79]|30|5[0-268]|87)\\\\d{4}\"], [\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\"], [\"80[0-5]\\\\d{6}\"], 0, 0, 0, 0, 0, [\"976[01]\\\\d{5}\"]]], \"MG\": [\"261\", \"00\", \"[23]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[23]\"], \"0$1\"]], \"0\", 0, \"0|([24-9]\\\\d{6})$\", \"20$1\"], \"MH\": [\"692\", \"011\", \"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[2-6]\"]]], \"1\"], \"MK\": [\"389\", \"00\", \"[2-578]\\\\d{7}\", [8], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"2|34[47]|4(?:[37]7|5[47]|64)\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[347]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[58]\"], \"0$1\"]], \"0\"], \"ML\": [\"223\", \"00\", \"[24-9]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[24-9]\"]]]], \"MM\": [\"95\", \"00\", \"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\", [6, 7, 8, 9, 10], [[\"(\\\\d)(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"16|2\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[12]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[4-7]|8[1-35]\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\", \"$1 $2 $3\", [\"9(?:2[0-4]|[35-9]|4[137-9])\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"92\"], \"0$1\"], [\"(\\\\d)(\\\\d{5})(\\\\d{4})\", \"$1 $2 $3\", [\"9\"], \"0$1\"]], \"0\"], \"MN\": [\"976\", \"001\", \"[12]\\\\d{7,9}|[5-9]\\\\d{7}\", [8, 9, 10], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[12]1\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[5-9]\"]], [\"(\\\\d{3})(\\\\d{5,6})\", \"$1 $2\", [\"[12]2[1-3]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{5,6})\", \"$1 $2\", [\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\", \"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"], \"0$1\"], [\"(\\\\d{5})(\\\\d{4,5})\", \"$1 $2\", [\"[12]\"], \"0$1\"]], \"0\"], \"MO\": [\"853\", \"00\", \"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\", [7, 8], [[\"(\\\\d{4})(\\\\d{3})\", \"$1 $2\", [\"0\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[268]\"]]]], \"MP\": [\"1\", \"011\", \"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-9]\\\\d{6})$\", \"670$1\", 0, \"670\"], \"MQ\": [\"596\", \"00\", \"(?:69|80)\\\\d{7}|(?:59|97)6\\\\d{6}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[569]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], \"0\"], \"MR\": [\"222\", \"00\", \"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2-48]\"]]]], \"MS\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([34]\\\\d{6})$\", \"664$1\", 0, \"664\"], \"MT\": [\"356\", \"00\", \"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2357-9]\"]]]], \"MU\": [\"230\", \"0(?:0|[24-7]0|3[03])\", \"(?:5|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\", [7, 8, 10], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-46]|8[013]\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"5\"]], [\"(\\\\d{5})(\\\\d{5})\", \"$1 $2\", [\"8\"]]], 0, 0, 0, 0, 0, 0, 0, \"020\"], \"MV\": [\"960\", \"0(?:0|19)\", \"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\", [7, 10], [[\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[3467]|9[13-9]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"]]], 0, 0, 0, 0, 0, 0, 0, \"00\"], \"MW\": [\"265\", \"00\", \"(?:[129]\\\\d|31|77|88)\\\\d{7}|1\\\\d{6}\", [7, 9], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1[2-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[137-9]\"], \"0$1\"]], \"0\"], \"MX\": [\"52\", \"0[09]\", \"1(?:(?:44|99)[1-9]|65[0-689])\\\\d{7}|(?:1(?:[017]\\\\d|[235][1-9]|4[0-35-9]|6[0-46-9]|8[1-79]|9[1-8])|[2-9]\\\\d)\\\\d{8}\", [10, 11], [[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"33|5[56]|81\"], 0, 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-9]\"], 0, 1], [\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$2 $3 $4\", [\"1(?:33|5[56]|81)\"], 0, 1], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$2 $3 $4\", [\"1\"], 0, 1]], \"01\", 0, \"0(?:[12]|4[45])|1\", 0, 0, 0, 0, \"00\"], \"MY\": [\"60\", \"00\", \"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\", [8, 9, 10], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1-$2 $3\", [\"[4-79]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1-$2 $3\", [\"1(?:[02469]|[378][1-9]|53)|8\", \"1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1-$2 $3\", [\"3\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1-$2-$3-$4\", [\"1(?:[367]|80)\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2 $3\", [\"15\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1-$2 $3\", [\"1\"], \"0$1\"]], \"0\"], \"MZ\": [\"258\", \"00\", \"(?:2|8\\\\d)\\\\d{7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2|8[2-79]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]]]], \"NA\": [\"264\", \"00\", \"[68]\\\\d{7,8}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"88\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"6\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"87\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"], \"0$1\"]], \"0\"], \"NC\": [\"687\", \"00\", \"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\", [6], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1.$2.$3\", [\"[02-57-9]\"]]]], \"NE\": [\"227\", \"00\", \"[027-9]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"08\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[089]|2[013]|7[04]\"]]]], \"NF\": [\"672\", \"00\", \"[13]\\\\d{5}\", [6], [[\"(\\\\d{2})(\\\\d{4})\", \"$1 $2\", [\"1[0-3]\"]], [\"(\\\\d)(\\\\d{5})\", \"$1 $2\", [\"[13]\"]]], 0, 0, \"([0-258]\\\\d{4})$\", \"3$1\"], \"NG\": [\"234\", \"009\", \"(?:[124-7]|9\\\\d{3})\\\\d{6}|[1-9]\\\\d{7}|[78]\\\\d{9,13}\", [7, 8, 10, 11, 12, 13, 14], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"78\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[12]|9(?:0[3-9]|[1-9])\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\", \"$1 $2 $3\", [\"[3-7]|8[2-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[7-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\", \"$1 $2 $3\", [\"[78]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\", \"$1 $2 $3\", [\"[78]\"], \"0$1\"]], \"0\"], \"NI\": [\"505\", \"00\", \"(?:1800|[25-8]\\\\d{3})\\\\d{4}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[125-8]\"]]]], \"NL\": [\"31\", \"00\", \"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|8\\\\d{6,9}|9\\\\d{6,10}|1\\\\d{4,5}\", [5, 6, 7, 8, 9, 10, 11], [[\"(\\\\d{3})(\\\\d{4,7})\", \"$1 $2\", [\"[89]0\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"66\"], \"0$1\"], [\"(\\\\d)(\\\\d{8})\", \"$1 $2\", [\"6\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[1-578]|91\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\", \"$1 $2 $3\", [\"9\"], \"0$1\"]], \"0\"], \"NO\": [\"47\", \"00\", \"(?:0|[2-9]\\\\d{3})\\\\d{4}\", [5, 8], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[489]|59\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[235-7]\"]]], 0, 0, 0, 0, 0, \"[02-689]|7[0-8]\"], \"NP\": [\"977\", \"00\", \"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\", [8, 10, 11], [[\"(\\\\d)(\\\\d{7})\", \"$1-$2\", [\"1[2-6]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{6})\", \"$1-$2\", [\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{7})\", \"$1-$2\", [\"9\"]]], \"0\"], \"NR\": [\"674\", \"00\", \"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[4-68]\"]]]], \"NU\": [\"683\", \"00\", \"(?:[47]|888\\\\d)\\\\d{3}\", [4, 7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"8\"]]]], \"NZ\": [\"64\", \"0(?:0|161)\", \"[29]\\\\d{7,9}|50\\\\d{5}(?:\\\\d{2,3})?|6[0-35-9]\\\\d{6}|7\\\\d{7,8}|8\\\\d{4,9}|(?:11\\\\d|[34])\\\\d{7}\", [5, 6, 7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{3,8})\", \"$1 $2\", [\"8[1-579]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"50[036-8]|[89]0\", \"50(?:[0367]|88)|[89]0\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"24|[346]|7[2-57-9]|9[2-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2(?:10|74)|[59]|80\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"1|2[028]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\", \"$1 $2 $3\", [\"2(?:[169]|7[0-35-9])|7|86\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, 0, \"00\"], \"OM\": [\"968\", \"00\", \"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\", [7, 8, 9], [[\"(\\\\d{3})(\\\\d{4,6})\", \"$1 $2\", [\"[58]\"]], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"2\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[179]\"]]]], \"PA\": [\"507\", \"00\", \"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\", [7, 8, 10, 11], [[\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[1-57-9]\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"[68]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]]]], \"PE\": [\"51\", \"00|19(?:1[124]|77|90)00\", \"(?:[14-8]|9\\\\d)\\\\d{7}\", [8, 9], [[\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"80\"], \"(0$1)\"], [\"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"1\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[4-8]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"9\"]]], \"0\", 0, 0, 0, 0, 0, 0, \"00\", \" Anexo \"], \"PF\": [\"689\", \"00\", \"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\", [6, 8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"44\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"4|8[7-9]\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"]]]], \"PG\": [\"675\", \"00|140[1-3]\", \"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\", [7, 8], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"18|[2-69]|85\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[78]\"]]], 0, 0, 0, 0, 0, 0, 0, \"00\"], \"PH\": [\"63\", \"00\", \"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\", [6, 8, 9, 10, 11, 12, 13], [[\"(\\\\d)(\\\\d{5})\", \"$1 $2\", [\"2\"], \"(0$1)\"], [\"(\\\\d{4})(\\\\d{4,6})\", \"$1 $2\", [\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\", \"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"], \"(0$1)\"], [\"(\\\\d{5})(\\\\d{4})\", \"$1 $2\", [\"346|4(?:27|9[35])|883\", \"3469|4(?:279|9(?:30|56))|8834\"], \"(0$1)\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[3-7]|8[2-8]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]], [\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"1\"]]], \"0\"], \"PK\": [\"92\", \"00\", \"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\", [8, 9, 10, 11, 12], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\", \"$1 $2 $3\", [\"[89]0\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"1\"]], [\"(\\\\d{3})(\\\\d{6,7})\", \"$1 $2\", [\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\", \"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{7,8})\", \"$1 $2\", [\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"], \"(0$1)\"], [\"(\\\\d{5})(\\\\d{5})\", \"$1 $2\", [\"58\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{7})\", \"$1 $2\", [\"3\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"[24-9]\"], \"(0$1)\"]], \"0\"], \"PL\": [\"48\", \"00\", \"6\\\\d{5}(?:\\\\d{2})?|8\\\\d{9}|[1-9]\\\\d{6}(?:\\\\d{2})?\", [6, 7, 8, 9, 10], [[\"(\\\\d{5})\", \"$1\", [\"19\"]], [\"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"11|64\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\", \"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"64\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"1[2-8]|[2-7]|8[1-79]|9[145]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"8\"]]]], \"PM\": [\"508\", \"00\", \"(?:[45]|80\\\\d\\\\d)\\\\d{5}\", [6, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[45]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], \"0\"], \"PR\": [\"1\", \"011\", \"(?:[589]\\\\d\\\\d|787)\\\\d{7}\", [10], 0, \"1\", 0, 0, 0, 0, \"787|939\"], \"PS\": [\"970\", \"00\", \"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\", [8, 9, 10], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2489]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"5\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"]]], \"0\"], \"PT\": [\"351\", \"00\", \"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"2[12]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"16|[236-9]\"]]]], \"PW\": [\"680\", \"01[12]\", \"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-9]\"]]]], \"PY\": [\"595\", \"00\", \"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\", [6, 7, 8, 9, 10, 11], [[\"(\\\\d{3})(\\\\d{3,6})\", \"$1 $2\", [\"[2-9]0\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{4,5})\", \"$1 $2\", [\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"87\"]], [\"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"9(?:[5-79]|8[1-6])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-8]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"9\"]]], \"0\"], \"QA\": [\"974\", \"00\", \"[2-7]\\\\d{7}|800\\\\d{4}(?:\\\\d{2})?|2\\\\d{6}\", [7, 8, 9], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"2[126]|8\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2-7]\"]]]], \"RE\": [\"262\", \"00\", \"976\\\\d{6}|(?:26|[68]\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2689]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, \"26[23]|69|[89]\"], \"RO\": [\"40\", \"00\", \"(?:[2378]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\", [6, 9], [[\"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"2[3-6]\", \"2[3-6]\\\\d9\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})\", \"$1 $2\", [\"219|31\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[23]1\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[237-9]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, 0, 0, \" int \"], \"RS\": [\"381\", \"00\", \"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\", [6, 7, 8, 9, 10, 11, 12], [[\"(\\\\d{3})(\\\\d{3,9})\", \"$1 $2\", [\"(?:2[389]|39)0|[7-9]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{5,10})\", \"$1 $2\", [\"[1-36]\"], \"0$1\"]], \"0\"], \"RU\": [\"7\", \"810\", \"8\\\\d{13}|[347-9]\\\\d{9}\", [10, 14], [[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"7(?:1[0-8]|2[1-9])\", \"7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))\", \"7(?:1(?:[0-6]2|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"], \"8 ($1)\", 1], [\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"7(?:1[0-68]|2[1-9])\", \"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\", \"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"], \"8 ($1)\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"8 ($1)\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"[349]|8(?:[02-7]|1[1-8])\"], \"8 ($1)\", 1], [\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"8\"], \"8 ($1)\"]], \"8\", 0, 0, 0, 0, \"3[04-689]|[489]\", 0, \"8~10\"], \"RW\": [\"250\", \"00\", \"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\", [8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"0\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[7-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"2\"]]], \"0\"], \"SA\": [\"966\", \"00\", \"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\", [9, 10], [[\"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"9\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"5\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"81\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]]], \"0\"], \"SB\": [\"677\", \"0[01]\", \"(?:[1-6]|[7-9]\\\\d\\\\d)\\\\d{4}\", [5, 7], [[\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]], \"SC\": [\"248\", \"010|0[0-2]\", \"800\\\\d{4}|(?:[249]\\\\d|64)\\\\d{5}\", [7], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[246]|9[57]\"]]], 0, 0, 0, 0, 0, 0, 0, \"00\"], \"SD\": [\"249\", \"00\", \"[19]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[19]\"], \"0$1\"]], \"0\"], \"SE\": [\"46\", \"00\", \"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\", [6, 7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\", \"$1-$2 $3\", [\"20\"], \"0$1\", 0, \"$1 $2 $3\"], [\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"9(?:00|39|44|9)\"], \"0$1\", 0, \"$1 $2\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\", \"$1-$2 $3\", [\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"], \"0$1\", 0, \"$1 $2 $3\"], [\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"8\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\", \"$1-$2 $3\", [\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"], \"0$1\", 0, \"$1 $2 $3\"], [\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\", \"$1-$2 $3\", [\"9(?:00|39|44)\"], \"0$1\", 0, \"$1 $2 $3\"], [\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"10|7\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"8\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1-$2 $3 $4\", [\"9\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4 $5\", [\"[26]\"], \"0$1\", 0, \"$1 $2 $3 $4 $5\"]], \"0\"], \"SG\": [\"65\", \"0[0-3]\\\\d\", \"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\", [8, 10, 11], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[369]|8(?:0[1-5]|[1-9])\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]], [\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"7\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]]]], \"SH\": [\"290\", \"00\", \"(?:[256]\\\\d|8)\\\\d{3}\", [4, 5], 0, 0, 0, 0, 0, 0, \"[256]\"], \"SI\": [\"386\", \"00|10(?:22|66|88|99)\", \"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\", [5, 6, 7, 8], [[\"(\\\\d{2})(\\\\d{3,6})\", \"$1 $2\", [\"8[09]|9\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"59|8\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[37][01]|4[0139]|51|6\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[1-57]\"], \"(0$1)\"]], \"0\", 0, 0, 0, 0, 0, 0, \"00\"], \"SJ\": [\"47\", \"00\", \"0\\\\d{4}|(?:[489]\\\\d|[57]9)\\\\d{6}\", [5, 8], 0, 0, 0, 0, 0, 0, \"79\"], \"SK\": [\"421\", \"00\", \"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\", [6, 7, 9], [[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\", \"$1 $2 $3\", [\"21\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"[3-5][1-8]1\", \"[3-5][1-8]1[67]\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1/$2 $3 $4\", [\"2\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[689]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1/$2 $3 $4\", [\"[3-5]\"], \"0$1\"]], \"0\"], \"SL\": [\"232\", \"00\", \"(?:[237-9]\\\\d|66)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[236-9]\"], \"(0$1)\"]], \"0\"], \"SM\": [\"378\", \"00\", \"(?:0549|[5-7]\\\\d)\\\\d{6}\", [8, 10], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[5-7]\"]], [\"(\\\\d{4})(\\\\d{6})\", \"$1 $2\", [\"0\"]]], 0, 0, \"([89]\\\\d{5})$\", \"0549$1\"], \"SN\": [\"221\", \"00\", \"(?:[378]\\\\d|93)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[379]\"]]]], \"SO\": [\"252\", \"00\", \"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\", [6, 7, 8, 9], [[\"(\\\\d{2})(\\\\d{4})\", \"$1 $2\", [\"8[125]\"]], [\"(\\\\d{6})\", \"$1\", [\"[134]\"]], [\"(\\\\d)(\\\\d{6})\", \"$1 $2\", [\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]], [\"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"24|[67]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[3478]|64|90\"]], [\"(\\\\d{2})(\\\\d{5,7})\", \"$1 $2\", [\"1|28|6(?:0[5-7]|[1-35-9])|9[2-9]\"]]], \"0\"], \"SR\": [\"597\", \"00\", \"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\", [6, 7], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1-$2-$3\", [\"56\"]], [\"(\\\\d{3})(\\\\d{3})\", \"$1-$2\", [\"[2-5]\"]], [\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[6-8]\"]]]], \"SS\": [\"211\", \"00\", \"[19]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[19]\"], \"0$1\"]], \"0\"], \"ST\": [\"239\", \"00\", \"(?:22|9\\\\d)\\\\d{5}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[29]\"]]]], \"SV\": [\"503\", \"00\", \"[267]\\\\d{7}|[89]00\\\\d{4}(?:\\\\d{4})?\", [7, 8, 11], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[89]\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[267]\"]], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"]]]], \"SX\": [\"1\", \"011\", \"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|(5\\\\d{6})$\", \"721$1\", 0, \"721\"], \"SY\": [\"963\", \"00\", \"[1-39]\\\\d{8}|[1-5]\\\\d{7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[1-5]\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"9\"], \"0$1\", 1]], \"0\"], \"SZ\": [\"268\", \"00\", \"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\", [8, 9], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[0237]\"]], [\"(\\\\d{5})(\\\\d{4})\", \"$1 $2\", [\"9\"]]]], \"TA\": [\"290\", \"00\", \"8\\\\d{3}\", [4], 0, 0, 0, 0, 0, 0, \"8\"], \"TC\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-479]\\\\d{6})$\", \"649$1\", 0, \"649\"], \"TD\": [\"235\", \"00|16\", \"(?:22|[69]\\\\d|77)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2679]\"]]], 0, 0, 0, 0, 0, 0, 0, \"00\"], \"TG\": [\"228\", \"00\", \"[279]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[279]\"]]]], \"TH\": [\"66\", \"00[1-9]\", \"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\", [8, 9, 10, 13], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[13-9]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"]]], \"0\"], \"TJ\": [\"992\", \"810\", \"(?:00|[1-57-9]\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{6})(\\\\d)(\\\\d{2})\", \"$1 $2 $3\", [\"331\", \"3317\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[34]7|91[78]\"]], [\"(\\\\d{4})(\\\\d)(\\\\d{4})\", \"$1 $2 $3\", [\"3[1-5]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[0-57-9]\"]]], 0, 0, 0, 0, 0, 0, 0, \"8~10\"], \"TK\": [\"690\", \"00\", \"[2-47]\\\\d{3,6}\", [4, 5, 6, 7]], \"TL\": [\"670\", \"00\", \"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\", [7, 8], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-489]|70\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"7\"]]]], \"TM\": [\"993\", \"810\", \"[1-6]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"12\"], \"(8 $1)\"], [\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"[1-5]\"], \"(8 $1)\"], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"6\"], \"8 $1\"]], \"8\", 0, 0, 0, 0, 0, 0, \"8~10\"], \"TN\": [\"216\", \"00\", \"[2-57-9]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-57-9]\"]]]], \"TO\": [\"676\", \"00\", \"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\", [5, 7], [[\"(\\\\d{2})(\\\\d{3})\", \"$1-$2\", [\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]], [\"(\\\\d{4})(\\\\d{3})\", \"$1 $2\", [\"0\"]], [\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[5-9]\"]]]], \"TR\": [\"90\", \"00\", \"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\", [7, 10, 12, 13], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"512|8[01589]|90\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"5(?:[0-59]|61)\", \"5(?:[0-59]|616)\", \"5(?:[0-59]|6161)\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[24][1-8]|3[1-9]\"], \"(0$1)\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\", \"$1 $2 $3\", [\"80\"], \"0$1\", 1]], \"0\"], \"TT\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-46-8]\\\\d{6})$\", \"868$1\", 0, \"868\"], \"TV\": [\"688\", \"00\", \"(?:2|7\\\\d\\\\d|90)\\\\d{4}\", [5, 6, 7], [[\"(\\\\d{2})(\\\\d{3})\", \"$1 $2\", [\"2\"]], [\"(\\\\d{2})(\\\\d{4})\", \"$1 $2\", [\"90\"]], [\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"7\"]]]], \"TW\": [\"886\", \"0(?:0[25-79]|19)\", \"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\", [7, 8, 9, 10, 11], [[\"(\\\\d{2})(\\\\d)(\\\\d{4})\", \"$1 $2 $3\", [\"202\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[258]0\"], \"0$1\"], [\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\", \"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[49]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\", \"$1 $2 $3\", [\"7\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, 0, 0, \"#\"], \"TZ\": [\"255\", \"00[056]\", \"(?:[26-8]\\\\d|41|90)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[24]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[67]\"], \"0$1\"]], \"0\"], \"UA\": [\"380\", \"00\", \"[89]\\\\d{9}|[3-9]\\\\d{8}\", [9, 10], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\", \"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])\", \"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[3-7]|89|9[1-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, 0, \"0~0\"], \"UG\": [\"256\", \"00[057]\", \"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"202\", \"2024\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"[27-9]|4(?:6[45]|[7-9])\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"[34]\"], \"0$1\"]], \"0\"], \"US\": [\"1\", \"011\", \"[2-9]\\\\d{9}|3\\\\d{6}\", [10], [[\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"310\"], 0, 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"($1) $2-$3\", [\"[2-9]\"], 0, 1, \"$1-$2-$3\"]], \"1\", 0, 0, 0, 0, 0, [[\"5(?:05(?:[2-57-9]\\\\d\\\\d|6(?:[0-35-9]\\\\d|44))|82(?:2(?:0[0-3]|[268]2)|3(?:0[02]|22|33)|4(?:00|4[24]|65|82)|5(?:00|29|58|83)|6(?:00|66|82)|7(?:58|77)|8(?:00|42|5[25]|88)|9(?:00|9[89])))\\\\d{4}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[0-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-289]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\"], [\"\"], [\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"], [\"900[2-9]\\\\d{6}\"], [\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\\\d{6}\"]]], \"UY\": [\"598\", \"0(?:0|1[3-9]\\\\d)\", \"4\\\\d{9}|[1249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\", [7, 8, 10], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"405|8|90\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"9\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[124]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"4\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, 0, \"00\", \" int. \"], \"UZ\": [\"998\", \"810\", \"(?:33|55|[679]\\\\d|88)\\\\d{7}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[35-9]\"], \"8 $1\"]], \"8\", 0, 0, 0, 0, 0, 0, \"8~10\"], \"VA\": [\"39\", \"00\", \"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\", [6, 7, 8, 9, 10, 11], 0, 0, 0, 0, 0, 0, \"06698\"], \"VC\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-7]\\\\d{6})$\", \"784$1\", 0, \"784\"], \"VE\": [\"58\", \"00\", \"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\", [10], [[\"(\\\\d{3})(\\\\d{7})\", \"$1-$2\", [\"[24-689]\"], \"0$1\"]], \"0\"], \"VG\": [\"1\", \"011\", \"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-578]\\\\d{6})$\", \"284$1\", 0, \"284\"], \"VI\": [\"1\", \"011\", \"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-9]\\\\d{6})$\", \"340$1\", 0, \"340\"], \"VN\": [\"84\", \"00\", \"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\", [7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"80\"], \"0$1\", 1], [\"(\\\\d{4})(\\\\d{4,6})\", \"$1 $2\", [\"1\"], 0, 1], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[69]\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[3578]\"], \"0$1\", 1], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"2[48]\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"2\"], \"0$1\", 1]], \"0\"], \"VU\": [\"678\", \"00\", \"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\", [5, 7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[57-9]\"]]]], \"WF\": [\"681\", \"00\", \"(?:40|72)\\\\d{4}|8\\\\d{5}(?:\\\\d{3})?\", [6, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[478]\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"]]]], \"WS\": [\"685\", \"0\", \"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\", [5, 6, 7, 10], [[\"(\\\\d{5})\", \"$1\", [\"[2-5]|6[1-9]\"]], [\"(\\\\d{3})(\\\\d{3,7})\", \"$1 $2\", [\"[68]\"]], [\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"7\"]]]], \"XK\": [\"383\", \"00\", \"[23]\\\\d{7,8}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\", [8, 9], [[\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[89]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-4]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[23]\"], \"0$1\"]], \"0\"], \"YE\": [\"967\", \"00\", \"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\", [7, 8, 9], [[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[1-6]|7[24-68]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"7\"], \"0$1\"]], \"0\"], \"YT\": [\"262\", \"00\", \"80\\\\d{7}|(?:26|63)9\\\\d{6}\", [9], 0, \"0\", 0, 0, 0, 0, \"269|63\"], \"ZA\": [\"27\", \"00\", \"[1-79]\\\\d{8}|8\\\\d{4,9}\", [5, 6, 7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{3,4})\", \"$1 $2\", [\"8[1-4]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\", \"$1 $2 $3\", [\"8[1-4]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"860\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[1-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"], \"0$1\"]], \"0\"], \"ZM\": [\"260\", \"00\", \"800\\\\d{6}|(?:21|63|[79]\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[28]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"[79]\"], \"0$1\"]], \"0\"], \"ZW\": [\"263\", \"00\", \"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\", [5, 6, 7, 8, 9, 10], [[\"(\\\\d{3})(\\\\d{3,5})\", \"$1 $2\", [\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\", \"$1 $2 $3\", [\"[49]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"80\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\", \"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\", \"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{6})\", \"$1 $2\", [\"8\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3,5})\", \"$1 $2\", [\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"29[013-9]|39|54\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3,5})\", \"$1 $2\", [\"(?:25|54)8\", \"258|5483\"], \"0$1\"]], \"0\"] }, \"nonGeographic\": { \"800\": [\"800\", 0, \"(?:00|[1-9]\\\\d)\\\\d{6}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"\\\\d\"]]], 0, 0, 0, 0, 0, 0, [0, 0, [\"(?:00|[1-9]\\\\d)\\\\d{6}\"]]], \"808\": [\"808\", 0, \"[1-9]\\\\d{7}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[1-9]\"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, 0, [\"[1-9]\\\\d{7}\"]]], \"870\": [\"870\", 0, \"7\\\\d{11}|[35-7]\\\\d{8}\", [9, 12], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[35-7]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\"]]], \"878\": [\"878\", 0, \"10\\\\d{10}\", [12], [[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\", \"$1 $2 $3\", [\"1\"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, [\"10\\\\d{10}\"]]], \"881\": [\"881\", 0, \"[0-36-9]\\\\d{8}\", [9], [[\"(\\\\d)(\\\\d{3})(\\\\d{5})\", \"$1 $2 $3\", [\"[0-36-9]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"[0-36-9]\\\\d{8}\"]]], \"882\": [\"882\", 0, \"[13]\\\\d{6}(?:\\\\d{2,5})?|285\\\\d{9}|(?:[19]\\\\d|49)\\\\d{6}\", [7, 8, 9, 10, 11, 12], [[\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"16|342\"]], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"4\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[19]\"]], [\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"3[23]\"]], [\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"34[57]\"]], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"34\"]], [\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\", \"$1 $2 $3\", [\"[1-3]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"342\\\\d{4}|(?:337|49)\\\\d{6}|3(?:2|47|7\\\\d{3})\\\\d{7}\", [7, 8, 9, 10, 12]], 0, 0, 0, 0, 0, 0, [\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:(?:285\\\\d\\\\d|3(?:45|[69]\\\\d{3}))\\\\d|9[89])\\\\d{6}\"]]], \"883\": [\"883\", 0, \"(?:210|370\\\\d\\\\d)\\\\d{7}|51\\\\d{7}(?:\\\\d{3})?\", [9, 10, 12], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"510\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"]], [\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"51[13]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"[35]\"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, [\"(?:210|(?:370[1-9]|51[013]0)\\\\d)\\\\d{7}|5100\\\\d{5}\"]]], \"888\": [\"888\", 0, \"\\\\d{11}\", [11], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\", \"$1 $2 $3\"]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, [\"\\\\d{11}\"]]], \"979\": [\"979\", 0, \"[1359]\\\\d{8}\", [9], [[\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[1359]\"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, [\"[1359]\\\\d{8}\"]]] } };\nfunction withMetadataArgument(func, _arguments) {\n var args = Array.prototype.slice.call(_arguments);\n args.push(metadata);\n return func.apply(this, args);\n}\nfunction _typeof$2(obj) {\n \"@babel/helpers - typeof\";\n return _typeof$2 = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(obj2) {\n return typeof obj2;\n } : function(obj2) {\n return obj2 && typeof Symbol == \"function\" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? \"symbol\" : typeof obj2;\n }, _typeof$2(obj);\n}\nfunction _defineProperties$2(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass$2(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties$2(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties$2(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", { writable: false });\n return Constructor;\n}\nfunction _classCallCheck$2(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });\n Object.defineProperty(subClass, \"prototype\", { writable: false });\n if (superClass)\n _setPrototypeOf(subClass, superClass);\n}\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived), result2;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result2 = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result2 = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result2);\n };\n}\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof$2(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return _assertThisInitialized(self);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? /* @__PURE__ */ new Map() : void 0;\n _wrapNativeSuper = function _wrapNativeSuper2(Class2) {\n if (Class2 === null || !_isNativeFunction(Class2))\n return Class2;\n if (typeof Class2 !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class2))\n return _cache.get(Class2);\n _cache.set(Class2, Wrapper);\n }\n function Wrapper() {\n return _construct(Class2, arguments, _getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class2.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } });\n return _setPrototypeOf(Wrapper, Class2);\n };\n return _wrapNativeSuper(Class);\n}\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct2(Parent2, args2, Class2) {\n var a = [null];\n a.push.apply(a, args2);\n var Constructor = Function.bind.apply(Parent2, a);\n var instance = new Constructor();\n if (Class2)\n _setPrototypeOf(instance, Class2.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct)\n return false;\n if (Reflect.construct.sham)\n return false;\n if (typeof Proxy === \"function\")\n return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n }));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf2(o2, p2) {\n o2.__proto__ = p2;\n return o2;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf2(o2) {\n return o2.__proto__ || Object.getPrototypeOf(o2);\n };\n return _getPrototypeOf(o);\n}\nvar ParseError = /* @__PURE__ */ function(_Error) {\n _inherits(ParseError2, _Error);\n var _super = _createSuper(ParseError2);\n function ParseError2(code) {\n var _this;\n _classCallCheck$2(this, ParseError2);\n _this = _super.call(this, code);\n Object.setPrototypeOf(_assertThisInitialized(_this), ParseError2.prototype);\n _this.name = _this.constructor.name;\n return _this;\n }\n return _createClass$2(ParseError2);\n}(/* @__PURE__ */ _wrapNativeSuper(Error));\nvar MIN_LENGTH_FOR_NSN = 2;\nvar MAX_LENGTH_FOR_NSN = 17;\nvar MAX_LENGTH_COUNTRY_CODE = 3;\nvar VALID_DIGITS = \"0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9\";\nvar DASHES = \"-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D\";\nvar SLASHES = \"\\uFF0F/\";\nvar DOTS = \"\\uFF0E.\";\nvar WHITESPACE = \" \\xA0\\xAD\\u200B\\u2060\\u3000\";\nvar BRACKETS = \"()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]\";\nvar TILDES = \"~\\u2053\\u223C\\uFF5E\";\nvar VALID_PUNCTUATION = \"\".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);\nvar PLUS_CHARS = \"+\\uFF0B\";\nfunction compare(a, b) {\n a = a.split(\"-\");\n b = b.split(\"-\");\n var pa = a[0].split(\".\");\n var pb = b[0].split(\".\");\n for (var i = 0; i < 3; i++) {\n var na = Number(pa[i]);\n var nb = Number(pb[i]);\n if (na > nb)\n return 1;\n if (nb > na)\n return -1;\n if (!isNaN(na) && isNaN(nb))\n return 1;\n if (isNaN(na) && !isNaN(nb))\n return -1;\n }\n if (a[1] && b[1]) {\n return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n }\n return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}\nfunction _typeof$1(obj) {\n \"@babel/helpers - typeof\";\n return _typeof$1 = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(obj2) {\n return typeof obj2;\n } : function(obj2) {\n return obj2 && typeof Symbol == \"function\" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? \"symbol\" : typeof obj2;\n }, _typeof$1(obj);\n}\nfunction _classCallCheck$1(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties$1(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass$1(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties$1(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties$1(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", { writable: false });\n return Constructor;\n}\nvar V3 = \"1.2.0\";\nvar V4 = \"1.7.35\";\nvar DEFAULT_EXT_PREFIX = \" ext. \";\nvar CALLING_CODE_REG_EXP = /^\\d+$/;\nvar Metadata = /* @__PURE__ */ function() {\n function Metadata2(metadata2) {\n _classCallCheck$1(this, Metadata2);\n validateMetadata(metadata2);\n this.metadata = metadata2;\n setVersion.call(this, metadata2);\n }\n _createClass$1(Metadata2, [{\n key: \"getCountries\",\n value: function getCountries() {\n return Object.keys(this.metadata.countries).filter(function(_) {\n return _ !== \"001\";\n });\n }\n }, {\n key: \"getCountryMetadata\",\n value: function getCountryMetadata(countryCode) {\n return this.metadata.countries[countryCode];\n }\n }, {\n key: \"nonGeographic\",\n value: function nonGeographic() {\n if (this.v1 || this.v2 || this.v3)\n return;\n return this.metadata.nonGeographic || this.metadata.nonGeographical;\n }\n }, {\n key: \"hasCountry\",\n value: function hasCountry(country) {\n return this.getCountryMetadata(country) !== void 0;\n }\n }, {\n key: \"hasCallingCode\",\n value: function hasCallingCode(callingCode) {\n if (this.getCountryCodesForCallingCode(callingCode)) {\n return true;\n }\n if (this.nonGeographic()) {\n if (this.nonGeographic()[callingCode]) {\n return true;\n }\n } else {\n var countryCodes = this.countryCallingCodes()[callingCode];\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === \"001\") {\n return true;\n }\n }\n }\n }, {\n key: \"isNonGeographicCallingCode\",\n value: function isNonGeographicCallingCode(callingCode) {\n if (this.nonGeographic()) {\n return this.nonGeographic()[callingCode] ? true : false;\n } else {\n return this.getCountryCodesForCallingCode(callingCode) ? false : true;\n }\n }\n }, {\n key: \"country\",\n value: function country(countryCode) {\n return this.selectNumberingPlan(countryCode);\n }\n }, {\n key: \"selectNumberingPlan\",\n value: function selectNumberingPlan(countryCode, callingCode) {\n if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\n callingCode = countryCode;\n countryCode = null;\n }\n if (countryCode && countryCode !== \"001\") {\n if (!this.hasCountry(countryCode)) {\n throw new Error(\"Unknown country: \".concat(countryCode));\n }\n this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);\n } else if (callingCode) {\n if (!this.hasCallingCode(callingCode)) {\n throw new Error(\"Unknown calling code: \".concat(callingCode));\n }\n this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n } else {\n this.numberingPlan = void 0;\n }\n return this;\n }\n }, {\n key: \"getCountryCodesForCallingCode\",\n value: function getCountryCodesForCallingCode(callingCode) {\n var countryCodes = this.countryCallingCodes()[callingCode];\n if (countryCodes) {\n if (countryCodes.length === 1 && countryCodes[0].length === 3) {\n return;\n }\n return countryCodes;\n }\n }\n }, {\n key: \"getCountryCodeForCallingCode\",\n value: function getCountryCodeForCallingCode(callingCode) {\n var countryCodes = this.getCountryCodesForCallingCode(callingCode);\n if (countryCodes) {\n return countryCodes[0];\n }\n }\n }, {\n key: \"getNumberingPlanMetadata\",\n value: function getNumberingPlanMetadata(callingCode) {\n var countryCode = this.getCountryCodeForCallingCode(callingCode);\n if (countryCode) {\n return this.getCountryMetadata(countryCode);\n }\n if (this.nonGeographic()) {\n var metadata2 = this.nonGeographic()[callingCode];\n if (metadata2) {\n return metadata2;\n }\n } else {\n var countryCodes = this.countryCallingCodes()[callingCode];\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === \"001\") {\n return this.metadata.countries[\"001\"];\n }\n }\n }\n }, {\n key: \"countryCallingCode\",\n value: function countryCallingCode() {\n return this.numberingPlan.callingCode();\n }\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n return this.numberingPlan.IDDPrefix();\n }\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n return this.numberingPlan.defaultIDDPrefix();\n }\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n return this.numberingPlan.nationalNumberPattern();\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n return this.numberingPlan.possibleLengths();\n }\n }, {\n key: \"formats\",\n value: function formats() {\n return this.numberingPlan.formats();\n }\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n return this.numberingPlan.nationalPrefixForParsing();\n }\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.numberingPlan.nationalPrefixTransformRule();\n }\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.numberingPlan.leadingDigits();\n }\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n return this.numberingPlan.hasTypes();\n }\n }, {\n key: \"type\",\n value: function type(_type) {\n return this.numberingPlan.type(_type);\n }\n }, {\n key: \"ext\",\n value: function ext() {\n return this.numberingPlan.ext();\n }\n }, {\n key: \"countryCallingCodes\",\n value: function countryCallingCodes() {\n if (this.v1)\n return this.metadata.country_phone_code_to_countries;\n return this.metadata.country_calling_codes;\n }\n }, {\n key: \"chooseCountryByCountryCallingCode\",\n value: function chooseCountryByCountryCallingCode(callingCode) {\n return this.selectNumberingPlan(callingCode);\n }\n }, {\n key: \"hasSelectedNumberingPlan\",\n value: function hasSelectedNumberingPlan() {\n return this.numberingPlan !== void 0;\n }\n }]);\n return Metadata2;\n}();\nvar NumberingPlan = /* @__PURE__ */ function() {\n function NumberingPlan2(metadata2, globalMetadataObject) {\n _classCallCheck$1(this, NumberingPlan2);\n this.globalMetadataObject = globalMetadataObject;\n this.metadata = metadata2;\n setVersion.call(this, globalMetadataObject.metadata);\n }\n _createClass$1(NumberingPlan2, [{\n key: \"callingCode\",\n value: function callingCode() {\n return this.metadata[0];\n }\n }, {\n key: \"getDefaultCountryMetadataForRegion\",\n value: function getDefaultCountryMetadataForRegion() {\n return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n }\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n if (this.v1 || this.v2)\n return;\n return this.metadata[1];\n }\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n if (this.v1 || this.v2)\n return;\n return this.metadata[12];\n }\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n if (this.v1 || this.v2)\n return this.metadata[1];\n return this.metadata[2];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.v1)\n return;\n return this.metadata[this.v2 ? 2 : 3];\n }\n }, {\n key: \"_getFormats\",\n value: function _getFormats(metadata2) {\n return metadata2[this.v1 ? 2 : this.v2 ? 3 : 4];\n }\n }, {\n key: \"formats\",\n value: function formats() {\n var _this = this;\n var formats2 = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n return formats2.map(function(_) {\n return new Format(_, _this);\n });\n }\n }, {\n key: \"nationalPrefix\",\n value: function nationalPrefix() {\n return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n }\n }, {\n key: \"_getNationalPrefixFormattingRule\",\n value: function _getNationalPrefixFormattingRule(metadata2) {\n return metadata2[this.v1 ? 4 : this.v2 ? 5 : 6];\n }\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"_nationalPrefixForParsing\",\n value: function _nationalPrefixForParsing() {\n return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];\n }\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n return this._nationalPrefixForParsing() || this.nationalPrefix();\n }\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n }\n }, {\n key: \"_getNationalPrefixIsOptionalWhenFormatting\",\n value: function _getNationalPrefixIsOptionalWhenFormatting() {\n return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n }\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n }\n }, {\n key: \"types\",\n value: function types() {\n return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n }\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n if (this.types() && this.types().length === 0) {\n return false;\n }\n return !!this.types();\n }\n }, {\n key: \"type\",\n value: function type(_type2) {\n if (this.hasTypes() && getType(this.types(), _type2)) {\n return new Type(getType(this.types(), _type2), this);\n }\n }\n }, {\n key: \"ext\",\n value: function ext() {\n if (this.v1 || this.v2)\n return DEFAULT_EXT_PREFIX;\n return this.metadata[13] || DEFAULT_EXT_PREFIX;\n }\n }]);\n return NumberingPlan2;\n}();\nvar Format = /* @__PURE__ */ function() {\n function Format2(format, metadata2) {\n _classCallCheck$1(this, Format2);\n this._format = format;\n this.metadata = metadata2;\n }\n _createClass$1(Format2, [{\n key: \"pattern\",\n value: function pattern() {\n return this._format[0];\n }\n }, {\n key: \"format\",\n value: function format() {\n return this._format[1];\n }\n }, {\n key: \"leadingDigitsPatterns\",\n value: function leadingDigitsPatterns() {\n return this._format[2] || [];\n }\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._format[3] || this.metadata.nationalPrefixFormattingRule();\n }\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n }\n }, {\n key: \"nationalPrefixIsMandatoryWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n }\n }, {\n key: \"usesNationalPrefix\",\n value: function usesNationalPrefix() {\n return this.nationalPrefixFormattingRule() && !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()) ? true : false;\n }\n }, {\n key: \"internationalFormat\",\n value: function internationalFormat() {\n return this._format[5] || this.format();\n }\n }]);\n return Format2;\n}();\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\nvar Type = /* @__PURE__ */ function() {\n function Type2(type, metadata2) {\n _classCallCheck$1(this, Type2);\n this.type = type;\n this.metadata = metadata2;\n }\n _createClass$1(Type2, [{\n key: \"pattern\",\n value: function pattern() {\n if (this.metadata.v1)\n return this.type;\n return this.type[0];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.metadata.v1)\n return;\n return this.type[1] || this.metadata.possibleLengths();\n }\n }]);\n return Type2;\n}();\nfunction getType(types, type) {\n switch (type) {\n case \"FIXED_LINE\":\n return types[0];\n case \"MOBILE\":\n return types[1];\n case \"TOLL_FREE\":\n return types[2];\n case \"PREMIUM_RATE\":\n return types[3];\n case \"PERSONAL_NUMBER\":\n return types[4];\n case \"VOICEMAIL\":\n return types[5];\n case \"UAN\":\n return types[6];\n case \"PAGER\":\n return types[7];\n case \"VOIP\":\n return types[8];\n case \"SHARED_COST\":\n return types[9];\n }\n}\nfunction validateMetadata(metadata2) {\n if (!metadata2) {\n throw new Error(\"[libphonenumber-js] `metadata` argument not passed. Check your arguments.\");\n }\n if (!is_object(metadata2) || !is_object(metadata2.countries)) {\n throw new Error(\"[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got \".concat(is_object(metadata2) ? \"an object of shape: { \" + Object.keys(metadata2).join(\", \") + \" }\" : \"a \" + type_of(metadata2) + \": \" + metadata2, \".\"));\n }\n}\nvar is_object = function is_object2(_) {\n return _typeof$1(_) === \"object\";\n};\nvar type_of = function type_of2(_) {\n return _typeof$1(_);\n};\nfunction getCountryCallingCode(country, metadata2) {\n metadata2 = new Metadata(metadata2);\n if (metadata2.hasCountry(country)) {\n return metadata2.country(country).countryCallingCode();\n }\n throw new Error(\"Unknown country: \".concat(country));\n}\nfunction isSupportedCountry(country, metadata2) {\n return metadata2.countries[country] !== void 0;\n}\nfunction setVersion(metadata2) {\n var version = metadata2.version;\n if (typeof version === \"number\") {\n this.v1 = version === 1;\n this.v2 = version === 2;\n this.v3 = version === 3;\n this.v4 = version === 4;\n } else {\n if (!version) {\n this.v1 = true;\n } else if (compare(version, V3) === -1) {\n this.v2 = true;\n } else if (compare(version, V4) === -1) {\n this.v3 = true;\n } else {\n this.v4 = true;\n }\n }\n}\nvar RFC3966_EXTN_PREFIX = \";ext=\";\nvar getExtensionDigitsPattern = function getExtensionDigitsPattern2(maxLength) {\n return \"([\".concat(VALID_DIGITS, \"]{1,\").concat(maxLength, \"})\");\n};\nfunction createExtensionPattern(purpose) {\n var extLimitAfterExplicitLabel = \"20\";\n var extLimitAfterLikelyLabel = \"15\";\n var extLimitAfterAmbiguousChar = \"9\";\n var extLimitWhenNotSure = \"6\";\n var possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\xA0\\\\t,]*\";\n var possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\xA0\\\\t,-]*\";\n var optionalExtnSuffix = \"#?\";\n var explicitExtLabels = \"(?:e?xt(?:ensi(?:o\\u0301?|\\xF3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\";\n var ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\";\n var ambiguousSeparator = \"[- ]+\";\n var possibleSeparatorsNumberExtLabelNoComma = \"[ \\xA0\\\\t]*\";\n var autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\n var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\n var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix;\n var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\n var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix;\n var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + \"(?:,)+\" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n return rfcExtn + \"|\" + explicitExtn + \"|\" + ambiguousExtn + \"|\" + americanStyleExtnWithSuffix + \"|\" + autoDiallingExtn + \"|\" + onlyCommasExtn;\n}\nvar MIN_LENGTH_PHONE_NUMBER_PATTERN = \"[\" + VALID_DIGITS + \"]{\" + MIN_LENGTH_FOR_NSN + \"}\";\nvar VALID_PHONE_NUMBER = \"[\" + PLUS_CHARS + \"]{0,1}(?:[\" + VALID_PUNCTUATION + \"]*[\" + VALID_DIGITS + \"]){3,}[\" + VALID_PUNCTUATION + VALID_DIGITS + \"]*\";\nvar VALID_PHONE_NUMBER_START_REG_EXP = new RegExp(\"^[\" + PLUS_CHARS + \"]{0,1}(?:[\" + VALID_PUNCTUATION + \"]*[\" + VALID_DIGITS + \"]){1,2}$\", \"i\");\nvar VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER + \"(?:\" + createExtensionPattern() + \")?\";\nvar VALID_PHONE_NUMBER_PATTERN = new RegExp(\"^\" + MIN_LENGTH_PHONE_NUMBER_PATTERN + \"$|^\" + VALID_PHONE_NUMBER_WITH_EXTENSION + \"$\", \"i\");\nfunction isViablePhoneNumber(number) {\n return number.length >= MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number);\n}\nfunction isViablePhoneNumberStart(number) {\n return VALID_PHONE_NUMBER_START_REG_EXP.test(number);\n}\nvar EXTN_PATTERN = new RegExp(\"(?:\" + createExtensionPattern() + \")$\", \"i\");\nfunction extractExtension(number) {\n var start = number.search(EXTN_PATTERN);\n if (start < 0) {\n return {};\n }\n var numberWithoutExtension = number.slice(0, start);\n var matches = number.match(EXTN_PATTERN);\n var i = 1;\n while (i < matches.length) {\n if (matches[i]) {\n return {\n number: numberWithoutExtension,\n ext: matches[i]\n };\n }\n i++;\n }\n}\nvar DIGITS = {\n \"0\": \"0\",\n \"1\": \"1\",\n \"2\": \"2\",\n \"3\": \"3\",\n \"4\": \"4\",\n \"5\": \"5\",\n \"6\": \"6\",\n \"7\": \"7\",\n \"8\": \"8\",\n \"9\": \"9\",\n \"\\uFF10\": \"0\",\n \"\\uFF11\": \"1\",\n \"\\uFF12\": \"2\",\n \"\\uFF13\": \"3\",\n \"\\uFF14\": \"4\",\n \"\\uFF15\": \"5\",\n \"\\uFF16\": \"6\",\n \"\\uFF17\": \"7\",\n \"\\uFF18\": \"8\",\n \"\\uFF19\": \"9\",\n \"\\u0660\": \"0\",\n \"\\u0661\": \"1\",\n \"\\u0662\": \"2\",\n \"\\u0663\": \"3\",\n \"\\u0664\": \"4\",\n \"\\u0665\": \"5\",\n \"\\u0666\": \"6\",\n \"\\u0667\": \"7\",\n \"\\u0668\": \"8\",\n \"\\u0669\": \"9\",\n \"\\u06F0\": \"0\",\n \"\\u06F1\": \"1\",\n \"\\u06F2\": \"2\",\n \"\\u06F3\": \"3\",\n \"\\u06F4\": \"4\",\n \"\\u06F5\": \"5\",\n \"\\u06F6\": \"6\",\n \"\\u06F7\": \"7\",\n \"\\u06F8\": \"8\",\n \"\\u06F9\": \"9\"\n};\nfunction parseDigit(character) {\n return DIGITS[character];\n}\nfunction _createForOfIteratorHelperLoose$5(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it)\n return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray$6(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it)\n o = it;\n var i = 0;\n return function() {\n if (i >= o.length)\n return { done: true };\n return { done: false, value: o[i++] };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray$6(o, minLen) {\n if (!o)\n return;\n if (typeof o === \"string\")\n return _arrayLikeToArray$6(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor)\n n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\")\n return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n return _arrayLikeToArray$6(o, minLen);\n}\nfunction _arrayLikeToArray$6(arr, len) {\n if (len == null || len > arr.length)\n len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction parseIncompletePhoneNumber(string) {\n var result2 = \"\";\n for (var _iterator = _createForOfIteratorHelperLoose$5(string.split(\"\")), _step; !(_step = _iterator()).done; ) {\n var character = _step.value;\n result2 += parsePhoneNumberCharacter(character, result2) || \"\";\n }\n return result2;\n}\nfunction parsePhoneNumberCharacter(character, prevParsedCharacters) {\n if (character === \"+\") {\n if (prevParsedCharacters) {\n return;\n }\n return \"+\";\n }\n return parseDigit(character);\n}\nfunction _createForOfIteratorHelperLoose$4(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it)\n return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray$5(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it)\n o = it;\n var i = 0;\n return function() {\n if (i >= o.length)\n return { done: true };\n return { done: false, value: o[i++] };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray$5(o, minLen) {\n if (!o)\n return;\n if (typeof o === \"string\")\n return _arrayLikeToArray$5(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor)\n n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\")\n return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n return _arrayLikeToArray$5(o, minLen);\n}\nfunction _arrayLikeToArray$5(arr, len) {\n if (len == null || len > arr.length)\n len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction mergeArrays(a, b) {\n var merged = a.slice();\n for (var _iterator = _createForOfIteratorHelperLoose$4(b), _step; !(_step = _iterator()).done; ) {\n var element = _step.value;\n if (a.indexOf(element) < 0) {\n merged.push(element);\n }\n }\n return merged.sort(function(a2, b2) {\n return a2 - b2;\n });\n}\nfunction checkNumberLength(nationalNumber, metadata2) {\n return checkNumberLengthForType(nationalNumber, void 0, metadata2);\n}\nfunction checkNumberLengthForType(nationalNumber, type, metadata2) {\n var type_info = metadata2.type(type);\n var possible_lengths = type_info && type_info.possibleLengths() || metadata2.possibleLengths();\n if (!possible_lengths) {\n return \"IS_POSSIBLE\";\n }\n if (type === \"FIXED_LINE_OR_MOBILE\") {\n if (!metadata2.type(\"FIXED_LINE\")) {\n return checkNumberLengthForType(nationalNumber, \"MOBILE\", metadata2);\n }\n var mobile_type = metadata2.type(\"MOBILE\");\n if (mobile_type) {\n possible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths());\n }\n } else if (type && !type_info) {\n return \"INVALID_LENGTH\";\n }\n var actual_length = nationalNumber.length;\n var minimum_length = possible_lengths[0];\n if (minimum_length === actual_length) {\n return \"IS_POSSIBLE\";\n }\n if (minimum_length > actual_length) {\n return \"TOO_SHORT\";\n }\n if (possible_lengths[possible_lengths.length - 1] < actual_length) {\n return \"TOO_LONG\";\n }\n return possible_lengths.indexOf(actual_length, 1) >= 0 ? \"IS_POSSIBLE\" : \"INVALID_LENGTH\";\n}\nfunction isPossiblePhoneNumber(input, options, metadata2) {\n if (options === void 0) {\n options = {};\n }\n metadata2 = new Metadata(metadata2);\n if (options.v2) {\n if (!input.countryCallingCode) {\n throw new Error(\"Invalid phone number object passed\");\n }\n metadata2.selectNumberingPlan(input.countryCallingCode);\n } else {\n if (!input.phone) {\n return false;\n }\n if (input.country) {\n if (!metadata2.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n metadata2.country(input.country);\n } else {\n if (!input.countryCallingCode) {\n throw new Error(\"Invalid phone number object passed\");\n }\n metadata2.selectNumberingPlan(input.countryCallingCode);\n }\n }\n if (metadata2.possibleLengths()) {\n return isPossibleNumber(input.phone || input.nationalNumber, metadata2);\n } else {\n if (input.countryCallingCode && metadata2.isNonGeographicCallingCode(input.countryCallingCode)) {\n return true;\n } else {\n throw new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\n }\n }\n}\nfunction isPossibleNumber(nationalNumber, metadata2) {\n switch (checkNumberLength(nationalNumber, metadata2)) {\n case \"IS_POSSIBLE\":\n return true;\n default:\n return false;\n }\n}\nfunction _slicedToArray$1(arr, i) {\n return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _unsupportedIterableToArray$4(arr, i) || _nonIterableRest$1();\n}\nfunction _nonIterableRest$1() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _iterableToArrayLimit$1(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null)\n return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i)\n break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null)\n _i[\"return\"]();\n } finally {\n if (_d)\n throw _e;\n }\n }\n return _arr;\n}\nfunction _arrayWithHoles$1(arr) {\n if (Array.isArray(arr))\n return arr;\n}\nfunction _createForOfIteratorHelperLoose$3(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it)\n return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray$4(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it)\n o = it;\n var i = 0;\n return function() {\n if (i >= o.length)\n return { done: true };\n return { done: false, value: o[i++] };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray$4(o, minLen) {\n if (!o)\n return;\n if (typeof o === \"string\")\n return _arrayLikeToArray$4(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor)\n n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\")\n return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n return _arrayLikeToArray$4(o, minLen);\n}\nfunction _arrayLikeToArray$4(arr, len) {\n if (len == null || len > arr.length)\n len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction parseRFC3966(text) {\n var number;\n var ext;\n text = text.replace(/^tel:/, \"tel=\");\n for (var _iterator = _createForOfIteratorHelperLoose$3(text.split(\";\")), _step; !(_step = _iterator()).done; ) {\n var part = _step.value;\n var _part$split = part.split(\"=\"), _part$split2 = _slicedToArray$1(_part$split, 2), name = _part$split2[0], value = _part$split2[1];\n switch (name) {\n case \"tel\":\n number = value;\n break;\n case \"ext\":\n ext = value;\n break;\n case \"phone-context\":\n if (value[0] === \"+\") {\n number = value + number;\n }\n break;\n }\n }\n if (!isViablePhoneNumber(number)) {\n return {};\n }\n var result2 = {\n number\n };\n if (ext) {\n result2.ext = ext;\n }\n return result2;\n}\nfunction formatRFC3966(_ref) {\n var number = _ref.number, ext = _ref.ext;\n if (!number) {\n return \"\";\n }\n if (number[0] !== \"+\") {\n throw new Error('\"formatRFC3966()\" expects \"number\" to be in E.164 format.');\n }\n return \"tel:\".concat(number).concat(ext ? \";ext=\" + ext : \"\");\n}\nfunction matchesEntirely(text, regular_expression) {\n text = text || \"\";\n return new RegExp(\"^(?:\" + regular_expression + \")$\").test(text);\n}\nfunction _createForOfIteratorHelperLoose$2(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it)\n return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray$3(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it)\n o = it;\n var i = 0;\n return function() {\n if (i >= o.length)\n return { done: true };\n return { done: false, value: o[i++] };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray$3(o, minLen) {\n if (!o)\n return;\n if (typeof o === \"string\")\n return _arrayLikeToArray$3(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor)\n n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\")\n return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n return _arrayLikeToArray$3(o, minLen);\n}\nfunction _arrayLikeToArray$3(arr, len) {\n if (len == null || len > arr.length)\n len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nvar NON_FIXED_LINE_PHONE_TYPES = [\"MOBILE\", \"PREMIUM_RATE\", \"TOLL_FREE\", \"SHARED_COST\", \"VOIP\", \"PERSONAL_NUMBER\", \"PAGER\", \"UAN\", \"VOICEMAIL\"];\nfunction getNumberType(input, options, metadata2) {\n options = options || {};\n if (!input.country) {\n return;\n }\n metadata2 = new Metadata(metadata2);\n metadata2.selectNumberingPlan(input.country, input.countryCallingCode);\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n if (!matchesEntirely(nationalNumber, metadata2.nationalNumberPattern())) {\n return;\n }\n if (isNumberTypeEqualTo(nationalNumber, \"FIXED_LINE\", metadata2)) {\n if (metadata2.type(\"MOBILE\") && metadata2.type(\"MOBILE\").pattern() === \"\") {\n return \"FIXED_LINE_OR_MOBILE\";\n }\n if (!metadata2.type(\"MOBILE\")) {\n return \"FIXED_LINE_OR_MOBILE\";\n }\n if (isNumberTypeEqualTo(nationalNumber, \"MOBILE\", metadata2)) {\n return \"FIXED_LINE_OR_MOBILE\";\n }\n return \"FIXED_LINE\";\n }\n for (var _iterator = _createForOfIteratorHelperLoose$2(NON_FIXED_LINE_PHONE_TYPES), _step; !(_step = _iterator()).done; ) {\n var type = _step.value;\n if (isNumberTypeEqualTo(nationalNumber, type, metadata2)) {\n return type;\n }\n }\n}\nfunction isNumberTypeEqualTo(nationalNumber, type, metadata2) {\n type = metadata2.type(type);\n if (!type || !type.pattern()) {\n return false;\n }\n if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n return false;\n }\n return matchesEntirely(nationalNumber, type.pattern());\n}\nfunction isValidNumber(input, options, metadata2) {\n options = options || {};\n metadata2 = new Metadata(metadata2);\n if (!input.country) {\n return false;\n }\n metadata2.selectNumberingPlan(input.country, input.countryCallingCode);\n if (metadata2.hasTypes()) {\n return getNumberType(input, options, metadata2.metadata) !== void 0;\n }\n var national_number = options.v2 ? input.nationalNumber : input.phone;\n return matchesEntirely(national_number, metadata2.nationalNumberPattern());\n}\nfunction applyInternationalSeparatorStyle(formattedNumber) {\n return formattedNumber.replace(new RegExp(\"[\".concat(VALID_PUNCTUATION, \"]+\"), \"g\"), \" \").trim();\n}\nvar FIRST_GROUP_PATTERN = /(\\$\\d)/;\nfunction formatNationalNumberUsingFormat(number, format, _ref) {\n var useInternationalFormat = _ref.useInternationalFormat, withNationalPrefix = _ref.withNationalPrefix;\n _ref.carrierCode;\n _ref.metadata;\n var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() : withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n if (useInternationalFormat) {\n return applyInternationalSeparatorStyle(formattedNumber);\n }\n return formattedNumber;\n}\nvar SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/;\nfunction getIddPrefix(country, callingCode, metadata2) {\n var countryMetadata = new Metadata(metadata2);\n countryMetadata.selectNumberingPlan(country, callingCode);\n if (countryMetadata.defaultIDDPrefix()) {\n return countryMetadata.defaultIDDPrefix();\n }\n if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n return countryMetadata.IDDPrefix();\n }\n}\nfunction _createForOfIteratorHelperLoose$1(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it)\n return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray$2(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it)\n o = it;\n var i = 0;\n return function() {\n if (i >= o.length)\n return { done: true };\n return { done: false, value: o[i++] };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray$2(o, minLen) {\n if (!o)\n return;\n if (typeof o === \"string\")\n return _arrayLikeToArray$2(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor)\n n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\")\n return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n return _arrayLikeToArray$2(o, minLen);\n}\nfunction _arrayLikeToArray$2(arr, len) {\n if (len == null || len > arr.length)\n len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction ownKeys$4(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread$4(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n i % 2 ? ownKeys$4(Object(source), true).forEach(function(key) {\n _defineProperty$4(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty$4(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nvar DEFAULT_OPTIONS = {\n formatExtension: function formatExtension(formattedNumber, extension, metadata2) {\n return \"\".concat(formattedNumber).concat(metadata2.ext()).concat(extension);\n }\n};\nfunction formatNumber(input, format, options, metadata2) {\n if (options) {\n options = _objectSpread$4(_objectSpread$4({}, DEFAULT_OPTIONS), options);\n } else {\n options = DEFAULT_OPTIONS;\n }\n metadata2 = new Metadata(metadata2);\n if (input.country && input.country !== \"001\") {\n if (!metadata2.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n metadata2.country(input.country);\n } else if (input.countryCallingCode) {\n metadata2.selectNumberingPlan(input.countryCallingCode);\n } else\n return input.phone || \"\";\n var countryCallingCode = metadata2.countryCallingCode();\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n var number;\n switch (format) {\n case \"NATIONAL\":\n if (!nationalNumber) {\n return \"\";\n }\n number = formatNationalNumber(nationalNumber, input.carrierCode, \"NATIONAL\", metadata2, options);\n return addExtension(number, input.ext, metadata2, options.formatExtension);\n case \"INTERNATIONAL\":\n if (!nationalNumber) {\n return \"+\".concat(countryCallingCode);\n }\n number = formatNationalNumber(nationalNumber, null, \"INTERNATIONAL\", metadata2, options);\n number = \"+\".concat(countryCallingCode, \" \").concat(number);\n return addExtension(number, input.ext, metadata2, options.formatExtension);\n case \"E.164\":\n return \"+\".concat(countryCallingCode).concat(nationalNumber);\n case \"RFC3966\":\n return formatRFC3966({\n number: \"+\".concat(countryCallingCode).concat(nationalNumber),\n ext: input.ext\n });\n case \"IDD\":\n if (!options.fromCountry) {\n return;\n }\n var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata2);\n return addExtension(formattedNumber, input.ext, metadata2, options.formatExtension);\n default:\n throw new Error('Unknown \"format\" argument passed to \"formatNumber()\": \"'.concat(format, '\"'));\n }\n}\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata2, options) {\n var format = chooseFormatForNumber(metadata2.formats(), number);\n if (!format) {\n return number;\n }\n return formatNationalNumberUsingFormat(number, format, {\n useInternationalFormat: formatAs === \"INTERNATIONAL\",\n withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true,\n carrierCode,\n metadata: metadata2\n });\n}\nfunction chooseFormatForNumber(availableFormats, nationalNnumber) {\n for (var _iterator = _createForOfIteratorHelperLoose$1(availableFormats), _step; !(_step = _iterator()).done; ) {\n var format = _step.value;\n if (format.leadingDigitsPatterns().length > 0) {\n var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1];\n if (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\n continue;\n }\n }\n if (matchesEntirely(nationalNnumber, format.pattern())) {\n return format;\n }\n }\n}\nfunction addExtension(formattedNumber, ext, metadata2, formatExtension2) {\n return ext ? formatExtension2(formattedNumber, ext, metadata2) : formattedNumber;\n}\nfunction formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata2) {\n var fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata2.metadata);\n if (fromCountryCallingCode === countryCallingCode) {\n var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, \"NATIONAL\", metadata2);\n if (countryCallingCode === \"1\") {\n return countryCallingCode + \" \" + formattedNumber;\n }\n return formattedNumber;\n }\n var iddPrefix = getIddPrefix(fromCountry, void 0, metadata2.metadata);\n if (iddPrefix) {\n return \"\".concat(iddPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber(nationalNumber, null, \"INTERNATIONAL\", metadata2));\n }\n}\nfunction ownKeys$3(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread$3(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n i % 2 ? ownKeys$3(Object(source), true).forEach(function(key) {\n _defineProperty$3(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty$3(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", { writable: false });\n return Constructor;\n}\nvar PhoneNumber = /* @__PURE__ */ function() {\n function PhoneNumber2(countryCallingCode, nationalNumber, metadata2) {\n _classCallCheck(this, PhoneNumber2);\n if (!countryCallingCode) {\n throw new TypeError(\"`country` or `countryCallingCode` not passed\");\n }\n if (!nationalNumber) {\n throw new TypeError(\"`nationalNumber` not passed\");\n }\n if (!metadata2) {\n throw new TypeError(\"`metadata` not passed\");\n }\n var _metadata = new Metadata(metadata2);\n if (isCountryCode(countryCallingCode)) {\n this.country = countryCallingCode;\n _metadata.country(countryCallingCode);\n countryCallingCode = _metadata.countryCallingCode();\n }\n this.countryCallingCode = countryCallingCode;\n this.nationalNumber = nationalNumber;\n this.number = \"+\" + this.countryCallingCode + this.nationalNumber;\n this.metadata = metadata2;\n }\n _createClass(PhoneNumber2, [{\n key: \"setExt\",\n value: function setExt(ext) {\n this.ext = ext;\n }\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n return isPossiblePhoneNumber(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"isValid\",\n value: function isValid() {\n return isValidNumber(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"isNonGeographic\",\n value: function isNonGeographic() {\n var metadata2 = new Metadata(this.metadata);\n return metadata2.isNonGeographicCallingCode(this.countryCallingCode);\n }\n }, {\n key: \"isEqual\",\n value: function isEqual(phoneNumber) {\n return this.number === phoneNumber.number && this.ext === phoneNumber.ext;\n }\n }, {\n key: \"getType\",\n value: function getType2() {\n return getNumberType(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"format\",\n value: function format(_format, options) {\n return formatNumber(this, _format, options ? _objectSpread$3(_objectSpread$3({}, options), {}, {\n v2: true\n }) : {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"formatNational\",\n value: function formatNational(options) {\n return this.format(\"NATIONAL\", options);\n }\n }, {\n key: \"formatInternational\",\n value: function formatInternational(options) {\n return this.format(\"INTERNATIONAL\", options);\n }\n }, {\n key: \"getURI\",\n value: function getURI(options) {\n return this.format(\"RFC3966\", options);\n }\n }]);\n return PhoneNumber2;\n}();\nvar isCountryCode = function isCountryCode2(value) {\n return /^[A-Z]{2}$/.test(value);\n};\nvar CAPTURING_DIGIT_PATTERN = new RegExp(\"([\" + VALID_DIGITS + \"])\");\nfunction stripIddPrefix(number, country, callingCode, metadata2) {\n if (!country) {\n return;\n }\n var countryMetadata = new Metadata(metadata2);\n countryMetadata.selectNumberingPlan(country, callingCode);\n var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n if (number.search(IDDPrefixPattern) !== 0) {\n return;\n }\n number = number.slice(number.match(IDDPrefixPattern)[0].length);\n var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n if (matchedGroups[1] === \"0\") {\n return;\n }\n }\n return number;\n}\nfunction extractNationalNumberFromPossiblyIncompleteNumber(number, metadata2) {\n if (number && metadata2.numberingPlan.nationalPrefixForParsing()) {\n var prefixPattern = new RegExp(\"^(?:\" + metadata2.numberingPlan.nationalPrefixForParsing() + \")\");\n var prefixMatch = prefixPattern.exec(number);\n if (prefixMatch) {\n var nationalNumber;\n var carrierCode;\n var capturedGroupsCount = prefixMatch.length - 1;\n var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount];\n if (metadata2.nationalPrefixTransformRule() && hasCapturedGroups) {\n nationalNumber = number.replace(prefixPattern, metadata2.nationalPrefixTransformRule());\n if (capturedGroupsCount > 1) {\n carrierCode = prefixMatch[1];\n }\n } else {\n var prefixBeforeNationalNumber = prefixMatch[0];\n nationalNumber = number.slice(prefixBeforeNationalNumber.length);\n if (hasCapturedGroups) {\n carrierCode = prefixMatch[1];\n }\n }\n var nationalPrefix;\n if (hasCapturedGroups) {\n var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]);\n var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup);\n if (possibleNationalPrefix === metadata2.numberingPlan.nationalPrefix()) {\n nationalPrefix = metadata2.numberingPlan.nationalPrefix();\n }\n } else {\n nationalPrefix = prefixMatch[0];\n }\n return {\n nationalNumber,\n nationalPrefix,\n carrierCode\n };\n }\n }\n return {\n nationalNumber: number\n };\n}\nfunction extractNationalNumber(number, metadata2) {\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(number, metadata2), carrierCode = _extractNationalNumbe.carrierCode, nationalNumber = _extractNationalNumbe.nationalNumber;\n if (nationalNumber !== number) {\n if (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata2)) {\n return {\n nationalNumber: number\n };\n }\n if (metadata2.possibleLengths()) {\n if (!isPossibleIncompleteNationalNumber(nationalNumber, metadata2)) {\n return {\n nationalNumber: number\n };\n }\n }\n }\n return {\n nationalNumber,\n carrierCode\n };\n}\nfunction shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata2) {\n if (matchesEntirely(nationalNumberBefore, metadata2.nationalNumberPattern()) && !matchesEntirely(nationalNumberAfter, metadata2.nationalNumberPattern())) {\n return false;\n }\n return true;\n}\nfunction isPossibleIncompleteNationalNumber(nationalNumber, metadata2) {\n switch (checkNumberLength(nationalNumber, metadata2)) {\n case \"TOO_SHORT\":\n case \"INVALID_LENGTH\":\n return false;\n default:\n return true;\n }\n}\nfunction extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata2) {\n var countryCallingCode = country ? getCountryCallingCode(country, metadata2) : callingCode;\n if (number.indexOf(countryCallingCode) === 0) {\n metadata2 = new Metadata(metadata2);\n metadata2.selectNumberingPlan(country, callingCode);\n var possibleShorterNumber = number.slice(countryCallingCode.length);\n var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, metadata2), possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\n var _extractNationalNumbe2 = extractNationalNumber(number, metadata2), nationalNumber = _extractNationalNumbe2.nationalNumber;\n if (!matchesEntirely(nationalNumber, metadata2.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata2.nationalNumberPattern()) || checkNumberLength(nationalNumber, metadata2) === \"TOO_LONG\") {\n return {\n countryCallingCode,\n number: possibleShorterNumber\n };\n }\n }\n return {\n number\n };\n}\nfunction extractCountryCallingCode(number, country, callingCode, metadata2) {\n if (!number) {\n return {};\n }\n if (number[0] !== \"+\") {\n var numberWithoutIDD = stripIddPrefix(number, country, callingCode, metadata2);\n if (numberWithoutIDD && numberWithoutIDD !== number) {\n number = \"+\" + numberWithoutIDD;\n } else {\n if (country || callingCode) {\n var _extractCountryCallin = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata2), countryCallingCode = _extractCountryCallin.countryCallingCode, shorterNumber = _extractCountryCallin.number;\n if (countryCallingCode) {\n return {\n countryCallingCode,\n number: shorterNumber\n };\n }\n }\n return {\n number\n };\n }\n }\n if (number[1] === \"0\") {\n return {};\n }\n metadata2 = new Metadata(metadata2);\n var i = 2;\n while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n var _countryCallingCode = number.slice(1, i);\n if (metadata2.hasCallingCode(_countryCallingCode)) {\n metadata2.selectNumberingPlan(_countryCallingCode);\n return {\n countryCallingCode: _countryCallingCode,\n number: number.slice(i)\n };\n }\n i++;\n }\n return {};\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it)\n return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray$1(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it)\n o = it;\n var i = 0;\n return function() {\n if (i >= o.length)\n return { done: true };\n return { done: false, value: o[i++] };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray$1(o, minLen) {\n if (!o)\n return;\n if (typeof o === \"string\")\n return _arrayLikeToArray$1(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor)\n n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\")\n return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n return _arrayLikeToArray$1(o, minLen);\n}\nfunction _arrayLikeToArray$1(arr, len) {\n if (len == null || len > arr.length)\n len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nfunction getCountryByCallingCode(callingCode, nationalPhoneNumber, metadata2) {\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata2.isNonGeographicCallingCode(callingCode)) {\n return \"001\";\n }\n }\n var possibleCountries = metadata2.getCountryCodesForCallingCode(callingCode);\n if (!possibleCountries) {\n return;\n }\n if (possibleCountries.length === 1) {\n return possibleCountries[0];\n }\n return selectCountryFromList(possibleCountries, nationalPhoneNumber, metadata2.metadata);\n}\nfunction selectCountryFromList(possibleCountries, nationalPhoneNumber, metadata2) {\n metadata2 = new Metadata(metadata2);\n for (var _iterator = _createForOfIteratorHelperLoose(possibleCountries), _step; !(_step = _iterator()).done; ) {\n var country = _step.value;\n metadata2.country(country);\n if (metadata2.leadingDigits()) {\n if (nationalPhoneNumber && nationalPhoneNumber.search(metadata2.leadingDigits()) === 0) {\n return country;\n }\n } else if (getNumberType({\n phone: nationalPhoneNumber,\n country\n }, void 0, metadata2.metadata)) {\n return country;\n }\n }\n}\nvar MAX_INPUT_STRING_LENGTH = 250;\nvar PHONE_NUMBER_START_PATTERN = new RegExp(\"[\" + PLUS_CHARS + VALID_DIGITS + \"]\");\nvar AFTER_PHONE_NUMBER_END_PATTERN = new RegExp(\"[^\" + VALID_DIGITS + \"#]+$\");\nfunction parse(text, options, metadata2) {\n options = options || {};\n metadata2 = new Metadata(metadata2);\n if (options.defaultCountry && !metadata2.hasCountry(options.defaultCountry)) {\n if (options.v2) {\n throw new ParseError(\"INVALID_COUNTRY\");\n }\n throw new Error(\"Unknown country: \".concat(options.defaultCountry));\n }\n var _parseInput = parseInput(text, options.v2, options.extract), formattedPhoneNumber = _parseInput.number, ext = _parseInput.ext, error = _parseInput.error;\n if (!formattedPhoneNumber) {\n if (options.v2) {\n if (error === \"TOO_SHORT\") {\n throw new ParseError(\"TOO_SHORT\");\n }\n throw new ParseError(\"NOT_A_NUMBER\");\n }\n return {};\n }\n var _parsePhoneNumber = parsePhoneNumber$1(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata2), country = _parsePhoneNumber.country, nationalNumber = _parsePhoneNumber.nationalNumber, countryCallingCode = _parsePhoneNumber.countryCallingCode, carrierCode = _parsePhoneNumber.carrierCode;\n if (!metadata2.hasSelectedNumberingPlan()) {\n if (options.v2) {\n throw new ParseError(\"INVALID_COUNTRY\");\n }\n return {};\n }\n if (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\n if (options.v2) {\n throw new ParseError(\"TOO_SHORT\");\n }\n return {};\n }\n if (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\n if (options.v2) {\n throw new ParseError(\"TOO_LONG\");\n }\n return {};\n }\n if (options.v2) {\n var phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata2.metadata);\n if (country) {\n phoneNumber.country = country;\n }\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n }\n if (ext) {\n phoneNumber.ext = ext;\n }\n return phoneNumber;\n }\n var valid = (options.extended ? metadata2.hasSelectedNumberingPlan() : country) ? matchesEntirely(nationalNumber, metadata2.nationalNumberPattern()) : false;\n if (!options.extended) {\n return valid ? result(country, nationalNumber, ext) : {};\n }\n return {\n country,\n countryCallingCode,\n carrierCode,\n valid,\n possible: valid ? true : options.extended === true && metadata2.possibleLengths() && isPossibleNumber(nationalNumber, metadata2) ? true : false,\n phone: nationalNumber,\n ext\n };\n}\nfunction extractFormattedPhoneNumber(text, extract, throwOnError) {\n if (!text) {\n return;\n }\n if (text.length > MAX_INPUT_STRING_LENGTH) {\n if (throwOnError) {\n throw new ParseError(\"TOO_LONG\");\n }\n return;\n }\n if (extract === false) {\n return text;\n }\n var startsAt = text.search(PHONE_NUMBER_START_PATTERN);\n if (startsAt < 0) {\n return;\n }\n return text.slice(startsAt).replace(AFTER_PHONE_NUMBER_END_PATTERN, \"\");\n}\nfunction parseInput(text, v2, extract) {\n if (text && text.indexOf(\"tel:\") === 0) {\n return parseRFC3966(text);\n }\n var number = extractFormattedPhoneNumber(text, extract, v2);\n if (!number) {\n return {};\n }\n if (!isViablePhoneNumber(number)) {\n if (isViablePhoneNumberStart(number)) {\n return {\n error: \"TOO_SHORT\"\n };\n }\n return {};\n }\n var withExtensionStripped = extractExtension(number);\n if (withExtensionStripped.ext) {\n return withExtensionStripped;\n }\n return {\n number\n };\n}\nfunction result(country, nationalNumber, ext) {\n var result2 = {\n country,\n phone: nationalNumber\n };\n if (ext) {\n result2.ext = ext;\n }\n return result2;\n}\nfunction parsePhoneNumber$1(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata2) {\n var _extractCountryCallin = extractCountryCallingCode(parseIncompletePhoneNumber(formattedPhoneNumber), defaultCountry, defaultCallingCode, metadata2.metadata), countryCallingCode = _extractCountryCallin.countryCallingCode, number = _extractCountryCallin.number;\n var country;\n if (countryCallingCode) {\n metadata2.selectNumberingPlan(countryCallingCode);\n } else if (number && (defaultCountry || defaultCallingCode)) {\n metadata2.selectNumberingPlan(defaultCountry, defaultCallingCode);\n if (defaultCountry) {\n country = defaultCountry;\n }\n countryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata2.metadata);\n } else\n return {};\n if (!number) {\n return {\n countryCallingCode\n };\n }\n var _extractNationalNumbe = extractNationalNumber(parseIncompletePhoneNumber(number), metadata2), nationalNumber = _extractNationalNumbe.nationalNumber, carrierCode = _extractNationalNumbe.carrierCode;\n var exactCountry = getCountryByCallingCode(countryCallingCode, nationalNumber, metadata2);\n if (exactCountry) {\n country = exactCountry;\n if (exactCountry === \"001\")\n ;\n else {\n metadata2.country(country);\n }\n }\n return {\n country,\n countryCallingCode,\n nationalNumber,\n carrierCode\n };\n}\nfunction ownKeys$2(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread$2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n i % 2 ? ownKeys$2(Object(source), true).forEach(function(key) {\n _defineProperty$2(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty$2(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction parsePhoneNumber(text, options, metadata2) {\n return parse(text, _objectSpread$2(_objectSpread$2({}, options), {}, {\n v2: true\n }), metadata2);\n}\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n return _typeof = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(obj2) {\n return typeof obj2;\n } : function(obj2) {\n return obj2 && typeof Symbol == \"function\" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? \"symbol\" : typeof obj2;\n }, _typeof(obj);\n}\nfunction ownKeys$1(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread$1(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n i % 2 ? ownKeys$1(Object(source), true).forEach(function(key) {\n _defineProperty$1(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty$1(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o)\n return;\n if (typeof o === \"string\")\n return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor)\n n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\")\n return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length)\n len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null)\n return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i)\n break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null)\n _i[\"return\"]();\n } finally {\n if (_d)\n throw _e;\n }\n }\n return _arr;\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr))\n return arr;\n}\nfunction normalizeArguments(args) {\n var _Array$prototype$slic = Array.prototype.slice.call(args), _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 4), arg_1 = _Array$prototype$slic2[0], arg_2 = _Array$prototype$slic2[1], arg_3 = _Array$prototype$slic2[2], arg_4 = _Array$prototype$slic2[3];\n var text;\n var options;\n var metadata2;\n if (typeof arg_1 === \"string\") {\n text = arg_1;\n } else\n throw new TypeError(\"A text for parsing must be a string.\");\n if (!arg_2 || typeof arg_2 === \"string\") {\n if (arg_4) {\n options = arg_3;\n metadata2 = arg_4;\n } else {\n options = void 0;\n metadata2 = arg_3;\n }\n if (arg_2) {\n options = _objectSpread$1({\n defaultCountry: arg_2\n }, options);\n }\n } else if (isObject(arg_2)) {\n if (arg_3) {\n options = arg_2;\n metadata2 = arg_3;\n } else {\n metadata2 = arg_2;\n }\n } else\n throw new Error(\"Invalid second argument: \".concat(arg_2));\n return {\n text,\n options,\n metadata: metadata2\n };\n}\nvar isObject = function isObject2(_) {\n return _typeof(_) === \"object\";\n};\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), true).forEach(function(key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction parsePhoneNumberFromString$2(text, options, metadata2) {\n if (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata2)) {\n options = _objectSpread(_objectSpread({}, options), {}, {\n defaultCountry: void 0\n });\n }\n try {\n return parsePhoneNumber(text, options, metadata2);\n } catch (error) {\n if (error instanceof ParseError)\n ;\n else {\n throw error;\n }\n }\n}\nfunction parsePhoneNumberFromString$1() {\n var _normalizeArguments = normalizeArguments(arguments), text = _normalizeArguments.text, options = _normalizeArguments.options, metadata2 = _normalizeArguments.metadata;\n return parsePhoneNumberFromString$2(text, options, metadata2);\n}\nfunction parsePhoneNumberFromString() {\n return withMetadataArgument(parsePhoneNumberFromString$1, arguments);\n}\nvar clickOutside = {\n beforeMount(el, binding, vNode) {\n if (typeof binding.value !== \"function\") {\n const compName = vNode.context.name;\n let warn = `[Vue-click-outside:] provided expression ${binding.expression} is not a function, but has to be`;\n if (compName) {\n warn += `Found in component ${compName}`;\n }\n console.warn(warn);\n }\n el.clickOutsideEvent = function(event) {\n if (!(el === event.target || el.contains(event.target))) {\n binding.value(event, el);\n }\n };\n document.body.addEventListener(\"click\", el.clickOutsideEvent);\n },\n unmounted(el) {\n document.body.removeEventListener(\"click\", el.clickOutsideEvent);\n }\n};\nvar sprite_css_vue_type_style_index_0_src_5851b83d_lang = /* @__PURE__ */ (() => \".vti__flag{width:20px}.vti__flag.be{width:18px}.vti__flag.ch{width:15px}.vti__flag.mc{width:19px}.vti__flag.ne{width:18px}.vti__flag.np{width:13px}.vti__flag.va{width:15px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){.vti__flag{background-size:5630px 15px}}.vti__flag.ac{height:10px;background-position:0px 0px}.vti__flag.ad{height:14px;background-position:-22px 0px}.vti__flag.ae{height:10px;background-position:-44px 0px}.vti__flag.af{height:14px;background-position:-66px 0px}.vti__flag.ag{height:14px;background-position:-88px 0px}.vti__flag.ai{height:10px;background-position:-110px 0px}.vti__flag.al{height:15px;background-position:-132px 0px}.vti__flag.am{height:10px;background-position:-154px 0px}.vti__flag.ao{height:14px;background-position:-176px 0px}.vti__flag.aq{height:14px;background-position:-198px 0px}.vti__flag.ar{height:13px;background-position:-220px 0px}.vti__flag.as{height:10px;background-position:-242px 0px}.vti__flag.at{height:14px;background-position:-264px 0px}.vti__flag.au{height:10px;background-position:-286px 0px}.vti__flag.aw{height:14px;background-position:-308px 0px}.vti__flag.ax{height:13px;background-position:-330px 0px}.vti__flag.az{height:10px;background-position:-352px 0px}.vti__flag.ba{height:10px;background-position:-374px 0px}.vti__flag.bb{height:14px;background-position:-396px 0px}.vti__flag.bd{height:12px;background-position:-418px 0px}.vti__flag.be{height:15px;background-position:-440px 0px}.vti__flag.bf{height:14px;background-position:-460px 0px}.vti__flag.bg{height:12px;background-position:-482px 0px}.vti__flag.bh{height:12px;background-position:-504px 0px}.vti__flag.bi{height:12px;background-position:-526px 0px}.vti__flag.bj{height:14px;background-position:-548px 0px}.vti__flag.bl{height:14px;background-position:-570px 0px}.vti__flag.bm{height:10px;background-position:-592px 0px}.vti__flag.bn{height:10px;background-position:-614px 0px}.vti__flag.bo{height:14px;background-position:-636px 0px}.vti__flag.bq{height:14px;background-position:-658px 0px}.vti__flag.br{height:14px;background-position:-680px 0px}.vti__flag.bs{height:10px;background-position:-702px 0px}.vti__flag.bt{height:14px;background-position:-724px 0px}.vti__flag.bv{height:15px;background-position:-746px 0px}.vti__flag.bw{height:14px;background-position:-768px 0px}.vti__flag.by{height:10px;background-position:-790px 0px}.vti__flag.bz{height:14px;background-position:-812px 0px}.vti__flag.ca{height:10px;background-position:-834px 0px}.vti__flag.cc{height:10px;background-position:-856px 0px}.vti__flag.cd{height:15px;background-position:-878px 0px}.vti__flag.cf{height:14px;background-position:-900px 0px}.vti__flag.cg{height:14px;background-position:-922px 0px}.vti__flag.ch{height:15px;background-position:-944px 0px}.vti__flag.ci{height:14px;background-position:-961px 0px}.vti__flag.ck{height:10px;background-position:-983px 0px}.vti__flag.cl{height:14px;background-position:-1005px 0px}.vti__flag.cm{height:14px;background-position:-1027px 0px}.vti__flag.cn{height:14px;background-position:-1049px 0px}.vti__flag.co{height:14px;background-position:-1071px 0px}.vti__flag.cp{height:14px;background-position:-1093px 0px}.vti__flag.cr{height:12px;background-position:-1115px 0px}.vti__flag.cu{height:10px;background-position:-1137px 0px}.vti__flag.cv{height:12px;background-position:-1159px 0px}.vti__flag.cw{height:14px;background-position:-1181px 0px}.vti__flag.cx{height:10px;background-position:-1203px 0px}.vti__flag.cy{height:14px;background-position:-1225px 0px}.vti__flag.cz{height:14px;background-position:-1247px 0px}.vti__flag.de{height:12px;background-position:-1269px 0px}.vti__flag.dg{height:10px;background-position:-1291px 0px}.vti__flag.dj{height:14px;background-position:-1313px 0px}.vti__flag.dk{height:15px;background-position:-1335px 0px}.vti__flag.dm{height:10px;background-position:-1357px 0px}.vti__flag.do{height:13px;background-position:-1379px 0px}.vti__flag.dz{height:14px;background-position:-1401px 0px}.vti__flag.ea{height:14px;background-position:-1423px 0px}.vti__flag.ec{height:14px;background-position:-1445px 0px}.vti__flag.ee{height:13px;background-position:-1467px 0px}.vti__flag.eg{height:14px;background-position:-1489px 0px}.vti__flag.eh{height:10px;background-position:-1511px 0px}.vti__flag.er{height:10px;background-position:-1533px 0px}.vti__flag.es{height:14px;background-position:-1555px 0px}.vti__flag.et{height:10px;background-position:-1577px 0px}.vti__flag.eu{height:14px;background-position:-1599px 0px}.vti__flag.fi{height:12px;background-position:-1621px 0px}.vti__flag.fj{height:10px;background-position:-1643px 0px}.vti__flag.fk{height:10px;background-position:-1665px 0px}.vti__flag.fm{height:11px;background-position:-1687px 0px}.vti__flag.fo{height:15px;background-position:-1709px 0px}.vti__flag.fr{height:14px;background-position:-1731px 0px}.vti__flag.ga{height:15px;background-position:-1753px 0px}.vti__flag.gb{height:10px;background-position:-1775px 0px}.vti__flag.gd{height:12px;background-position:-1797px 0px}.vti__flag.ge{height:14px;background-position:-1819px 0px}.vti__flag.gf{height:14px;background-position:-1841px 0px}.vti__flag.gg{height:14px;background-position:-1863px 0px}.vti__flag.gh{height:14px;background-position:-1885px 0px}.vti__flag.gi{height:10px;background-position:-1907px 0px}.vti__flag.gl{height:14px;background-position:-1929px 0px}.vti__flag.gm{height:14px;background-position:-1951px 0px}.vti__flag.gn{height:14px;background-position:-1973px 0px}.vti__flag.gp{height:14px;background-position:-1995px 0px}.vti__flag.gq{height:14px;background-position:-2017px 0px}.vti__flag.gr{height:14px;background-position:-2039px 0px}.vti__flag.gs{height:10px;background-position:-2061px 0px}.vti__flag.gt{height:13px;background-position:-2083px 0px}.vti__flag.gu{height:11px;background-position:-2105px 0px}.vti__flag.gw{height:10px;background-position:-2127px 0px}.vti__flag.gy{height:12px;background-position:-2149px 0px}.vti__flag.hk{height:14px;background-position:-2171px 0px}.vti__flag.hm{height:10px;background-position:-2193px 0px}.vti__flag.hn{height:10px;background-position:-2215px 0px}.vti__flag.hr{height:10px;background-position:-2237px 0px}.vti__flag.ht{height:12px;background-position:-2259px 0px}.vti__flag.hu{height:10px;background-position:-2281px 0px}.vti__flag.ic{height:14px;background-position:-2303px 0px}.vti__flag.id{height:14px;background-position:-2325px 0px}.vti__flag.ie{height:10px;background-position:-2347px 0px}.vti__flag.il{height:15px;background-position:-2369px 0px}.vti__flag.im{height:10px;background-position:-2391px 0px}.vti__flag.in{height:14px;background-position:-2413px 0px}.vti__flag.io{height:10px;background-position:-2435px 0px}.vti__flag.iq{height:14px;background-position:-2457px 0px}.vti__flag.ir{height:12px;background-position:-2479px 0px}.vti__flag.is{height:15px;background-position:-2501px 0px}.vti__flag.it{height:14px;background-position:-2523px 0px}.vti__flag.je{height:12px;background-position:-2545px 0px}.vti__flag.jm{height:10px;background-position:-2567px 0px}.vti__flag.jo{height:10px;background-position:-2589px 0px}.vti__flag.jp{height:14px;background-position:-2611px 0px}.vti__flag.ke{height:14px;background-position:-2633px 0px}.vti__flag.kg{height:12px;background-position:-2655px 0px}.vti__flag.kh{height:13px;background-position:-2677px 0px}.vti__flag.ki{height:10px;background-position:-2699px 0px}.vti__flag.km{height:12px;background-position:-2721px 0px}.vti__flag.kn{height:14px;background-position:-2743px 0px}.vti__flag.kp{height:10px;background-position:-2765px 0px}.vti__flag.kr{height:14px;background-position:-2787px 0px}.vti__flag.kw{height:10px;background-position:-2809px 0px}.vti__flag.ky{height:10px;background-position:-2831px 0px}.vti__flag.kz{height:10px;background-position:-2853px 0px}.vti__flag.la{height:14px;background-position:-2875px 0px}.vti__flag.lb{height:14px;background-position:-2897px 0px}.vti__flag.lc{height:10px;background-position:-2919px 0px}.vti__flag.li{height:12px;background-position:-2941px 0px}.vti__flag.lk{height:10px;background-position:-2963px 0px}.vti__flag.lr{height:11px;background-position:-2985px 0px}.vti__flag.ls{height:14px;background-position:-3007px 0px}.vti__flag.lt{height:12px;background-position:-3029px 0px}.vti__flag.lu{height:12px;background-position:-3051px 0px}.vti__flag.lv{height:10px;background-position:-3073px 0px}.vti__flag.ly{height:10px;background-position:-3095px 0px}.vti__flag.ma{height:14px;background-position:-3117px 0px}.vti__flag.mc{height:15px;background-position:-3139px 0px}.vti__flag.md{height:10px;background-position:-3160px 0px}.vti__flag.me{height:10px;background-position:-3182px 0px}.vti__flag.mf{height:14px;background-position:-3204px 0px}.vti__flag.mg{height:14px;background-position:-3226px 0px}.vti__flag.mh{height:11px;background-position:-3248px 0px}.vti__flag.mk{height:10px;background-position:-3270px 0px}.vti__flag.ml{height:14px;background-position:-3292px 0px}.vti__flag.mm{height:14px;background-position:-3314px 0px}.vti__flag.mn{height:10px;background-position:-3336px 0px}.vti__flag.mo{height:14px;background-position:-3358px 0px}.vti__flag.mp{height:10px;background-position:-3380px 0px}.vti__flag.mq{height:14px;background-position:-3402px 0px}.vti__flag.mr{height:14px;background-position:-3424px 0px}.vti__flag.ms{height:10px;background-position:-3446px 0px}.vti__flag.mt{height:14px;background-position:-3468px 0px}.vti__flag.mu{height:14px;background-position:-3490px 0px}.vti__flag.mv{height:14px;background-position:-3512px 0px}.vti__flag.mw{height:14px;background-position:-3534px 0px}.vti__flag.mx{height:12px;background-position:-3556px 0px}.vti__flag.my{height:10px;background-position:-3578px 0px}.vti__flag.mz{height:14px;background-position:-3600px 0px}.vti__flag.na{height:14px;background-position:-3622px 0px}.vti__flag.nc{height:10px;background-position:-3644px 0px}.vti__flag.ne{height:15px;background-position:-3666px 0px}.vti__flag.nf{height:10px;background-position:-3686px 0px}.vti__flag.ng{height:10px;background-position:-3708px 0px}.vti__flag.ni{height:12px;background-position:-3730px 0px}.vti__flag.nl{height:14px;background-position:-3752px 0px}.vti__flag.no{height:15px;background-position:-3774px 0px}.vti__flag.np{height:15px;background-position:-3796px 0px}.vti__flag.nr{height:10px;background-position:-3811px 0px}.vti__flag.nu{height:10px;background-position:-3833px 0px}.vti__flag.nz{height:10px;background-position:-3855px 0px}.vti__flag.om{height:10px;background-position:-3877px 0px}.vti__flag.pa{height:14px;background-position:-3899px 0px}.vti__flag.pe{height:14px;background-position:-3921px 0px}.vti__flag.pf{height:14px;background-position:-3943px 0px}.vti__flag.pg{height:15px;background-position:-3965px 0px}.vti__flag.ph{height:10px;background-position:-3987px 0px}.vti__flag.pk{height:14px;background-position:-4009px 0px}.vti__flag.pl{height:13px;background-position:-4031px 0px}.vti__flag.pm{height:14px;background-position:-4053px 0px}.vti__flag.pn{height:10px;background-position:-4075px 0px}.vti__flag.pr{height:14px;background-position:-4097px 0px}.vti__flag.ps{height:10px;background-position:-4119px 0px}.vti__flag.pt{height:14px;background-position:-4141px 0px}.vti__flag.pw{height:13px;background-position:-4163px 0px}.vti__flag.py{height:11px;background-position:-4185px 0px}.vti__flag.qa{height:8px;background-position:-4207px 0px}.vti__flag.re{height:14px;background-position:-4229px 0px}.vti__flag.ro{height:14px;background-position:-4251px 0px}.vti__flag.rs{height:14px;background-position:-4273px 0px}.vti__flag.ru{height:14px;background-position:-4295px 0px}.vti__flag.rw{height:14px;background-position:-4317px 0px}.vti__flag.sa{height:14px;background-position:-4339px 0px}.vti__flag.sb{height:10px;background-position:-4361px 0px}.vti__flag.sc{height:10px;background-position:-4383px 0px}.vti__flag.sd{height:10px;background-position:-4405px 0px}.vti__flag.se{height:13px;background-position:-4427px 0px}.vti__flag.sg{height:14px;background-position:-4449px 0px}.vti__flag.sh{height:10px;background-position:-4471px 0px}.vti__flag.si{height:10px;background-position:-4493px 0px}.vti__flag.sj{height:15px;background-position:-4515px 0px}.vti__flag.sk{height:14px;background-position:-4537px 0px}.vti__flag.sl{height:14px;background-position:-4559px 0px}.vti__flag.sm{height:15px;background-position:-4581px 0px}.vti__flag.sn{height:14px;background-position:-4603px 0px}.vti__flag.so{height:14px;background-position:-4625px 0px}.vti__flag.sr{height:14px;background-position:-4647px 0px}.vti__flag.ss{height:10px;background-position:-4669px 0px}.vti__flag.st{height:10px;background-position:-4691px 0px}.vti__flag.sv{height:12px;background-position:-4713px 0px}.vti__flag.sx{height:14px;background-position:-4735px 0px}.vti__flag.sy{height:14px;background-position:-4757px 0px}.vti__flag.sz{height:14px;background-position:-4779px 0px}.vti__flag.ta{height:10px;background-position:-4801px 0px}.vti__flag.tc{height:10px;background-position:-4823px 0px}.vti__flag.td{height:14px;background-position:-4845px 0px}.vti__flag.tf{height:14px;background-position:-4867px 0px}.vti__flag.tg{height:13px;background-position:-4889px 0px}.vti__flag.th{height:14px;background-position:-4911px 0px}.vti__flag.tj{height:10px;background-position:-4933px 0px}.vti__flag.tk{height:10px;background-position:-4955px 0px}.vti__flag.tl{height:10px;background-position:-4977px 0px}.vti__flag.tm{height:14px;background-position:-4999px 0px}.vti__flag.tn{height:14px;background-position:-5021px 0px}.vti__flag.to{height:10px;background-position:-5043px 0px}.vti__flag.tr{height:14px;background-position:-5065px 0px}.vti__flag.tt{height:12px;background-position:-5087px 0px}.vti__flag.tv{height:10px;background-position:-5109px 0px}.vti__flag.tw{height:14px;background-position:-5131px 0px}.vti__flag.tz{height:14px;background-position:-5153px 0px}.vti__flag.ua{height:14px;background-position:-5175px 0px}.vti__flag.ug{height:14px;background-position:-5197px 0px}.vti__flag.um{height:11px;background-position:-5219px 0px}.vti__flag.us{height:11px;background-position:-5241px 0px}.vti__flag.uy{height:14px;background-position:-5263px 0px}.vti__flag.uz{height:10px;background-position:-5285px 0px}.vti__flag.va{height:15px;background-position:-5307px 0px}.vti__flag.vc{height:14px;background-position:-5324px 0px}.vti__flag.ve{height:14px;background-position:-5346px 0px}.vti__flag.vg{height:10px;background-position:-5368px 0px}.vti__flag.vi{height:14px;background-position:-5390px 0px}.vti__flag.vn{height:14px;background-position:-5412px 0px}.vti__flag.vu{height:12px;background-position:-5434px 0px}.vti__flag.wf{height:14px;background-position:-5456px 0px}.vti__flag.ws{height:10px;background-position:-5478px 0px}.vti__flag.xk{height:15px;background-position:-5500px 0px}.vti__flag.ye{height:14px;background-position:-5522px 0px}.vti__flag.yt{height:14px;background-position:-5544px 0px}.vti__flag.za{height:14px;background-position:-5566px 0px}.vti__flag.zm{height:14px;background-position:-5588px 0px}.vti__flag.zw{height:10px;background-position:-5610px 0px}.vti__flag{width:20px;height:15px;box-shadow:0 0 1px #888;background-image:url(data:image/png;base64,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);background-repeat:no-repeat;background-color:#dbdbdb;background-position:20px 0}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){.vti__flag{background-image:url(data:image/png;base64,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)}}.vti__flag.np{background-color:transparent}\\n\")();\nvar component_css_vue_type_style_index_1_src_5851b83d_lang = /* @__PURE__ */ (() => \".vue-tel-input{border-radius:3px;display:flex;border:1px solid #bbb;text-align:left}.vue-tel-input.disabled .selection,.vue-tel-input.disabled .dropdown,.vue-tel-input.disabled input{cursor:no-drop}.vue-tel-input:focus-within{box-shadow:inset 0 1px 1px #00000013,0 0 8px #66afe999;border-color:#66afe9}.vti__dropdown{display:flex;flex-direction:column;align-content:center;justify-content:center;position:relative;padding:7px;cursor:pointer}.vti__dropdown.show{max-height:300px;overflow:scroll}.vti__dropdown.open{background-color:#f3f3f3}.vti__dropdown.disabled{cursor:no-drop;outline:none;background-color:#f3f3f3}.vti__dropdown:hover{background-color:#f3f3f3}.vti__selection{font-size:.8em;display:flex;align-items:center}.vti__selection .vti__country-code{color:#666}.vti__flag{margin-right:5px;margin-left:5px}.vti__dropdown-list{z-index:1;padding:0;margin:0;text-align:left;list-style:none;max-height:200px;overflow-y:scroll;position:absolute;left:-1px;background-color:#fff;border:1px solid #ccc;width:390px}.vti__dropdown-list.below{top:33px}.vti__dropdown-list.above{top:auto;bottom:100%}.vti__dropdown-arrow{transform:scaleY(.5);display:inline-block;color:#666}.vti__dropdown-item{cursor:pointer;padding:4px 15px}.vti__dropdown-item.highlighted{background-color:#f3f3f3}.vti__dropdown-item.last-preferred{border-bottom:1px solid #cacaca}.vti__dropdown-item .vti__flag{display:inline-block;margin-right:5px}.vti__input{border:none;border-radius:0 2px 2px 0;width:100%;outline:none;padding-left:7px}\\n\")();\nvar _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nfunction getDefault(key) {\n const value = utils.options[key];\n if (typeof value === \"undefined\") {\n return utils.options[key];\n }\n return value;\n}\nconst _sfc_main = {\n name: \"VueTelInput\",\n directives: {\n clickOutside\n },\n props: {\n modelValue: {\n type: String,\n default: \"\"\n },\n allCountries: {\n type: Array,\n default: () => getDefault(\"allCountries\")\n },\n autoFormat: {\n type: Boolean,\n default: () => getDefault(\"autoFormat\")\n },\n customValidate: {\n type: [Boolean, RegExp],\n default: () => getDefault(\"customValidate\")\n },\n defaultCountry: {\n type: [String, Number],\n default: () => getDefault(\"defaultCountry\")\n },\n disabled: {\n type: Boolean,\n default: () => getDefault(\"disabled\")\n },\n autoDefaultCountry: {\n type: Boolean,\n default: () => getDefault(\"autoDefaultCountry\")\n },\n dropdownOptions: {\n type: Object,\n default: () => getDefault(\"dropdownOptions\")\n },\n ignoredCountries: {\n type: Array,\n default: () => getDefault(\"ignoredCountries\")\n },\n inputOptions: {\n type: Object,\n default: () => getDefault(\"inputOptions\")\n },\n invalidMsg: {\n type: String,\n default: () => getDefault(\"invalidMsg\")\n },\n mode: {\n type: String,\n default: () => getDefault(\"mode\")\n },\n onlyCountries: {\n type: Array,\n default: () => getDefault(\"onlyCountries\")\n },\n preferredCountries: {\n type: Array,\n default: () => getDefault(\"preferredCountries\")\n },\n validCharactersOnly: {\n type: Boolean,\n default: () => getDefault(\"validCharactersOnly\")\n },\n styleClasses: {\n type: [String, Array, Object],\n default: () => getDefault(\"styleClasses\")\n }\n },\n data() {\n return {\n phone: \"\",\n activeCountryCode: \"\",\n open: false,\n finishMounted: false,\n selectedIndex: null,\n typeToFindInput: \"\",\n typeToFindTimer: null,\n dropdownOpenDirection: \"below\",\n parsedPlaceholder: this.inputOptions.placeholder\n };\n },\n computed: {\n activeCountry() {\n return this.findCountry(this.activeCountryCode);\n },\n parsedMode() {\n if (this.mode === \"auto\") {\n if (!this.phone || this.phone[0] !== \"+\") {\n return \"national\";\n }\n return \"international\";\n }\n if (![\"international\", \"national\"].includes(this.mode)) {\n console.error('Invalid value of prop \"mode\"');\n return \"international\";\n }\n return this.mode;\n },\n filteredCountries() {\n if (this.onlyCountries.length) {\n return this.allCountries.filter(({ iso2 }) => this.onlyCountries.some((c) => c.toUpperCase() === iso2));\n }\n if (this.ignoredCountries.length) {\n return this.allCountries.filter(({ iso2 }) => !this.ignoredCountries.includes(iso2.toUpperCase()) && !this.ignoredCountries.includes(iso2.toLowerCase()));\n }\n return this.allCountries;\n },\n sortedCountries() {\n const preferredCountries = this.getCountries(this.preferredCountries).map((country) => ({ ...country, preferred: true }));\n return [...preferredCountries, ...this.filteredCountries];\n },\n phoneObject() {\n var _a, _b, _c;\n let result2;\n if (((_a = this.phone) == null ? void 0 : _a[0]) === \"+\") {\n result2 = parsePhoneNumberFromString(this.phone) || {};\n } else {\n result2 = parsePhoneNumberFromString(this.phone, this.activeCountryCode) || {};\n }\n const {\n metadata: metadata2,\n ...phoneObject\n } = result2;\n let valid = (_b = result2.isValid) == null ? void 0 : _b.call(result2);\n let formatted = this.phone;\n if (valid) {\n formatted = (_c = result2.format) == null ? void 0 : _c.call(result2, this.parsedMode.toUpperCase());\n }\n if (result2.country && (this.ignoredCountries.length || this.onlyCountries.length)) {\n if (!this.findCountry(result2.country)) {\n valid = false;\n Object.assign(result2, { country: null });\n }\n }\n Object.assign(phoneObject, {\n countryCode: result2.country,\n valid,\n country: this.activeCountry,\n formatted\n });\n return phoneObject;\n }\n },\n watch: {\n activeCountry(value, oldValue) {\n if (!value && (oldValue == null ? void 0 : oldValue.iso2)) {\n this.activeCountryCode = oldValue.iso2;\n return;\n }\n if (value == null ? void 0 : value.iso2) {\n this.$emit(\"country-changed\", value);\n }\n },\n \"phoneObject.countryCode\": function(value) {\n this.activeCountryCode = value || \"\";\n },\n \"phoneObject.valid\": function() {\n this.$emit(\"validate\", this.phoneObject);\n },\n \"phoneObject.formatted\": function(value) {\n if (!this.autoFormat || this.customValidate) {\n return;\n }\n this.emitInput(value);\n this.$nextTick(() => {\n if (value && !this.modelValue) {\n this.phone = value;\n }\n });\n },\n \"inputOptions.placeholder\": function() {\n this.resetPlaceholder();\n },\n modelValue(value, oldValue) {\n if (!this.testCharacters()) {\n this.$nextTick(() => {\n this.phone = oldValue;\n this.onInput();\n });\n } else {\n this.phone = value;\n }\n },\n open(isDropdownOpened) {\n if (isDropdownOpened) {\n this.setDropdownPosition();\n this.$emit(\"open\");\n } else {\n this.$emit(\"close\");\n }\n }\n },\n mounted() {\n if (this.modelValue) {\n this.phone = this.modelValue.trim();\n }\n this.cleanInvalidCharacters();\n this.initializeCountry().then(() => {\n var _a;\n if (!this.phone && ((_a = this.inputOptions) == null ? void 0 : _a.showDialCode) && this.activeCountryCode) {\n this.phone = `+${this.activeCountryCode}`;\n }\n this.$emit(\"validate\", this.phoneObject);\n }).catch(console.error).then(() => {\n this.finishMounted = true;\n });\n },\n methods: {\n resetPlaceholder() {\n this.parsedPlaceholder = this.inputOptions.placeholder;\n },\n initializeCountry() {\n return new Promise((resolve) => {\n var _a;\n if (((_a = this.phone) == null ? void 0 : _a[0]) === \"+\") {\n resolve();\n return;\n }\n if (this.defaultCountry) {\n if (typeof this.defaultCountry === \"string\") {\n this.choose(this.defaultCountry);\n resolve();\n return;\n }\n if (typeof this.defaultCountry === \"number\") {\n const country = this.findCountryByDialCode(this.defaultCountry);\n if (country) {\n this.choose(country.iso2);\n resolve();\n return;\n }\n }\n }\n const fallbackCountry = this.preferredCountries[0] || this.filteredCountries[0];\n if (this.autoDefaultCountry) {\n getCountry().then((res) => {\n this.choose(res || this.activeCountryCode);\n }).catch((error) => {\n console.warn(error);\n this.choose(fallbackCountry);\n }).then(() => {\n resolve();\n });\n } else {\n this.choose(fallbackCountry);\n resolve();\n }\n });\n },\n getCountries(list = []) {\n return list.map((countryCode) => this.findCountry(countryCode)).filter(Boolean);\n },\n findCountry(iso = \"\") {\n return this.filteredCountries.find((country) => country.iso2 === iso.toUpperCase());\n },\n findCountryByDialCode(dialCode) {\n return this.filteredCountries.find((country) => Number(country.dialCode) === dialCode);\n },\n getItemClass(index2, iso2) {\n const highlighted = this.selectedIndex === index2;\n const lastPreferred = index2 === this.preferredCountries.length - 1;\n const preferred = this.preferredCountries.some((c) => c.toUpperCase() === iso2);\n return {\n highlighted,\n \"last-preferred\": lastPreferred,\n preferred\n };\n },\n choose(country) {\n var _a, _b;\n let parsedCountry = country;\n if (typeof parsedCountry === \"string\") {\n parsedCountry = this.findCountry(parsedCountry);\n }\n if (!parsedCountry) {\n return;\n }\n if (((_a = this.phone) == null ? void 0 : _a[0]) === \"+\" && parsedCountry.iso2 && this.phoneObject.nationalNumber) {\n this.activeCountryCode = parsedCountry.iso2;\n this.phone = parsePhoneNumberFromString(this.phoneObject.nationalNumber, parsedCountry.iso2).formatInternational();\n return;\n }\n if (((_b = this.inputOptions) == null ? void 0 : _b.showDialCode) && parsedCountry) {\n this.phone = `+${parsedCountry.dialCode}`;\n this.activeCountryCode = parsedCountry.iso2 || \"\";\n return;\n }\n this.activeCountryCode = parsedCountry.iso2 || \"\";\n this.emitInput(this.phone);\n },\n cleanInvalidCharacters() {\n const currentPhone = this.phone;\n if (this.validCharactersOnly) {\n const results = this.phone.match(/[()\\-+0-9\\s]*/g);\n this.phone = results.join(\"\");\n }\n if (this.customValidate && this.customValidate instanceof RegExp) {\n const results = this.phone.match(this.customValidate);\n this.phone = results.join(\"\");\n }\n if (currentPhone !== this.phone) {\n this.emitInput(this.phone);\n }\n },\n testCharacters() {\n if (this.validCharactersOnly) {\n const result2 = /^[()\\-+0-9\\s]*$/.test(this.phone);\n if (!result2) {\n return false;\n }\n }\n if (this.customValidate) {\n return this.testCustomValidate();\n }\n return true;\n },\n testCustomValidate() {\n return this.customValidate instanceof RegExp ? this.customValidate.test(this.phone) : false;\n },\n onInput() {\n this.$refs.input.setCustomValidity(this.phoneObject.valid ? \"\" : this.invalidMsg);\n this.emitInput(this.phone);\n },\n emitInput(value) {\n this.$emit(\"update:modelValue\", value);\n this.$emit(\"on-input\", value, this.phoneObject, this.$refs.input);\n },\n onBlur() {\n this.$emit(\"blur\");\n },\n onFocus() {\n setCaretPosition(this.$refs.input, this.phone.length);\n this.$emit(\"focus\");\n },\n onEnter() {\n this.$emit(\"enter\");\n },\n onSpace() {\n this.$emit(\"space\");\n },\n focus() {\n this.$refs.input.focus();\n },\n toggleDropdown() {\n if (this.disabled || this.dropdownOptions.disabled) {\n return;\n }\n this.open = !this.open;\n },\n clickedOutside() {\n this.open = false;\n },\n keyboardNav(e) {\n if (e.keyCode === 40) {\n e.preventDefault();\n this.open = true;\n if (this.selectedIndex === null) {\n this.selectedIndex = 0;\n } else {\n this.selectedIndex = Math.min(this.sortedCountries.length - 1, this.selectedIndex + 1);\n }\n const selEle = this.$refs.list.children[this.selectedIndex];\n selEle.focus();\n if (selEle.offsetTop + selEle.clientHeight > this.$refs.list.scrollTop + this.$refs.list.clientHeight) {\n this.$refs.list.scrollTop = selEle.offsetTop - this.$refs.list.clientHeight + selEle.clientHeight;\n }\n } else if (e.keyCode === 38) {\n e.preventDefault();\n this.open = true;\n if (this.selectedIndex === null) {\n this.selectedIndex = this.sortedCountries.length - 1;\n } else {\n this.selectedIndex = Math.max(0, this.selectedIndex - 1);\n }\n const selEle = this.$refs.list.children[this.selectedIndex];\n selEle.focus();\n if (selEle.offsetTop < this.$refs.list.scrollTop) {\n this.$refs.list.scrollTop = selEle.offsetTop;\n }\n } else if (e.keyCode === 13) {\n if (this.selectedIndex !== null) {\n this.choose(this.sortedCountries[this.selectedIndex]);\n }\n this.open = !this.open;\n } else {\n this.typeToFindInput += e.key;\n clearTimeout(this.typeToFindTimer);\n this.typeToFindTimer = setTimeout(() => {\n this.typeToFindInput = \"\";\n }, 700);\n const typedCountryI = this.sortedCountries.slice(this.preferredCountries.length).findIndex((c) => c.name.toLowerCase().startsWith(this.typeToFindInput));\n if (typedCountryI >= 0) {\n this.selectedIndex = this.preferredCountries.length + typedCountryI;\n const selEle = this.$refs.list.children[this.selectedIndex];\n const needToScrollTop = selEle.offsetTop < this.$refs.list.scrollTop;\n const needToScrollBottom = selEle.offsetTop + selEle.clientHeight > this.$refs.list.scrollTop + this.$refs.list.clientHeight;\n if (needToScrollTop || needToScrollBottom) {\n this.$refs.list.scrollTop = selEle.offsetTop - this.$refs.list.clientHeight / 2;\n }\n }\n }\n },\n reset() {\n this.selectedIndex = this.sortedCountries.map((c) => c.iso2).indexOf(this.activeCountryCode);\n this.open = false;\n },\n setDropdownPosition() {\n const spaceBelow = window.innerHeight - this.$el.getBoundingClientRect().bottom;\n const hasEnoughSpaceBelow = spaceBelow > 200;\n if (hasEnoughSpaceBelow) {\n this.dropdownOpenDirection = \"below\";\n } else {\n this.dropdownOpenDirection = \"above\";\n }\n }\n }\n};\nconst _hoisted_1 = [\"aria-expanded\", \"tabindex\"];\nconst _hoisted_2 = { class: \"vti__selection\" };\nconst _hoisted_3 = {\n key: 1,\n class: \"vti__country-code\"\n};\nconst _hoisted_4 = { class: \"vti__dropdown-arrow\" };\nconst _hoisted_5 = [\"onClick\", \"onMousemove\", \"aria-selected\"];\nconst _hoisted_6 = { key: 1 };\nconst _hoisted_7 = [\"type\", \"autocomplete\", \"autofocus\", \"disabled\", \"id\", \"maxlength\", \"name\", \"placeholder\", \"readonly\", \"required\", \"tabindex\", \"value\", \"aria-describedby\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vue-tel-input\", $props.styleClasses, { disabled: $props.disabled }])\n }, [\n withDirectives((openBlock(), createElementBlock(\"div\", {\n \"aria-label\": \"Country Code Selector\",\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": $data.open,\n role: \"button\",\n class: normalizeClass([\"vti__dropdown\", { open: $data.open, disabled: $props.dropdownOptions.disabled }]),\n tabindex: $props.dropdownOptions.tabindex,\n onKeydown: [\n _cache[0] || (_cache[0] = (...args) => $options.keyboardNav && $options.keyboardNav(...args)),\n _cache[2] || (_cache[2] = withKeys((...args) => $options.toggleDropdown && $options.toggleDropdown(...args), [\"space\"])),\n _cache[3] || (_cache[3] = withKeys((...args) => $options.reset && $options.reset(...args), [\"esc\"])),\n _cache[4] || (_cache[4] = withKeys((...args) => $options.reset && $options.reset(...args), [\"tab\"]))\n ],\n onClick: _cache[1] || (_cache[1] = (...args) => $options.toggleDropdown && $options.toggleDropdown(...args))\n }, [\n createElementVNode(\"span\", _hoisted_2, [\n $props.dropdownOptions.showFlags ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: normalizeClass([\"vti__flag\", $data.activeCountryCode.toLowerCase()])\n }, null, 2)) : createCommentVNode(\"\", true),\n $props.dropdownOptions.showDialCodeInSelection ? (openBlock(), createElementBlock(\"span\", _hoisted_3, \" +\" + toDisplayString($options.activeCountry && $options.activeCountry.dialCode), 1)) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"arrow-icon\", { open: $data.open }, () => [\n createElementVNode(\"span\", _hoisted_4, toDisplayString($data.open ? \"\\u25B2\" : \"\\u25BC\"), 1)\n ])\n ]),\n $data.open ? (openBlock(), createElementBlock(\"ul\", {\n key: 0,\n ref: \"list\",\n class: normalizeClass([\"vti__dropdown-list\", $data.dropdownOpenDirection]),\n role: \"listbox\"\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.sortedCountries, (pb, index2) => {\n return openBlock(), createElementBlock(\"li\", {\n role: \"option\",\n class: normalizeClass([\"vti__dropdown-item\", $options.getItemClass(index2, pb.iso2)]),\n key: pb.iso2 + (pb.preferred ? \"-preferred\" : \"\"),\n tabindex: \"-1\",\n onClick: ($event) => $options.choose(pb),\n onMousemove: ($event) => $data.selectedIndex = index2,\n \"aria-selected\": $data.activeCountryCode === pb.iso2 && !pb.preferred\n }, [\n $props.dropdownOptions.showFlags ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: normalizeClass([\"vti__flag\", pb.iso2.toLowerCase()])\n }, null, 2)) : createCommentVNode(\"\", true),\n createElementVNode(\"strong\", null, toDisplayString(pb.name), 1),\n $props.dropdownOptions.showDialCodeInList ? (openBlock(), createElementBlock(\"span\", _hoisted_6, \" +\" + toDisplayString(pb.dialCode), 1)) : createCommentVNode(\"\", true)\n ], 42, _hoisted_5);\n }), 128))\n ], 2)) : createCommentVNode(\"\", true)\n ], 42, _hoisted_1)), [\n [_directive_click_outside, $options.clickedOutside]\n ]),\n withDirectives(createElementVNode(\"input\", {\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event) => $data.phone = $event),\n ref: \"input\",\n type: $props.inputOptions.type,\n autocomplete: $props.inputOptions.autocomplete,\n autofocus: $props.inputOptions.autofocus,\n class: normalizeClass([\"vti__input\", $props.inputOptions.styleClasses]),\n disabled: $props.disabled,\n id: $props.inputOptions.id,\n maxlength: $props.inputOptions.maxlength,\n name: $props.inputOptions.name,\n placeholder: $data.parsedPlaceholder,\n readonly: $props.inputOptions.readonly,\n required: $props.inputOptions.required,\n tabindex: $props.inputOptions.tabindex,\n value: $props.modelValue,\n \"aria-describedby\": $props.inputOptions[\"aria-describedby\"],\n onBlur: _cache[6] || (_cache[6] = (...args) => $options.onBlur && $options.onBlur(...args)),\n onFocus: _cache[7] || (_cache[7] = (...args) => $options.onFocus && $options.onFocus(...args)),\n onInput: _cache[8] || (_cache[8] = (...args) => $options.onInput && $options.onInput(...args)),\n onKeyup: [\n _cache[9] || (_cache[9] = withKeys((...args) => $options.onEnter && $options.onEnter(...args), [\"enter\"])),\n _cache[10] || (_cache[10] = withKeys((...args) => $options.onSpace && $options.onSpace(...args), [\"space\"]))\n ]\n }, null, 42, _hoisted_7), [\n [vModelDynamic, $data.phone]\n ]),\n renderSlot(_ctx.$slots, \"icon-right\")\n ], 2);\n}\nvar VueTelInput = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nvar index = {\n install(app, customOptions = {}) {\n const {\n dropdownOptions: customDropdownOptions,\n inputOptions: customInputOptions,\n ...otherCustomOptions\n } = customOptions;\n const {\n dropdownOptions: defaultDropdownOptions,\n inputOptions: defaultInputOptions,\n ...otherDefaultOptions\n } = defaultOptions;\n utils.options = {\n inputOptions: {\n ...defaultInputOptions,\n ...customInputOptions\n },\n dropdownOptions: {\n ...defaultDropdownOptions,\n ...customDropdownOptions\n },\n ...otherDefaultOptions,\n ...otherCustomOptions\n };\n app.component(\"vue-tel-input\", VueTelInput);\n }\n};\nexport { VueTelInput, index as default };\n","import { getWindow, getDocument } from 'ssr-window';\nvar support;\n\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\nvar device;\n\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + \"x\" + screenHeight) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!device) {\n device = calcDevice(overrides);\n }\n\n return device;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\n\nfunction calcBrowser() {\n var window = getWindow();\n\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\n\nvar supportsResizeObserver = function supportsResizeObserver() {\n var window = getWindow();\n return typeof window.ResizeObserver !== 'undefined';\n};\n\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n observer: null,\n createObserver: function createObserver() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.resize.observer = new ResizeObserver(function (entries) {\n var width = swiper.width,\n height = swiper.height;\n var newWidth = width;\n var newHeight = height;\n entries.forEach(function (_ref) {\n var contentBoxSize = _ref.contentBoxSize,\n contentRect = _ref.contentRect,\n target = _ref.target;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n swiper.resize.resizeHandler();\n }\n });\n swiper.resize.observer.observe(swiper.el);\n },\n removeObserver: function removeObserver() {\n if (swiper.resize.observer && swiper.resize.observer.unobserve && swiper.el) {\n swiper.resize.observer.unobserve(swiper.el);\n swiper.resize.observer = null;\n }\n },\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow();\n\n if (swiper.params.resizeObserver && supportsResizeObserver()) {\n swiper.resize.createObserver();\n return;\n } // Emit resize\n\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n swiper.resize.removeObserver();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends({}, Observer, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(data));\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n var offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.slidesGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n });\n var slidesNumberEvenToRows;\n\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(getDirectionLabel('margin-top'), row !== 0 ? params.spaceBetween && params.spaceBetween + \"px\" : '');\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = getComputedStyle(slide[0]);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n var width = getDirectionPropertyValue(slideStyles, 'width');\n var paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n var paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n var marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n var marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = slideSize + \"px\";\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.setWrapperSize) {\n var _$wrapperEl$css;\n\n $wrapperEl.css((_$wrapperEl$css = {}, _$wrapperEl$css[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css));\n }\n\n if (params.slidesPerColumn > 1) {\n var _$wrapperEl$css2;\n\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n $wrapperEl.css((_$wrapperEl$css2 = {}, _$wrapperEl$css2[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css2));\n\n if (params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n var _slides$filter$css;\n\n var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter(function (_, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css((_slides$filter$css = {}, _slides$filter$css[key] = spaceBetween + \"px\", _slides$filter$css));\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var newHeight = 0;\n var i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n var getSlideByIndex = function getSlideByIndex(index) {\n if (isVirtual) {\n return swiper.slides.filter(function (el) {\n return parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index;\n })[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n var slideIndex;\n\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n\n swiper.emit('slideChangeTransitionStart');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n\n swiper.emit('slideChangeTransitionEnd');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\" + typeof index + \"] given.\");\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\" + index + \"] given.\");\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl,\n enabled = swiper.enabled;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n var normalizedTranslate = -Math.floor(translate * 100);\n var normalizedGird = Math.floor(slidesGrid[i] * 100);\n var normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGird) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGird) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n\n var prevIndex;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper.el.style.cursor = '';\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n var newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n var found = el.closest(selector);\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n enabled = swiper.enabled;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n var noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass;\n var isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, e.target) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.focusableElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n swiper.emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + _increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + _increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n var swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n var wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n\n if (breakpointParams.slidesPerColumnFill && breakpointParams.slidesPerColumnFill === 'column' || !breakpointParams.slidesPerColumnFill && params.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n\n swiper.emitContainerClasses();\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n var isEnabled = swiper.params.enabled;\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n var breakpoint = false;\n var window = getWindow();\n var currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = currentHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n\n if (base === 'window') {\n if (window.matchMedia(\"(min-width: \" + value + \"px)\").matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","function prepareClasses(entries, prefix) {\n var resultClasses = [];\n entries.forEach(function (item) {\n if (typeof item === 'object') {\n Object.keys(item).forEach(function (classNames) {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device,\n support = swiper.support; // prettier-ignore\n\n var suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': support.pointerEvents && !support.touch\n }, {\n 'free-mode': params.freeMode\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'multirow': params.slidesPerColumn > 1\n }, {\n 'multirow-column': params.slidesPerColumn > 1 && params.slidesPerColumnFill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }], params.containerModifierClass);\n classNames.push.apply(classNames, suffixes);\n $el.addClass([].concat(classNames).join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n var isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: false,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n var swipers = [];\n $(params.el).each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n var swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n extend(swiper, {\n enabled: swiper.params.enabled,\n el: el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n var _proto = Swiper.prototype;\n\n _proto.enable = function enable() {\n var swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n };\n\n _proto.disable = function disable() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n };\n\n _proto.setProgress = function setProgress(progress, speed) {\n var swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n var min = swiper.minTranslate();\n var max = swiper.maxTranslate();\n var current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n };\n\n _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\n var swiper = this;\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n };\n\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var updates = [];\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl: slideEl,\n classNames: classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n };\n\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\n if (slides[_i] && !breakLoop) {\n slideSize += slides[_i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n\n return spv;\n };\n\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n };\n\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n };\n\n _proto.mount = function mount(el) {\n var swiper = this;\n if (swiper.mounted) return true; // Find el\n\n var $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n var getWrapperSelector = function getWrapperSelector() {\n return \".\" + (swiper.params.wrapperClass || '').trim().split(' ').join('.');\n };\n\n var getWrapper = function getWrapper() {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n var res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = function (options) {\n return $el.children(options);\n };\n\n return res;\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n var $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n var document = getDocument();\n var wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(\".\" + swiper.params.slideClass).each(function (slideEl) {\n $wrapperEl.append(slideEl);\n });\n }\n\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n };\n\n _proto.init = function init(el) {\n var swiper = this;\n if (swiper.initialized) return swiper;\n var mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n };\n\n _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n };\n\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n };\n\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n\n return Swiper;\n}();\n\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import { getDocument, getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n var window = getWindow();\n var style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n var noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n var keysArray = Object.keys(Object(nextSource)).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n });\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n\n instance[key] = obj[key];\n });\n}\n\nfunction classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n\n return \".\" + classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.');\n}\n\nfunction createElementIfNotDefined($container, params, createElements, checkProps) {\n var document = getDocument();\n\n if (createElements) {\n Object.keys(checkProps).forEach(function (key) {\n if (!params[key] && params.auto === true) {\n var element = document.createElement('div');\n element.className = checkProps[key];\n $container.append(element);\n params[key] = element;\n }\n });\n }\n\n return params;\n}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods, getComputedStyle, classesToSelector, createElementIfNotDefined };","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar reactivity = require('@vue/reactivity');\nvar shared = require('@vue/shared');\n\nfunction warn(msg, ...args) {\n return;\n}\n/**\n * @internal\n */\nfunction assertNumber(val, type) {\n return;\n}\n\nfunction callWithErrorHandling(fn, instance, type, args) {\n let res;\n try {\n res = args ? fn(...args) : fn();\n }\n catch (err) {\n handleError(err, instance, type);\n }\n return res;\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (shared.isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && shared.isPromise(res)) {\n res.catch(err => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n // the exposed instance is the render proxy to keep it consistent with 2.x\n const exposedInstance = instance.proxy;\n // in production the hook receives only the error code\n const errorInfo = type;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n // app-level handling\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(appErrorHandler, null, 10 /* ErrorCodes.APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n {\n // recover in prod to reduce the impact on end-user\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /*#__PURE__*/ Promise.resolve();\nlet currentFlushPromise = null;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\n// #2768\n// Use binary-search to find a suitable position in the queue,\n// so that the queue maintains the increasing order of job's id,\n// which can prevent the job from being skipped and also can avoid repeated patching.\nfunction findInsertionIndex(id) {\n // the start index should be `flushIndex + 1`\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = (start + end) >>> 1;\n const middleJobId = getId(queue[middle]);\n middleJobId < id ? (start = middle + 1) : (end = middle);\n }\n return start;\n}\nfunction queueJob(job) {\n // the dedupe search uses the startIndex argument of Array.includes()\n // by default the search index includes the current job that is being run\n // so it cannot recursively trigger itself again.\n // if the job is a watch() callback, the search will start with a +1 index to\n // allow it recursively trigger itself - it is the user's responsibility to\n // ensure it doesn't end up in an infinite loop.\n if (!queue.length ||\n !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) {\n if (job.id == null) {\n queue.push(job);\n }\n else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!shared.isArray(cb)) {\n if (!activePostFlushCbs ||\n !activePostFlushCbs.includes(cb, cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex)) {\n pendingPostFlushCbs.push(cb);\n }\n }\n else {\n // if cb is an array, it is a component lifecycle hook which can only be\n // triggered by a job, which is already deduped in the main queue, so\n // we can skip duplicate check here to improve perf\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(seen, \n// if currently flushing, skip the current job itself\ni = isFlushing ? flushIndex + 1 : 0) {\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)];\n pendingPostFlushCbs.length = 0;\n // #1947 already has active queue, nested flushPostFlushCbs call\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child so its render effect will have smaller\n // priority number)\n // 2. If a component is unmounted during a parent component's update,\n // its update can be skipped.\n queue.sort(comparator);\n // conditional usage of checkRecursiveUpdate must be determined out of\n // try ... catch block since Rollup by default de-optimizes treeshaking\n // inside try-catch. This can leave all warning code unshaked. Although\n // they would get eventually shaken by a minifier like terser, some minifiers\n // would fail to do that (e.g. https://github.com/evanw/esbuild/issues/1610)\n const check = shared.NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (false && check(job)) ;\n // console.log(`running:`, job.id)\n callWithErrorHandling(job, null, 14 /* ErrorCodes.SCHEDULER */);\n }\n }\n }\n finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs();\n isFlushing = false;\n currentFlushPromise = null;\n // some postFlushCb queued jobs!\n // keep flushing until it drains.\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs();\n }\n }\n}\n\nexports.devtools = void 0;\nlet buffer = [];\nfunction setDevtoolsHook(hook, target) {\n var _a, _b;\n exports.devtools = hook;\n if (exports.devtools) {\n exports.devtools.enabled = true;\n buffer.forEach(({ event, args }) => exports.devtools.emit(event, ...args));\n buffer = [];\n }\n else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== 'undefined' &&\n // some envs mock window but not fully\n window.HTMLElement &&\n // also exclude jsdom\n !((_b = (_a = window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) === null || _b === void 0 ? void 0 : _b.includes('jsdom'))) {\n const replay = (target.__VUE_DEVTOOLS_HOOK_REPLAY__ =\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []);\n replay.push((newHook) => {\n setDevtoolsHook(newHook, target);\n });\n // clear buffer after 3s - the user probably doesn't have devtools installed\n // at all, and keeping the buffer will cause memory leaks (#4738)\n setTimeout(() => {\n if (!exports.devtools) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n buffer = [];\n }\n }, 3000);\n }\n else {\n buffer = [];\n }\n}\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || shared.EMPTY_OBJ;\n let args = rawArgs;\n const isModelListener = event.startsWith('update:');\n // for v-model update:xxx events, apply modifiers on args\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || shared.EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map(a => (shared.isString(a) ? a.trim() : a));\n }\n if (number) {\n args = rawArgs.map(shared.looseToNumber);\n }\n }\n let handlerName;\n let handler = props[(handlerName = shared.toHandlerKey(event))] ||\n // also try camelCase event handler (#2249)\n props[(handlerName = shared.toHandlerKey(shared.camelize(event)))];\n // for v-model update:xxx events, also trigger kebab-case equivalent\n // for props passed via kebab-case\n if (!handler && isModelListener) {\n handler = props[(handlerName = shared.toHandlerKey(shared.hyphenate(event)))];\n }\n if (handler) {\n callWithAsyncErrorHandling(handler, instance, 6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */, args);\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n }\n else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */, args);\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== undefined) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n // apply mixin/extends props\n let hasExtends = false;\n if (!shared.isFunction(comp)) {\n const extendEmits = (raw) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n shared.extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (shared.isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (shared.isArray(raw)) {\n raw.forEach(key => (normalized[key] = null));\n }\n else {\n shared.extend(normalized, raw);\n }\n if (shared.isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\n// Check if an incoming prop key is a declared emit event listener.\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\n// both considered matched listeners.\nfunction isEmitListener(options, key) {\n if (!options || !shared.isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, '');\n return (shared.hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\n shared.hasOwn(options, shared.hyphenate(key)) ||\n shared.hasOwn(options, key));\n}\n\n/**\n * mark the current rendering instance for asset resolution (e.g.\n * resolveComponent, resolveDirective) during render\n */\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\n/**\n * Note: rendering calls maybe nested. The function returns the parent rendering\n * instance if present, which should be restored after the render is done:\n *\n * ```js\n * const prev = setCurrentRenderingInstance(i)\n * // ...render\n * setCurrentRenderingInstance(prev)\n * ```\n */\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = (instance && instance.type.__scopeId) || null;\n return prev;\n}\n/**\n * Set scope id when creating hoisted vnodes.\n * @private compiler helper\n */\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\n/**\n * Technically we no longer need this after 3.0.8 but we need to keep the same\n * API for backwards compat w/ code generated by compilers.\n * @private\n */\nfunction popScopeId() {\n currentScopeId = null;\n}\n/**\n * Only for backwards compat\n * @private\n */\nconst withScopeId = (_id) => withCtx;\n/**\n * Wrap a slot function to memoize current rendering instance\n * @private compiler helper\n */\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot // false only\n) {\n if (!ctx)\n return fn;\n // already normalized\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n // If a user calls a compiled slot inside a template expression (#1745), it\n // can mess up block tracking, so by default we disable block tracking and\n // force bail out when invoking a compiled slot (indicated by the ._d flag).\n // This isn't necessary if rendering a compiled ``, so we flip the\n // ._d flag off when invoking the wrapped fn inside `renderSlot`.\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n }\n finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n return res;\n };\n // mark normalized to avoid duplicated wrapping\n renderFnWithContext._n = true;\n // mark this as compiled by default\n // this is used in vnode.ts -> normalizeChildren() to set the slot\n // rendering flag.\n renderFnWithContext._c = true;\n // disable block tracking by default\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction markAttrsAccessed() {\n}\nfunction renderComponentRoot(instance) {\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx, inheritAttrs } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n try {\n if (vnode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */) {\n // withProxy is a proxy with a different `has` trap only for\n // runtime-compiled render functions using `with` block.\n const proxyToUse = withProxy || proxy;\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\n fallthroughAttrs = attrs;\n }\n else {\n // functional\n const render = Component;\n // in dev, mark attrs accessed if optional props (attrs === props)\n if (false && attrs === props) ;\n result = normalizeVNode(render.length > 1\n ? render(props, false\n ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n }\n : { attrs, slots, emit })\n : render(props, null /* we know it doesn't need it */));\n fallthroughAttrs = Component.props\n ? attrs\n : getFunctionalFallthrough(attrs);\n }\n }\n catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1 /* ErrorCodes.RENDER_FUNCTION */);\n result = createVNode(Comment);\n }\n // attr merging\n // in dev mode, comments are preserved, and it's possible for a template\n // to have comments along side the root element which makes it a fragment\n let root = result;\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 /* ShapeFlags.ELEMENT */ | 6 /* ShapeFlags.COMPONENT */)) {\n if (propsOptions && keys.some(shared.isModelListener)) {\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\n // prop, it indicates this component expects to handle v-model and\n // it should not fallthrough.\n // related: #1543, #1643, #1989\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\n }\n root = cloneVNode(root, fallthroughAttrs);\n }\n }\n }\n // inherit directives\n if (vnode.dirs) {\n // clone before mutating since the root may be a hoisted vnode\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n // inherit transition data\n if (vnode.transition) {\n root.transition = vnode.transition;\n }\n {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nfunction filterSingleRoot(children) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n // ignore user comment\n if (child.type !== Comment || child.children === 'v-if') {\n if (singleRoot) {\n // has more than 1 non-comment child, return now\n return;\n }\n else {\n singleRoot = child;\n }\n }\n }\n else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === 'class' || key === 'style' || shared.isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!shared.isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n // force child update for runtime directive or transition on component vnode.\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024 /* PatchFlags.DYNAMIC_SLOTS */) {\n // slot content that references values that might have changed,\n // e.g. in a v-for\n return true;\n }\n if (patchFlag & 16 /* PatchFlags.FULL_PROPS */) {\n if (!prevProps) {\n return !!nextProps;\n }\n // presence of this flag indicates props are always non-null\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n else if (patchFlag & 8 /* PatchFlags.PROPS */) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] &&\n !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n }\n else {\n // this path is only taken by manually written render functions\n // so presence of any children leads to a forced update\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] &&\n !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\n) {\n while (parent && parent.subTree === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n }\n}\n\nconst isSuspense = (type) => type.__isSuspense;\n// Suspense exposes a component-like API, and is treated like a component\n// in the compiler, but internally it's a special built-in type that hooks\n// directly into the renderer.\nconst SuspenseImpl = {\n name: 'Suspense',\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, \n // platform-specific impl passed from renderer\n rendererInternals) {\n if (n1 == null) {\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);\n }\n else {\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\n// Force-casted public typing for h and TSX props inference\nconst Suspense = (SuspenseImpl\n );\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (shared.isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\n const { p: patch, o: { createElement } } = rendererInternals;\n const hiddenContainer = createElement('div');\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals));\n // start mounting the content subtree in an off-dom container\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);\n // now check if we have encountered any async deps\n if (suspense.deps > 0) {\n // has async\n // invoke @fallback event\n triggerEvent(vnode, 'onPending');\n triggerEvent(vnode, 'onFallback');\n // mount the fallback tree\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds);\n setActiveBranch(suspense, vnode.ssFallback);\n }\n else {\n // Suspense has no async deps. Just resolve.\n suspense.resolve();\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = (n2.suspense = n1.suspense);\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n // same root type but content may have changed.\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n else if (isInFallback) {\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newFallback);\n }\n }\n else {\n // toggled before pending tree is resolved\n suspense.pendingId++;\n if (isHydrating) {\n // if toggled before hydration is finished, the current DOM tree is\n // no longer valid. set it as the active branch so it will be unmounted\n // when resolved\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n }\n else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n // increment pending ID. this is used to invalidate async callbacks\n // reset suspense state\n suspense.deps = 0;\n // discard effects from pending branch\n suspense.effects.length = 0;\n // discard previous container\n suspense.hiddenContainer = createElement('div');\n if (isInFallback) {\n // already in fallback state\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n else {\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newFallback);\n }\n }\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n // toggled \"back\" to current active branch\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n // force resolve\n suspense.resolve(true);\n }\n else {\n // switched to a 3rd branch\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n }\n else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n // root did not change, just normal patch\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newBranch);\n }\n else {\n // root node toggled\n // invoke @pending event\n triggerEvent(n2, 'onPending');\n // mount pending branch in off-dom container\n suspense.pendingBranch = newBranch;\n suspense.pendingId++;\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n // incoming branch has no async deps, resolve now.\n suspense.resolve();\n }\n else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n }\n else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\n const timeout = vnode.props ? shared.toNumber(vnode.props.timeout) : undefined;\n const suspense = {\n vnode,\n parent,\n parentComponent,\n isSVG,\n container,\n hiddenContainer,\n anchor,\n deps: 0,\n pendingId: 0,\n timeout: typeof timeout === 'number' ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: true,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false) {\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n }\n else if (!resume) {\n const delayEnter = activeBranch &&\n pendingBranch.transition &&\n pendingBranch.transition.mode === 'out-in';\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(pendingBranch, container, anchor, 0 /* MoveType.ENTER */);\n }\n };\n }\n // this is initial anchor on mount\n let { anchor } = suspense;\n // unmount current active tree\n if (activeBranch) {\n // if the fallback tree was mounted, it may have been moved\n // as part of a parent suspense. get the latest anchor for insertion\n anchor = next(activeBranch);\n unmount(activeBranch, parentComponent, suspense, true);\n }\n if (!delayEnter) {\n // move content from off-dom container to actual container\n move(pendingBranch, container, anchor, 0 /* MoveType.ENTER */);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n // flush buffered effects\n // check if there is a pending parent suspense\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n // found a pending parent suspense, merge buffered post jobs\n // into that parent\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n // no pending parent suspense, flush all jobs\n if (!hasUnresolvedAncestor) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n // invoke @resolve event\n triggerEvent(vnode, 'onResolve');\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\n // invoke @fallback event\n triggerEvent(vnode, 'onFallback');\n const anchor = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n // mount the fallback tree\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n // unmount current active branch\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\n true // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container, anchor, type) {\n suspense.activeBranch &&\n move(suspense.activeBranch, container, anchor, type);\n suspense.container = container;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance\n .asyncDep.catch(err => {\n handleError(err, instance, 0 /* ErrorCodes.SETUP_FUNCTION */);\n })\n .then(asyncSetupResult => {\n // retry when the setup() promise resolves.\n // component may have been unmounted before resolve.\n if (instance.isUnmounted ||\n suspense.isUnmounted ||\n suspense.pendingId !== instance.suspenseId) {\n return;\n }\n // retry from this component\n instance.asyncResolved = true;\n const { vnode } = instance;\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n // vnode may have been replaced if an update happened before the\n // async dep is resolved.\n vnode.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(instance, vnode, \n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el), \n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode.el);\n // only decrease deps count if suspense is not already resolved\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\n }\n if (suspense.pendingBranch) {\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n /* eslint-disable no-restricted-globals */\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, slotScopeIds, optimized, rendererInternals, true /* hydrating */));\n // there are two possible scenarios for server-rendered suspense:\n // - success: ssr content should be fully resolved\n // - failure: ssr content should be the fallback branch.\n // however, on the client we don't really know if it has failed or not\n // attempt to hydrate the DOM assuming it has succeeded, but we still\n // need to construct a suspense boundary first\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, slotScopeIds, optimized);\n if (suspense.deps === 0) {\n suspense.resolve();\n }\n return result;\n /* eslint-enable no-restricted-globals */\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32 /* ShapeFlags.SLOTS_CHILDREN */;\n vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);\n vnode.ssFallback = isSlotChildren\n ? normalizeSuspenseSlot(children.fallback)\n : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (shared.isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n // disableTracking: false\n // allow block tracking for compiled slots\n // (see ./componentRenderContext.ts)\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (shared.isArray(s)) {\n const singleChild = filterSingleRoot(s);\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter(c => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (shared.isArray(fn)) {\n suspense.effects.push(...fn);\n }\n else {\n suspense.effects.push(fn);\n }\n }\n else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n const el = (vnode.el = branch.el);\n // in case suspense is the root node of a component,\n // recursively update the HOC el\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\n\nfunction provide(key, value) {\n if (!currentInstance) ;\n else {\n let provides = currentInstance.provides;\n // by default an instance inherits its parent's provides object\n // but when it needs to provide values of its own, it creates its\n // own provides object using parent provides object as prototype.\n // this way in `inject` we can simply look up injections from direct\n // parent and let the prototype chain do the work.\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n // TS doesn't allow symbol as index type\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n // fallback to `currentRenderingInstance` so that this can be called in\n // a functional component\n const instance = currentInstance || currentRenderingInstance;\n if (instance) {\n // #2400\n // to support `app.use` plugins,\n // fallback to appContext's `provides` if the instance is at root\n const provides = instance.parent == null\n ? instance.vnode.appContext && instance.vnode.appContext.provides\n : instance.parent.provides;\n if (provides && key in provides) {\n // TS doesn't allow symbol as index type\n return provides[key];\n }\n else if (arguments.length > 1) {\n return treatDefaultAsFactory && shared.isFunction(defaultValue)\n ? defaultValue.call(instance.proxy)\n : defaultValue;\n }\n else ;\n }\n}\n\n// Simple effect.\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(effect, null, { flush: 'post' });\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(effect, null, { flush: 'sync' });\n}\n// initial value for watchers to trigger on undefined initial values\nconst INITIAL_WATCHER_VALUE = {};\n// implementation\nfunction watch(source, cb, options) {\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = shared.EMPTY_OBJ) {\n const instance = reactivity.getCurrentScope() === (currentInstance === null || currentInstance === void 0 ? void 0 : currentInstance.scope) ? currentInstance : null;\n // const instance = currentInstance\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (reactivity.isRef(source)) {\n getter = () => source.value;\n forceTrigger = reactivity.isShallow(source);\n }\n else if (reactivity.isReactive(source)) {\n getter = () => source;\n deep = true;\n }\n else if (shared.isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some(s => reactivity.isReactive(s) || reactivity.isShallow(s));\n getter = () => source.map(s => {\n if (reactivity.isRef(s)) {\n return s.value;\n }\n else if (reactivity.isReactive(s)) {\n return traverse(s);\n }\n else if (shared.isFunction(s)) {\n return callWithErrorHandling(s, instance, 2 /* ErrorCodes.WATCH_GETTER */);\n }\n else ;\n });\n }\n else if (shared.isFunction(source)) {\n if (cb) {\n // getter with cb\n getter = () => callWithErrorHandling(source, instance, 2 /* ErrorCodes.WATCH_GETTER */);\n }\n else {\n // no cb -> simple effect\n getter = () => {\n if (instance && instance.isUnmounted) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(source, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [onCleanup]);\n };\n }\n }\n else {\n getter = shared.NOOP;\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4 /* ErrorCodes.WATCH_CLEANUP */);\n };\n };\n // in SSR there is no need to setup an actual effect, and it should be noop\n // unless it's eager or sync flush\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n // we will also not call the invalidate callback (+ runner is not set up)\n onCleanup = shared.NOOP;\n if (!cb) {\n getter();\n }\n else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [\n getter(),\n isMultiSource ? [] : undefined,\n onCleanup\n ]);\n }\n if (flush === 'sync') {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n }\n else {\n return shared.NOOP;\n }\n }\n let oldValue = isMultiSource\n ? new Array(source.length).fill(INITIAL_WATCHER_VALUE)\n : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active) {\n return;\n }\n if (cb) {\n // watch(source, cb)\n const newValue = effect.run();\n if (deep ||\n forceTrigger ||\n (isMultiSource\n ? newValue.some((v, i) => shared.hasChanged(v, oldValue[i]))\n : shared.hasChanged(newValue, oldValue)) ||\n (false )) {\n // cleanup before running cb again\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE\n ? undefined\n : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE\n ? []\n : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n }\n else {\n // watchEffect\n effect.run();\n }\n };\n // important: mark the job as a watcher callback so that scheduler knows\n // it is allowed to self-trigger (#1727)\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === 'sync') {\n scheduler = job; // the scheduler function gets called directly\n }\n else if (flush === 'post') {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n }\n else {\n // default: 'pre'\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new reactivity.ReactiveEffect(getter, scheduler);\n // initial run\n if (cb) {\n if (immediate) {\n job();\n }\n else {\n oldValue = effect.run();\n }\n }\n else if (flush === 'post') {\n queuePostRenderEffect(effect.run.bind(effect), instance && instance.suspense);\n }\n else {\n effect.run();\n }\n const unwatch = () => {\n effect.stop();\n if (instance && instance.scope) {\n shared.remove(instance.scope.effects, effect);\n }\n };\n if (ssrCleanup)\n ssrCleanup.push(unwatch);\n return unwatch;\n}\n// this.$watch\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = shared.isString(source)\n ? source.includes('.')\n ? createPathGetter(publicThis, source)\n : () => publicThis[source]\n : source.bind(publicThis, publicThis);\n let cb;\n if (shared.isFunction(value)) {\n cb = value;\n }\n else {\n cb = value.handler;\n options = value;\n }\n const cur = currentInstance;\n setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n if (cur) {\n setCurrentInstance(cur);\n }\n else {\n unsetCurrentInstance();\n }\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split('.');\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, seen) {\n if (!shared.isObject(value) || value[\"__v_skip\" /* ReactiveFlags.SKIP */]) {\n return value;\n }\n seen = seen || new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (reactivity.isRef(value)) {\n traverse(value.value, seen);\n }\n else if (shared.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], seen);\n }\n }\n else if (shared.isSet(value) || shared.isMap(value)) {\n value.forEach((v) => {\n traverse(v, seen);\n });\n }\n else if (shared.isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], seen);\n }\n }\n return value;\n}\n\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevTransitionKey;\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n // locate first non-comment child\n for (const c of children) {\n if (c.type !== Comment) {\n child = c;\n break;\n }\n }\n }\n // there's no need to track reactivity for these props so use the raw\n // props for a bit better perf\n const rawProps = reactivity.toRaw(props);\n const { mode } = rawProps;\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n // in the case of , we need to\n // compare the type of the kept-alive children.\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n let transitionKeyChanged = false;\n const { getTransitionKey } = innerChild.type;\n if (getTransitionKey) {\n const key = getTransitionKey();\n if (prevTransitionKey === undefined) {\n prevTransitionKey = key;\n }\n else if (key !== prevTransitionKey) {\n prevTransitionKey = key;\n transitionKeyChanged = true;\n }\n }\n // handle mode\n if (oldInnerChild &&\n oldInnerChild.type !== Comment &&\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\n // update old tree's hooks in case of dynamic transition\n setTransitionHooks(oldInnerChild, leavingHooks);\n // switching between different views\n if (mode === 'out-in') {\n state.isLeaving = true;\n // return placeholder node and queue update when leave finishes\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n // #6835\n // it also needs to be updated when active is undefined\n if (instance.update.active !== false) {\n instance.update();\n }\n };\n return emptyPlaceholder(child);\n }\n else if (mode === 'in-out' && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n // early removal callback\n el._leaveCb = () => {\n earlyRemove();\n el._leaveCb = undefined;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\n// The transition hooks are attached to the vnode as vnode.transition\n// and will be called at appropriate timing in the renderer.\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook &&\n callWithAsyncErrorHandling(hook, instance, 9 /* ErrorCodes.TRANSITION_HOOK */, args);\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (shared.isArray(hook)) {\n if (hook.every(hook => hook.length <= 1))\n done();\n }\n else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n }\n else {\n return;\n }\n }\n // for same element (v-show)\n if (el._leaveCb) {\n el._leaveCb(true /* cancelled */);\n }\n // for toggled element with same key (v-if)\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode &&\n isSameVNodeType(vnode, leavingVNode) &&\n leavingVNode.el._leaveCb) {\n // force early removal (not cancelled)\n leavingVNode.el._leaveCb();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n }\n else {\n return;\n }\n }\n let called = false;\n const done = (el._enterCb = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n }\n else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el._enterCb = undefined;\n });\n if (hook) {\n callAsyncHook(hook, [el, done]);\n }\n else {\n done();\n }\n },\n leave(el, remove) {\n const key = String(vnode.key);\n if (el._enterCb) {\n el._enterCb(true /* cancelled */);\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = (el._leaveCb = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n }\n else {\n callHook(onAfterLeave, [el]);\n }\n el._leaveCb = undefined;\n if (leavingVNodesCache[key] === vnode) {\n delete leavingVNodesCache[key];\n }\n });\n leavingVNodesCache[key] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n }\n else {\n done();\n }\n },\n clone(vnode) {\n return resolveTransitionHooks(vnode, props, state, instance);\n }\n };\n return hooks;\n}\n// the placeholder really only handles one special case: KeepAlive\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\n// placeholder with empty content to avoid the KeepAlive instance from being\n// unmounted.\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode)\n ? vnode.children\n ? vnode.children[0]\n : undefined\n : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 /* ShapeFlags.COMPONENT */ && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n }\n else if (vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n }\n else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n // #5360 inherit parent key in case of