1 line
3.7 MiB
1 line
3.7 MiB
{"version":3,"mappings":"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","names":["getFirstDay","intl","getCanonicalLocale","weekInfo","getDayNames","locale","getDayNamesMin","formatRelativeTime","timestamp","opts","options","getLanguage","date","formatter","seconds","minutes","hours","days","weeks","months","format","isBrowser","isRouteComponent","component","isESModule","obj","assign","applyToParams","fn","params","newParams","key","value","isArray","noop","mergeOptions","defaults","partialOptions","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","text","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","decode","TRAILING_SLASH_RE","removeTrailingSlash","path","parseURL","parseQuery$1","location","currentLocation","query","searchString","hash","hashPos","searchPos","resolveRelativePath","stringifyURL","stringifyQuery$1","stripBase","pathname","base","isSameRouteLocation","a","b","aLastIndex","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","isSameRouteLocationParamsValue","isEquivalentArray","i","to","from","fromSegments","toSegments","lastToSegment","position","toPosition","segment","START_LOCATION_NORMALIZED","NavigationType","NavigationType$1","NavigationDirection","NavigationDirection$1","normalizeBase","baseEl","BEFORE_HASH_RE","createHref","getElementPosition","el","offset","docRect","elRect","computeScrollPosition","scrollToPosition","scrollToOptions","positionEl","isIdSelector","getScrollKey","delta","scrollPositions","saveScrollPosition","scrollPosition","getSavedScrollPosition","scroll","isRouteLocation","route","isRouteName","name","ErrorTypes","ErrorTypes$1","NavigationFailureSymbol","createRouterError","type","isNavigationFailure","error","parseQuery","search","searchParams","searchParam","eqPos","currentValue","stringifyQuery","v","value$1","normalizeQuery","normalizedQuery","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","useCallbacks","handlers","add","handler","reset","guardToPromiseFn","guard","record","runWithContext","enterCallbackArray","resolve","reject","next","valid","guardReturn","guardCall","err","extractComponentsGuards","matched","guardType","guards","rawComponent","componentPromise","resolved","resolvedComponent","extractChangingRecords","leavingRecords","updatingRecords","enteringRecords","len","recordFrom","recordTo","createBaseLocation","createCurrentLocation","location$1","slicePos","pathFromHash","useHistoryListeners","historyState","replace","listeners","teardowns","pauseState","popStateHandler","state","fromState","listener","pauseListeners","listen","callback","teardown","index","beforeUnloadListener","history$1","destroy","buildState","back","current","forward","replaced","computeScroll","useHistoryStateNavigation","changeLocation","replace$1","hashIndex","url","data","push","currentState","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","TokenType","TokenType$1","TokenizerState","TokenizerState$1","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","message","buffer","previousState","tokens","finalizeSegment","char","customRe","consumeBuffer","addCharToBuffer","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","PathScore","PathScore$1","REGEX_CHARS_RE","tokensToParser","segments","extraOptions","score","pattern","keys","segmentScores","tokenIndex","token","subSegmentScore","repeatable","optional","regexp","re$1","subPattern","re","parse","match","stringify","avoidDuplicatedSlash","param","compareScoreArray","diff","comparePathParserScore","aScore","bScore","comp","isLastScoreNegative","last","PATH_PARSER_OPTIONS_DEFAULTS","createRouteRecordMatcher","parent","parser","matcher","createRouterMatcher","routes","globalOptions","matchers","matcherMap","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","normalizedRecords","aliases","alias","originalMatcher","normalizedRecord","parentPath","connectingSlash","isAliasRecord","removeRoute","isMatchable","insertMatcher","children","matcherRef","getRoutes","findInsertionIndex","pickParams","k","m","parentMatcher","mergeMetaFields","clearRoutes","normalized","normalizeRecordProps","propsObject","props","meta","lower","upper","mid","insertionAncestor","getInsertionAncestor","ancestor","useLink","router","inject","currentRoute","computed","unref","activeRecordIndex","length","routeMatched","currentMatched","parentRecordPath","getOriginalPath","isActive","includesParams","isExactActive","navigate","e","guardEvent","p","preferSingleVNode","vnodes","RouterLinkImpl","defineComponent","slots","link","reactive","elClass","getLinkClass","h","RouterLink","target","outer","inner","innerValue","outerValue","propClass","globalClass","defaultClass","RouterViewImpl","attrs","injectedRoute","routeToDisplay","injectedDepth","depth","initialDepth","matchedRoute","matchedRouteRef","provide","viewRef","ref","watch","instance","oldInstance","oldName","currentName","ViewComponent","normalizeSlot","routePropsOption","routeProps","vnode","slot","slotContent","RouterView","createRouter","beforeGuards","beforeResolveGuards","afterGuards","shallowRef","pendingLocation","normalizeParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","matchedRoute$1","href$1","matcherLocation","targetParams","fullPath","href","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","redirect","newTargetLocation","redirectedFrom","targetLocation","force","shouldRedirect","toLocation","failure","handleScroll","markAsReady","triggerError","failure$1","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","app","installedApps","canceledNavigationCheck","runGuardQueue","beforeEnter","isPush","isFirstNavigation","removeHistoryListener","setupListeners","_from","info","readyHandlers","errorListeners","ready","list","isReady","resolve$1","scrollBehavior","nextTick","started","reactiveRoute","shallowReactive","unmountApp","promise","basename","extname2","dirname","sections","extname","join","args","nonEmptyArgs","arg","lastArg","leadingSlash","trailingSlash","acc","section","first","GettextWrapper","pluralFunction","bundle","dict","msgid","msgidPlural","msgstr","original","placeholders","translate","singular","plural","count","translatePlural","GettextBuilder","language","wrapper","n","getPlural","getGettextBuilder","tryOnScopeDispose","failSilently","getCurrentScope","onScopeDispose","localProvidedStateMap","injectLocal","_getCurrentInstance","getCurrentInstance","owner","hasInjectionContext","isClient","notNullish","val","toString","isObject","toRef","toRef$1","r","readonly","customRef","pxValue","px","toArray","getLifeCycleTarget","createSharedComposable","composable","subscribers","scope","dispose","effectScope","tryOnMounted","sync","onMounted","useIntervalFn","cb","interval","immediate","immediateCallback","timer","clean","pause","resume","intervalValue","toValue","isRef","shallowReadonly","watchImmediate","source","defaultWindow","unrefElement","elRef","_$el","plain","useEventListener","register","event","firstParamTargets","test","_firstParamTargets$va","_firstParamTargets$va2","raw_targets","raw_events","raw_listeners","raw_options","_","onCleanup","optionsClone","cleanups","onClickOutside","window$1","ignore","capture","detectIframe","controls","shouldListen","shouldIgnore","target$1","hasMultipleRoots","vm","checkMultipleRoots","child","isProcessingClick","cleanup","_window$document$acti","stop","useMounted","isMounted","useSupported","useMutationObserver","mutationOptions","observer","isSupported","stopWatch","items","newTargets","takeRecords","createKeyPredicate","keyFilter","onKeyStroke","eventName","passive","dedupe","predicate","ssrWidthSymbol","useSSRWidth","ssrWidth","useMediaQuery","ssrSupport","mediaQuery","matches","watchEffect","queryString","not","minWidth","maxWidth","res","usePreferredDark","useResizeObserver","observerOptions","_targets","els","_el","useElementSize","initialSize","box","isSVG","_unrefElement","width","height","stop1","entry","boxSize","$elem","rect","formatBoxSize","inlineSize","blockSize","ele","stop2","resolveElement","elInitialOverflow","useScrollLock","element","initialState","isLocked","initialOverflow","lock","unlock","useSwipe","threshold","onSwipe","onSwipeEnd","onSwipeStart","coordsStart","coordsEnd","diffX","diffY","max","abs","isThresholdExceeded","isSwiping","direction","getTouchEventCoords","updateCoordsStart","x","y","updateCoordsEnd","listenerOptions","onTouchEnd","stops","s","createElementId","gettext","t","chunks","chunk","translations","decompressed","id","t0","t1","t2","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","t31","t32","t33","t34","t35","t36","t37","t38","t39","t40","t41","t42","t43","t44","t45","t46","t47","t48","t49","t50","t51","majorVersion","isLegacy","NC_FORM_BOX_CONTEXT_KEY","useNcFormBox","_export_sfc","sfc","_hoisted_1","_hoisted_2","_hoisted_3","_sfc_main","__props","__emit","emit","formBoxItemClass","hasVueRouterContext","tag","hasPressedState","variantWithPressed","isTertiaryVariant","flexAlignment","isReverseAligned","getNcPopoverTriggerAttrs","ncPopoverTriggerAttrs","onClick","_ctx","_cache","openBlock","createBlock","resolveDynamicComponent","mergeProps","withCtx","createElementVNode","renderSlot","createTextVNode","toDisplayString","NcButton","_hoisted_4","useCssVars","iconSize","cleanSvg","svg","DOMPurify","svgDocument","createElementBlock","normalizeClass","NcIconSvgWrapper","_hoisted_5","colors","colors2","createCommentVNode","NcLoadingIcon","isLoading","handleClick","fallback","result","mdiAlert","mdiAlertCircleOutline","mdiAlertDecagram","mdiArrowLeft","mdiArrowRight","mdiCalendarBlank","mdiCheck","mdiCheckboxBlankOutline","mdiCheckboxMarked","mdiCheckboxMarkedCircle","mdiChevronDown","mdiChevronLeft","mdiChevronRight","mdiChevronUp","mdiClock","mdiClose","mdiCloseCircleOutline","mdiDotsHorizontal","mdiEye","mdiEyeOff","mdiInformation","mdiMenu","mdiMenuOpen","mdiPause","mdiPlay","mdiUndo","candidateSelectors","candidateSelector","NoElement","getRootNode","_element$getRootNode","_isInert","node","lookUp","_node$getAttribute","inertAtt","inert","isContentEditable","_node$getAttribute2","attValue","getCandidates","includeContainer","filter","candidates","_getCandidatesIteratively","elements","elementsToCheck","assigned","content","nestedCandidates","validCandidate","shadowRoot","validShadowRoot","_nestedCandidates","hasTabIndex","getTabIndex","getSortOrderTabIndex","isScope","tabIndex","sortOrderedTabbables","isInput","isHiddenInput","isDetailsWithSummary","getCheckedRadio","nodes","form","isTabbableRadio","radioScope","queryRadios","radioSet","checked","isRadio","isNonTabbableRadio","isNodeAttached","_nodeRoot","nodeRoot","nodeRootHost","attached","_nodeRootHost","_nodeRootHost$ownerDo","_node$ownerDocument","_nodeRoot2","_nodeRootHost2","_nodeRootHost2$ownerD","isZeroArea","_node$getBoundingClie","isHidden","_ref","displayCheck","getShadowRoot","visible","isDirectSummary","nodeUnderDetails","originalNode","parentElement","rootNode","isDisabledFromFieldset","parentNode","isNodeMatchingSelectorFocusable","isNodeMatchingSelectorTabbable","isShadowRootTabbable","shadowHostNode","_sortByOrder","regularTabbables","orderedTabbables","item","candidateTabindex","sortable","tabbable","container","focusable","isTabbable","focusableCandidateSelector","isFocusable","_arrayLikeToArray","_arrayWithoutHoles","_defineProperty","_toPropertyKey","_iterableToArray","_nonIterableSpread","ownKeys","o","_objectSpread2","_toConsumableArray","_unsupportedIterableToArray","_toPrimitive","activeFocusTraps","trapStack","trap","activeTrap","trapIndex","isSelectableInput","isEscapeEvent","isTabEvent","isKeyForward","isKeyBackward","delay","valueOrHandler","_len","_key","getActualTarget","internalTrapStack","createFocusTrap","userOptions","doc","config","getOption","configOverrideOptions","optionName","configOptionName","findContainerIndex","composedPath","tabbableNodes","getNodeForOption","_ref2","_ref2$hasFallback","hasFallback","_ref2$params","optionValue","getInitialFocusNode","firstTabbableGroup","firstTabbableNode","updateTabbableNodes","focusableNodes","lastTabbableNode","firstDomTabbableNode","lastDomTabbableNode","posTabIndexesFound","nodeIdx","group","g","_getActiveElement","activeElement","_tryFocus","getReturnFocusNode","previousActiveElement","findNextNavNode","_ref3","_ref3$isBackward","isBackward","destinationNode","containerIndex","containerGroup","startOfGroupIndex","_ref4","destinationGroupIndex","destinationGroup","lastOfGroupIndex","_ref5","_destinationGroupIndex","_destinationGroup","checkPointerDown","checkFocusIn","targetContained","nextNode","navAcrossContainers","mruContainerIdx","mruTabIdx","checkKeyNav","checkTabKey","checkEscapeKey","checkClick","addListeners","removeListeners","checkDomRemoval","mutations","isFocusedNodeRemoved","mutation","removedNodes","mutationObserver","updateObservedNodes","activateOptions","onActivate","onPostActivate","checkCanFocusTrap","finishActivation","deactivateOptions","onDeactivate","onPostDeactivate","checkCanReturnFocus","returnFocus","finishDeactivation","pauseOptions","unpauseOptions","containerElements","elementsAsArray","paused","onPause","onPostPause","onUnpause","onPostUnpause","getTrapStack","createTrapStackController","pausedStack","useTrapStackControl","shouldPause","trapStackController","onUnmounted","sides","alignments","placements","side","min","round","floor","createCoords","oppositeSideMap","oppositeAlignmentMap","clamp","start","end","evaluate","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","yAxisSides","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getSideList","isStart","getOppositeAxisPlacements","flipAlignment","expandPaddingObject","padding","getPaddingObject","rectToClientRect","computeCoordsFromPlacement","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","strategy","middleware","platform","validMiddleware","statefulPlacement","middlewareData","resetCount","nextX","nextY","detectOverflow","_await$platform$isEle","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","offsetParent","offsetScale","elementClientRect","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","shouldAddOffset","alignmentOffset","getPlacementList","autoAlignment","allowedPlacements","autoPlacement","_middlewareData$autoP","_middlewareData$autoP2","_placementsThatFitOnE","crossAxis","detectOverflowOptions","placements$1","overflow","currentIndex","currentPlacement","alignmentSides","currentOverflows","allOverflows","nextPlacement","placementsSortedByMostSpace","d","resetPlacement","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","overflows","overflowsData","_middlewareData$flip2","_overflowsData$filter","nextIndex","_overflowsData$filter2","currentSideAxis","originSides","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","limitShift","rawOffset","computedOffset","limitMin","limitMax","_middlewareData$offse2","isOriginSide","size","_state$middlewareData","_state$middlewareData2","apply","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","l","c","f","u","w","L","E","R","T","C","F","W","D","S","A","H","O","P","B","Ze","$","_e","Te","pe","ae","de","G","le","he","Y","q","Q","xe","Ue","Ye","Xe","Ke","Je","Qe","ne","ue","fe","tt","Pe","ce","et","ot","it","J","ke","Le","st","nt","z","X","Fe","rt","Re","De","pt","Ie","at","M","Z","dt","lt","ht","ut","ft","ct","mt","je","Ve","se","ee","te","K","gt","wt","$e","N","I","j","V","Ee","ve","Se","Ht","kt","logger","getLoggerBuilder","isRtl","isRTL","_sfc_main$1","ncPopover","style0","theme","Dropdown","triggerElements","options2","_sfc_render","$props","$setup","$data","$options","_component_NcPopoverTriggerProvider","resolveComponent","_component_Dropdown","$event","slotProps","normalizeProps","guardReactiveProps","createVNode","cssModules","NcPopover","NC_ACTIONS_IS_SEMANTIC_MENU","NC_ACTIONS_CLOSE_MENU","IconDotsHorizontal","isSlotPopulated","Comment","Fragment","Text","focusableSelector","action","focusList","focusIndex","newFocusIndex","currentActiveElement","focusElement","liMenuParent","indexLength","firstCheckedIndex","button","actions","findActions","actions2","validInlineActions","inlineActions","menuActions","menuItemsActions","textInputActions","linkActions","hasTextInputAction","hasMenuItemAction","hasLinkAction","renderInlineAction","iconProp","icon","buttonText","title","propsToForward","renderActionsPopover","triggerIcon","triggerRandomId","NcActions","FEW_SECONDS_AGO","useFormatRelativeTime","timeoutId","relativeTime2","ignoreSeconds","relativeTime","updateRelativeTime","useFormatTime","isMac","disableKeyboardShortcuts","derivedKeysRegex","nonAsciiPrintableRegex","shouldIgnoreEvent","eventHandler","useHotKey","keysOrFilter","validateKeyEvent","isKeyInLowerCase","isEventKeyInLowerCase","stopKeyDown","stopKeyUp","checkIfDarkTheme","backgroundInvertIfDark","INJECTION_KEY_THEME","useIsDarkThemeElement","isDarkTheme","isDarkSystemTheme","updateIsDarkTheme","useInternalIsDarkTheme","useIsDarkTheme","enforcedTheme","isFullscreen","checkIfIsFullscreen","MOBILE_BREAKPOINT","MOBILE_SMALL_BREAKPOINT","isLessThanBreakpoint","breakpoint","isMobile","isSmallMobile","useIsMobile","getSameNodeParent","getSameNodeAncestors","ancestors","useScopeIdAttrs","scopeIds","instance2","scopeId","_hoisted_6","_hoisted_7","mergeModels","cssSlideshowDelay","showModal","useModel","scopeIdAttrs","modalId","maskElement","useTemplateRef","focusTrap","useFocusTrap","clearFocusTrap","isPlaying","stopSlideshow","startSlideshow","nextSlide","animationKey","runSlideshow","stopSwipe","handleSwipe","close","previousSlide","restartSlideshow","handleClickModalWrapper","Teleport","Transition","withDirectives","withModifiers","vShow","NcModal","open","useSlots","wrapperElement","dialogWidth","isNavigationCollapsed","hasNavigation","navigationId","navigationAriaLabelAttr","navigationAriaLabelledbyAttr","dialogRootElement","dialogTagName","dialogListeners","handleButtonClose","handleClosing","handleClosed","modalProps","toHandlers","renderList","idx","NcDialog","ActionGlobalMixin","ActionTextMixin","behavior","attributes","_hoisted_8","_component_NcIconSvgWrapper","normalizeStyle","NcActionButton","modelValue","formattedValue","formatValue","formattedMax","formattedMin","getReadableDate","yyyy","MM","dd","hh","mm","startDate","daysSinceBeginningOfYear","weekNumber","onInput","input","time","timezoneOffsetSeconds","inputDateWithTimezone","NcDateTimePickerNative","getCapabilities","loadState","debounce","function_","wait","storedContext","storedArguments","run","callContext","callArguments","later","debounced","arguments_","callNow","__expose","focus","select","useAttrs","inputElement","hasTrailingIcon","internalPlaceholder","isValidLabel","ariaDescribedby","ariaDescribedby2","handleInput","NcInputField","checkPassword","passwordPolicy","inputFieldInstance","internalHelpMessage","isValid","all","minLengthWithPolicy","axios","generateOcsUrl","toggleVisibility","createSlots","NcPasswordField","defaultTrailingButtonLabels","NcInputFieldPropNames","sharedProps","defineAsyncComponent","__vitePreload","index$1","index$2","_component_NcDateTimePicker","_component_NcDateTimePickerNative","_component_NcSelect","_component_NcPasswordField","_component_NcColorPicker","_component_NcTextField","NcActionInput","NcActionLink","_component_RouterLink","NcActionRouter","NcActionText","U","ie","oe","me","ge","ze","once","func","wasCalled","realAppName","appName","APP_NAME","realAppVersion","appVersion","APP_VERSION","getLocalizedAppName","activeApp","toggleAppNavigationButton","onBeforeUnmount","hide","appNavigationToggle","NcAppContentDetailsToggle","browserStorage","getBuilder","instanceName","Pane","Splitpanes","entries","part","listPaneSize","_component_NcAppContentDetailsToggle","_component_Pane","_component_Splitpanes","NcAppContent","NcAppNavigationList","HAS_APP_NAVIGATION_KEY","CONTENT_SELECTOR_KEY","_hoisted_1$1","NcAppNavigationToggle","setHasAppNavigation","warn","appNavigationContainerElement","toggleFocusTrap","subscribe","toggleNavigationByEventBus","unsubscribe","toggleNavigation","bodyStyles","animationLength","open2","handleEsc","withKeys","NcAppNavigation","actionProps","_value","headingLevel","_component_NcActions","NcAppNavigationCaption","ChevronDown","ChevronUp","IconArrowRight","IconClose","newValue","_component_IconArrowRight","_component_NcButton","_component_IconClose","vModelText","NcInputConfirmCancel","_sfc_main$3","_hoisted_1$2","_hoisted_2$2","_hoisted_3$2","_hoisted_4$2","_sfc_render$3","Pencil","_sfc_main$2","_hoisted_2$1","_hoisted_3$1","_hoisted_4$1","_sfc_render$2","Undo","_sfc_render$1","_component_ChevronUp","_component_ChevronDown","NcAppNavigationIconCollapsible","_sfc_main$4","newVal","routerLinkHref","_component_NcLoadingIcon","_component_NcInputConfirmCancel","_component_Pencil","_component_NcActionButton","_component_Undo","_component_NcAppNavigationIconCollapsible","NcAppNavigationItem","APP_SETTINGS_REGISTRATION_KEY","APP_SETTINGS_LEGACY_DESIGN_KEY","useAppSettingsDialog","legacy","localizedAppName","appSettingsDialogVersion","appSettingsDialogVersion__legacy","NcAppSettingsDialogVersion","registerSection","unregisterSection","settingsScrollerElement","selectedSection","linkClicked","registeredSections","hasNavigationIcons","unfocusNavigationItem","sectionsOrderMap","handleSettingsNavigationClick","handleCloseModal","isOpen","order","otherId","otherName","orderA","orderB","isCollapsed","NcAppSettingsDialog","stopClickOutsideMap","vOnClickOutside","binding","onScrollLock","LOCALHOST","COLON","Options","defaultRender","ignoredTags","uppercaseIgnoredTags","ir","operator","isCallable","option","MultiToken","scheme","truncate","formatted","protocol","formattedHref","tagName","className","rel","eventListeners","createTokenClass","Token","getRoute","removePrefix","str","prefix","removePrefixes","prefixes","isAbsoluteURL","isNonHttpLink","getBaseUrl","relativeUrl","relativeRouterBase","getRootUrl","potentialRouterPath","getEnabledContactsMenuActions","Color","toHex","int","calculateStepIncrement","steps","color1","color2","mixPalette","palette","increment","COLOR_RED","COLOR_YELLOW","COLOR_BLUE","COLOR_BLACK","COLOR_WHITE","defaultPalette","generatePalette","palette1","palette2","palette3","hashCode","Md5","finalInt","usernameToColor","username","finalPalette","global","Symbol","STATE_PLAINTEXT","STATE_HTML","STATE_COMMENT","ALLOWED_TAGS_REGEX","NORMALIZE_TAG_REGEX","striptags","html","allowable_tags","tag_replacement","context","init_context","striptags_internal","init_striptags_stream","parse_allowable_tags","tag_buffer","in_quote_char","output","normalize_tag","tag_set","module","this","getAvatarUrl","user","guestUrl","themeUrl","generateUrl","awaySvg","busySvg","dndSvg","invisibleSvg","onlineSvg","getUserStatusText","status","isInvisible","ariaLabel","matchSvg","activeSvg","NcUserStatusIcon","userStatus","userId","capabilities","getCurrentUser","getUserHasAvatar","flag","setUserHasAvatar","initials","filteredChars","filtered","escape","emojiIcon","avatarUrl","srcset","userHasAvatar","img","_component_IconDotsHorizontal","_component_NcUserStatusIcon","_directive_click_outside","resolveDirective","NcAvatar","has","Events","EE","addListener","emitter","evt","clearEvent","EventEmitter","names","events","a1","a2","a3","a4","a5","TimeoutError","getAbortedReason","signal","pTimeout","milliseconds","customTimers","abortHandler","cancelablePromise","timeoutError","lowerBound","array","comparator","step","PriorityQueue","#queue","priority","PQueue","#carryoverIntervalCount","#isIntervalIgnored","#intervalCount","#intervalCap","#rateLimitedInInterval","#rateLimitFlushScheduled","#interval","#intervalEnd","#lastExecutionTime","#intervalId","#timeoutId","#strict","#strictTicks","#strictTicksStartIndex","#queueClass","#pending","#concurrency","#isPaused","#idAssigner","#runningTasks","#setupRateLimitTracking","#cleanupStrictTicks","now","oldestTick","#consumeIntervalSlot","#rollbackIntervalSlot","#getActiveTicksCount","#doesIntervalAllowAnother","#doesConcurrentAllowAnother","#next","#tryToStartAnother","#onResumeInterval","#onInterval","#initializeIntervalIfNeeded","#isIntervalPausedAt","#createIntervalTimeout","timeSinceLastExecution","#clearIntervalTimer","#clearTimeoutTimer","taskStarted","canInitializeInterval","job","#scheduleRateLimitUpdate","#processQueue","newConcurrency","taskSymbol","eventListener","#rollbackIntervalConsumption","operation","_resolve","functions","#updateRateLimitState","#onEvent","limit","handleError","previous","shouldBeRateLimited","task","color","cx","iconToggleSwitch","NcIconToggleSwitch","INSIDE_RADIO_GROUP_KEY","useInsideRadioGroup","_sfc_main$6","_hoisted_1$6","_hoisted_2$5","_hoisted_3$5","_hoisted_4$4","_sfc_render$6","CheckboxBlankOutline","_sfc_main$5","_hoisted_1$5","_hoisted_2$4","_hoisted_3$4","_hoisted_4$3","_sfc_render$5","CheckboxMarked","_hoisted_1$4","_hoisted_2$3","_hoisted_3$3","_sfc_render$4","MinusBox","_hoisted_1$3","RadioboxBlank","RadioboxMarked","TYPE_CHECKBOX","TYPE_RADIO","TYPE_SWITCH","TYPE_BUTTON","_component_NcIconToggleSwitch","NcCheckboxContent","radioGroup","internalType","internalModelValue","values","__injectCSSVars__","__setup__","ctx","_component_NcCheckboxContent","NcCheckboxRadioSwitch","hasWindow","getNodeName","isNode","getWindow","getDocumentElement","isElement","isHTMLElement","isShadowRoot","invalidOverflowDisplayValues","isOverflowElement","overflowX","overflowY","display","getComputedStyle","tableElements","isTableElement","topLayerSelectors","isTopLayer","selector","transformProperties","willChangeValues","containValues","isContainingBlock","elementOrCss","webkit","isWebKit","css","getContainingBlock","currentNode","getParentNode","isLastTraversableNode","lastTraversableNodeNames","getNodeScroll","getNearestOverflowAncestor","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","frameElement","getFrameElement","getCssDimensions","getComputedStyle$1","hasOffset","offsetWidth","offsetHeight","shouldFallback","unwrapElement","getScale","domElement","noOffsets","getVisualOffsets","shouldAddVisualOffsets","isFixed","floatingOffsetParent","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","left","top","getWindowScrollBarX","leftScroll","getHTMLOffset","documentElement","htmlRect","convertOffsetParentRelativeRectToViewportRelativeRect","topLayer","offsets","isOffsetParentAnElement","offsetRect","htmlOffset","getClientRects","getDocumentRect","body","SCROLLBAR_MAX","getViewportRect","visualViewport","visualViewportBased","windowScrollbarX","bodyMarginInline","clippingStableScrollbarWidth","absoluteOrFixed","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","getClippingElementAncestors","cache","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","getClippingRect","clippingAncestors","firstClippingAncestor","clippingRect","accRect","getDimensions","getRectRelativeToOffsetParent","setLeftRTLScrollbarOffset","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","getOffsetParent","svgOffsetParent","getElementRects","getOffsetParentFn","getDimensionsFn","floatingDimensions","rectsAreEqual","observeMove","onMove","io","root","_io","refresh","skip","elementRectForRootMargin","insetTop","insetRight","insetBottom","insetLeft","isFirstUpdate","handleObserve","ratio","autoUpdate","update","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","cleanupIo","reobserveFrame","resizeObserver","firstEntry","_resizeObserver","frameId","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","offset$1","shift$1","flip$1","limitShift$1","mergedOptions","platformWithCache","computePosition$1","ye","be","Oe","we","Ce","findRanges","ranges","range","validRanges","mergedRanges","currentRange","_component_NcHighlight","NcEllipsisedOption","VueSelect","allProps","mixin","optionLabel","noDrop","map","clickableArea","gridBaseLine","dropdownMenu","addClass","togglePlacementClass","updatePosition","vueSelectKeys","_component_NcEllipsisedOption","_component_VueSelect","selectedOption","spinner","NcSelect","styleInject","insertAt","head","style","install","componentPrefix","_checkboardCache","script","getCheckboard","renderCheckboard","c1","c2","canvas","checkboard","render","css_248z","script$1","rgba","rgbStr","containerWidth","xOffset","_component_Checkboard","bound01","isOnePointZero","isPercent","isPercentage","clamp01","boundAlpha","convertToPercentage","pad2","rgbToRgb","rgbToHsl","hue2rgb","hslToRgb","rgbToHsv","hsvToRgb","mod","rgbToHex","allow3Char","hex","rgbaToHex","allow4Char","convertDecimalToHex","convertHexToDecimal","parseIntFromHex","numberInputToObject","inputToRGB","rgb","ok","stringInputToObject","isValidCSSUnit","CSS_INTEGER","CSS_NUMBER","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","named","TinyColor","_a","RsRGB","GsRGB","BsRGB","alpha","hsv","hsl","allowShortChar","fmt","rnd","_i","_b","formatSet","formattedString","hasAlpha","needsAlphaFormat","amount","hue","rgb1","rgb2","results","slices","ret","modification","background","fg","bg","tinycolor","_colorChange","oldHue","colorMixin","keysToCheck","passed","letter","number","containerHeight","yOffset","pageX","pageY","saturation","bright","oldVal","percent","script$2","script$3","script$4","script$5","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_component_Saturation","_component_Hue","_component_Alpha","_component_EdIn","currentColor","HEX_REGEX","advanced","normalizedPalette","handleConfirm","hideCallback","toggleColor","pickCustomColor","getContrastColor","calculateLuma","red","green","blue","hexToRGB","Chrome","NcColorPicker","contentSvg","navigationSvg","setAppNavigation","hasAppNavigation","currentFocus","currentImage","onBeforeMount","openAppNavigation","NcContent","millisecondsInWeek","millisecondsInDay","millisecondsInMinute","millisecondsInHour","millisecondsInSecond","constructFromSymbol","constructFrom","toDate","argument","addDays","_date","addMonths","dayOfMonth","endOfDesiredMonth","daysInMonth","duration","years","dateWithMonths","dateWithDays","minutesToAdd","msToAdd","addMilliseconds","addHours","defaultOptions","getDefaultOptions","startOfWeek","weekStartsOn","day","startOfISOWeek","getISOWeekYear","year","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getTimezoneOffsetInMilliseconds","utcDate","normalizeDates","dates","normalize","startOfDay","differenceInCalendarDays","laterDate","earlierDate","laterDate_","earlierDate_","laterStartOfDay","earlierStartOfDay","laterTimestamp","earlierTimestamp","startOfISOWeekYear","fourthOfJanuary","addQuarters","addYears","compareAsc","dateLeft","dateRight","isDate","getQuarter","differenceInCalendarYears","differenceInYears","sign","partial","normalizeInterval","eachDayOfInterval","reversed","endTime","startOfQuarter","currentMonth","month","eachQuarterOfInterval","startOfMonth","endOfYear","startOfYear","date_","endOfWeek","endOfQuarter","formatDistanceLocale","formatDistance","tokenValue","buildFormatLongFn","dateFormats","timeFormats","dateTimeFormats","formatLong","formatRelativeLocale","formatRelative","_baseDate","_options","buildLocalizeFn","valuesArray","defaultWidth","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","dirtyNumber","rem100","localize","quarter","buildMatchFn","string","matchPattern","matchResult","matchedString","parsePatterns","findIndex","findKey","rest","object","buildMatchPatternFn","parseResult","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","enUS","getDayOfYear","getISOWeek","getWeekYear","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfWeekYear","firstWeek","getWeek","addLeadingZeros","targetLength","lightFormatters","signedYear","dayPeriodEnumValue","numberOfDigits","fractionalSeconds","dayPeriodEnum","formatters","era","signedWeekYear","weekYear","twoDigitYear","isoWeekYear","week","isoWeek","dayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","_localize","timezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","delimiter","absOffset","dateLongFormatter","timeLongFormatter","dateTimeLongFormatter","datePattern","timePattern","dateTimeFormat","longFormatters","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","_message","subject","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","defaultLocale","originalDate","parts","substring","firstCharacter","longFormatter","cleanEscapedString","formatterOptions","getDay","getDaysInMonth","monthIndex","lastDayOfMonth","getInternalDefaultOptions","getHours","getISODay","getMinutes","getMonth","getSeconds","getYear","isAfter","dateToCompare","isBefore","isEqual","leftDate","rightDate","transpose","constructor","isConstructor","TIMEZONE_UNIT_PRIORITY","Setter","_utcDate","ValueSetter","validateValue","setValue","subPriority","flags","DateTimezoneSetter","Parser","dateString","EraParser","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","dayPeriod","normalizeTwoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","rangeEndCentury","isPreviousCentury","isLeapYearIndex","YearParser","valueCallback","normalizedTwoDigitYear","LocalWeekYearParser","ISOWeekYearParser","_flags","firstWeekOfYear","ExtendedYearParser","QuarterParser","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","setWeek","LocalWeekParser","setISOWeek","ISOWeekParser","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","isLeapYear","DayOfYearParser","setDay","currentDay","dayIndex","DayParser","LocalDayParser","wholeWeekDays","StandAloneLocalDayParser","setISODay","ISODayParser","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","isPM","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","SecondParser","FractionOfSecondParser","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","notWhitespaceRegExp","dateStr","referenceDate","invalidDate","subFnOptions","setters","usedTokens","incompatibleTokens","incompatibleToken","usedToken","uniquePrioritySetters","setter","setterArray","isSameQuarter","dateLeft_","dateRight_","subDays","setMonth","midMonth","set","setHours","setMilliseconds","setMinutes","setSeconds","setYear","subMonths","sub","withoutMonths","withoutDays","minutesToSub","msToSub","subYears","jt","Jn","Sn","Ua","Va","ja","Ka","Ga","Qa","La","wl","Dl","Ml","Ot","$l","Lt","un","Al","Tl","qa","Ja","Pn","Sl","Pl","Rn","Xa","Ne","dn","cn","Cn","Rl","Zt","Dt","Cl","Ol","Fa","Za","Ta","ca","Bl","qe","_l","On","Bn","Na","da","dl","Yl","Il","ol","Mt","ul","il","wn","Dn","Be","Ft","Nt","_t","xt","Sa","Bt","yt","$t","zt","_n","Me","Yn","Wt","In","bn","El","Ct","Wa","kn","En","sl","Nn","Jt","Ll","Nl","Ln","It","oa","za","Fl","Pa","Ra","vn","Ca","zl","Hl","Fn","xa","Ha","mn","cl","zn","Kt","ea","Hn","Oa","sa","Ba","Ya","At","pn","Wl","gn","Ul","Vl","jl","Kl","Gl","Ql","ql","Xl","Jl","Zl","xl","er","Ia","tr","ar","nr","lr","rr","qt","fl","Ae","or","Tt","Mn","$n","va","sr","ur","We","Ut","He","dr","cr","fr","vr","ta","ga","Zn","Xt","ua","ia","mr","ma","pr","Qt","gr","Wn","aa","xn","Vt","Ge","en","tn","pa","Un","Vn","jn","An","Gt","vl","yr","na","hr","Yt","br","kr","wr","Dr","Mr","$r","Ar","Tr","Sr","Pr","Tn","ml","fa","Rr","Cr","Or","Br","Kn","Gn","_r","Yr","Ir","Er","Nr","Lr","Fr","zr","Hr","Wr","Ur","Vr","jr","Kr","Gr","pl","gl","yn","Qr","Pt","$a","Rt","ra","Aa","Xn","vt","St","ya","ha","la","ba","ka","wa","Da","Ma","qr","Xr","mo","Jr","rn","sn","yl","hl","on","Zr","xr","eo","Qn","ao","no","lo","ro","oo","so","uo","hn","po","Et","co","tl","nn","bt","fo","vo","kl","bl","yo","ho","bo","ko","wo","Ea","Do","al","nl","Mo","$o","Ao","To","ll","an","ln","rl","qn","So","formatTimezoneId","timezoneId","getTimezones","tz","formattedAdditionalTimezones","label","timezones","filterBy","terms","term","targetElement","pickerInstance","placeholderFallback","realFormat","pickerType","onUpdateModelValue","value2","formatLibraryTime","weekStart","dayNames","weekNumName","ariaLabels","overlay","selectDate","cancelSelection","VueDatePicker","clear","NcDateTimePicker","isWindowAvailable","lastTime","vendors","currTime","timeToCall","NcResource","AccountGroup","OpenInNew","teamResourceProviders","teamId","resource","response","_component_AccountGroup","_component_OpenInNew","team","provider","NcTeamResources","providerId","itemId","resources","_component_NcTeamResources","_component_NcResource","NcRelatedResourcesPanel","thisArg","CustomEvent$1","onDestroy","registerWidget","propsWithDefaults","registerCustomPickerElement","imagePath","asciiAlpha","regexCheck","asciiAlphanumeric","asciiControl","code2","markdownLineEndingOrSpace","unicodePunctuation","unicodeWhitespace","regex","check","convert","castFactory","anyFactory","propsFactory","typeFactory","tests","checks","any","parameters","index2","checkAsRecord","all2","node2","nodeAsRecord","testFunction","looksLikeANode","wwwPrefix","tokenizeWwwPrefix","domain","tokenizeDomain","trail","tokenizeTrail","emailDomainDotTrail","tokenizeEmailDomainDotTrail","wwwAutolink","tokenizeWwwAutolink","previousWww","protocolAutolink","tokenizeProtocolAutolink","previousProtocol","emailAutolink","tokenizeEmailAutolink","previousEmail","code","effects","ok2","nok","self","dot","gfmAtext","previousUnbalanced","atext","emailDomain","emailDomainAfter","emailDomainDot","wwwStart","wwwAfter","seen","protocolStart","protocolPrefixInside","protocolSlashesInside","afterProtocol","protocolAfter","wwwPrefixInside","wwwPrefixAfter","underscoreInLastSegment","underscoreInLastLastSegment","domainInside","domainAfter","domainAtPunctuation","sizeOpen","sizeClose","pathInside","pathAtPunctuation","trail2","trailCharacterReferenceStart","trailBracketAfter","trailCharacterReferenceInside","after"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261],"sources":["../node_modules/@nextcloud/l10n/dist/index.mjs","../node_modules/vue-router/dist/devtools-EWN81iOl.mjs","../node_modules/vue-router/dist/vue-router.mjs","../node_modules/@nextcloud/paths/dist/index.mjs","../node_modules/@nextcloud/l10n/dist/gettext.mjs","../node_modules/@vueuse/core/node_modules/@vueuse/shared/dist/index.js","../node_modules/@vueuse/core/dist/index.js","../node_modules/@nextcloud/vue/dist/chunks/createElementId-DhjFt1I9.mjs","../node_modules/@nextcloud/vue/dist/chunks/_l10n-CgsPi8nC.mjs","../node_modules/@nextcloud/vue/dist/chunks/legacy-DcjXBL_t.mjs","../node_modules/@nextcloud/vue/dist/chunks/useNcFormBox-Djlh582y.mjs","../node_modules/@nextcloud/vue/dist/chunks/_plugin-vue_export-helper-1tPrXgE0.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcButton-CzpKEx4V.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcIconSvgWrapper-BvLanNaW.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcLoadingIcon-b_ajZ_nQ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-CYpktNKA.mjs","../node_modules/@nextcloud/vue/dist/chunks/mdi-CpchYUUV.mjs","../node_modules/tabbable/dist/index.esm.js","../node_modules/focus-trap/dist/focus-trap.esm.js","../node_modules/@nextcloud/vue/dist/chunks/focusTrap-HJQ4pqHV.mjs","../node_modules/@nextcloud/vue/dist/chunks/useTrapStackControl-B6cEicto.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/floating-vue/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs","../node_modules/floating-vue/dist/floating-vue.mjs","../node_modules/@nextcloud/vue/dist/chunks/logger-D3RVzcfQ.mjs","../node_modules/@nextcloud/vue/dist/chunks/rtl-v0UOPAM7.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcPopover-C-MTaPCs.mjs","../node_modules/@nextcloud/vue/dist/chunks/useNcActions-BzPO2c4h.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActions-4R7icatI.mjs","../node_modules/@nextcloud/vue/dist/composables/useFormatDateTime/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/platform-CC2ecGvV.mjs","../node_modules/@nextcloud/vue/dist/composables/useHotKey/index.mjs","../node_modules/@nextcloud/vue/dist/functions/isDarkTheme/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/constants-wIEKSp2G.mjs","../node_modules/@nextcloud/vue/dist/composables/useIsDarkTheme/index.mjs","../node_modules/@nextcloud/vue/dist/composables/useIsFullscreen/index.mjs","../node_modules/@nextcloud/vue/dist/composables/useIsMobile/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcModal-D00OJZV2.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDialog-BHl_LOs_.mjs","../node_modules/@nextcloud/vue/dist/chunks/actionGlobal-BZFdtdJL.mjs","../node_modules/@nextcloud/vue/dist/chunks/actionText-BXR0sWNu.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionButton-DNXoAooH.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionButtonGroup-B2MGnwK_.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDateTimePickerNative-Dr8_mGlQ.mjs","../node_modules/@nextcloud/capabilities/dist/index.mjs","../node_modules/debounce/index.js","../node_modules/@nextcloud/vue/dist/chunks/NcInputField-Clm9jOGJ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcPasswordField-BOZlUwhr.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang-CCsZqnkM.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionInput-BemRG66_.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionLink-Cd69py4e.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionRouter-DtxPh20B.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionText-Bd1fgVqA.mjs","../node_modules/splitpanes/dist/splitpanes.es.js","../node_modules/@nextcloud/vue/dist/chunks/appName-DtnLUijR.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppContent-BTNf1r8Z.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationList-BX0wE-dB.mjs","../node_modules/@nextcloud/vue/dist/chunks/constants-Ciwvl5xb.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigation-DQB0KqoZ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationCaption-DiLoiMN5.mjs","../node_modules/@nextcloud/vue/dist/chunks/ChevronDown-FiGpp0KT.mjs","../node_modules/@nextcloud/vue/dist/chunks/ChevronUp-DPXFp1ss.mjs","../node_modules/@nextcloud/vue/dist/chunks/ArrowRight-DRKHUZMH.mjs","../node_modules/@nextcloud/vue/dist/chunks/Close-D6ngJ4t9.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcInputConfirmCancel-DjMO3Xyv.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationItem-OrqBniiI.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationSearch-ByuV3q2c.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationSettings-A0DXzd5B.mjs","../node_modules/@nextcloud/vue/dist/chunks/useAppSettingsDialog-C73Wx6iQ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSettingsDialog-BaN30xl4.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSettingsShortcutsSection-DDmDMMsF.mjs","../node_modules/@vueuse/components/dist/index.js","../node_modules/linkifyjs/dist/linkify.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSidebar-as8lzUZp.mjs","../node_modules/@nextcloud/vue/dist/chunks/autolink-U5pBzLgI.mjs","../node_modules/@nextcloud/vue/dist/functions/contactsMenu/index.mjs","../node_modules/ts-md5/dist/index.es.js","../node_modules/@nextcloud/vue/dist/chunks/colors-CL_wvNtd.mjs","../node_modules/@nextcloud/vue/dist/functions/usernameToColor/index.mjs","../node_modules/striptags/src/striptags.js","../node_modules/@nextcloud/vue/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-D6LzDiYf.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcUserStatusIcon-BgElapLh.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAvatar-CK_dTsmT.mjs","../node_modules/eventemitter3/index.js","../node_modules/p-timeout/index.js","../node_modules/p-queue/dist/lower-bound.js","../node_modules/p-queue/dist/priority-queue.js","../node_modules/p-queue/dist/index.js","../node_modules/@nextcloud/vue/dist/functions/preloadImage/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcIconToggleSwitch-DNEYngCw.mjs","../node_modules/@nextcloud/vue/dist/chunks/useNcRadioGroup-D6llQmAl.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcCheckboxRadioSwitch-DisCqPZK.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcChip-B8jcrLqG.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/vue-select/dist/vue-select.es.js","../node_modules/@nextcloud/vue/dist/chunks/NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcEllipsisedOption-dT-CtXYp.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSelect-Cc9_a8nG.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcCollectionList-TB1GbWbo.mjs","../node_modules/@ckpack/vue-color/libs/defaultConfig.js","../node_modules/@ckpack/vue-color/libs/style-inject.es-746bb8ed.js","../node_modules/@ckpack/vue-color/libs/utils/compoent.js","../node_modules/@ckpack/vue-color/libs/components/checkboard/index.js","../node_modules/@ckpack/vue-color/libs/components/alpha/index.js","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ctrl/tinycolor/dist/module/index.js","../node_modules/@ckpack/vue-color/libs/mixin/color.js","../node_modules/@ckpack/vue-color/libs/components/editable-input/index.js","../node_modules/@ckpack/vue-color/libs/utils/utils.js","../node_modules/@ckpack/vue-color/libs/components/saturation/index.js","../node_modules/@ckpack/vue-color/libs/components/hue/index.js","../node_modules/@ckpack/vue-color/libs/components/chrome/index.js","../node_modules/@nextcloud/vue/dist/chunks/NcColorPicker-3wpX7pKD.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcContent-BrRHLO19.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDashboardWidget-1tax78_e.mjs","../node_modules/date-fns/constants.js","../node_modules/date-fns/constructFrom.js","../node_modules/date-fns/toDate.js","../node_modules/date-fns/addDays.js","../node_modules/date-fns/addMonths.js","../node_modules/date-fns/add.js","../node_modules/date-fns/addMilliseconds.js","../node_modules/date-fns/addHours.js","../node_modules/date-fns/_lib/defaultOptions.js","../node_modules/date-fns/startOfWeek.js","../node_modules/date-fns/startOfISOWeek.js","../node_modules/date-fns/getISOWeekYear.js","../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js","../node_modules/date-fns/_lib/normalizeDates.js","../node_modules/date-fns/startOfDay.js","../node_modules/date-fns/differenceInCalendarDays.js","../node_modules/date-fns/startOfISOWeekYear.js","../node_modules/date-fns/addQuarters.js","../node_modules/date-fns/addYears.js","../node_modules/date-fns/compareAsc.js","../node_modules/date-fns/isDate.js","../node_modules/date-fns/isValid.js","../node_modules/date-fns/getQuarter.js","../node_modules/date-fns/differenceInCalendarYears.js","../node_modules/date-fns/differenceInYears.js","../node_modules/date-fns/_lib/normalizeInterval.js","../node_modules/date-fns/eachDayOfInterval.js","../node_modules/date-fns/startOfQuarter.js","../node_modules/date-fns/eachQuarterOfInterval.js","../node_modules/date-fns/startOfMonth.js","../node_modules/date-fns/endOfYear.js","../node_modules/date-fns/startOfYear.js","../node_modules/date-fns/endOfWeek.js","../node_modules/date-fns/endOfQuarter.js","../node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../node_modules/date-fns/locale/en-US/_lib/formatLong.js","../node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../node_modules/date-fns/locale/en-US/_lib/localize.js","../node_modules/date-fns/locale/_lib/buildMatchFn.js","../node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../node_modules/date-fns/locale/en-US/_lib/match.js","../node_modules/date-fns/locale/en-US.js","../node_modules/date-fns/getDayOfYear.js","../node_modules/date-fns/getISOWeek.js","../node_modules/date-fns/getWeekYear.js","../node_modules/date-fns/startOfWeekYear.js","../node_modules/date-fns/getWeek.js","../node_modules/date-fns/_lib/addLeadingZeros.js","../node_modules/date-fns/_lib/format/lightFormatters.js","../node_modules/date-fns/_lib/format/formatters.js","../node_modules/date-fns/_lib/format/longFormatters.js","../node_modules/date-fns/_lib/protectedTokens.js","../node_modules/date-fns/format.js","../node_modules/date-fns/getDay.js","../node_modules/date-fns/getDaysInMonth.js","../node_modules/date-fns/getDefaultOptions.js","../node_modules/date-fns/getHours.js","../node_modules/date-fns/getISODay.js","../node_modules/date-fns/getMinutes.js","../node_modules/date-fns/getMonth.js","../node_modules/date-fns/getSeconds.js","../node_modules/date-fns/getYear.js","../node_modules/date-fns/isAfter.js","../node_modules/date-fns/isBefore.js","../node_modules/date-fns/isEqual.js","../node_modules/date-fns/transpose.js","../node_modules/date-fns/parse/_lib/Setter.js","../node_modules/date-fns/parse/_lib/Parser.js","../node_modules/date-fns/parse/_lib/parsers/EraParser.js","../node_modules/date-fns/parse/_lib/constants.js","../node_modules/date-fns/parse/_lib/utils.js","../node_modules/date-fns/parse/_lib/parsers/YearParser.js","../node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/date-fns/parse/_lib/parsers/QuarterParser.js","../node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/date-fns/parse/_lib/parsers/MonthParser.js","../node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/date-fns/setWeek.js","../node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js","../node_modules/date-fns/setISOWeek.js","../node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js","../node_modules/date-fns/parse/_lib/parsers/DateParser.js","../node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js","../node_modules/date-fns/setDay.js","../node_modules/date-fns/parse/_lib/parsers/DayParser.js","../node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js","../node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/date-fns/setISODay.js","../node_modules/date-fns/parse/_lib/parsers/ISODayParser.js","../node_modules/date-fns/parse/_lib/parsers/AMPMParser.js","../node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js","../node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/date-fns/parse/_lib/parsers/MinuteParser.js","../node_modules/date-fns/parse/_lib/parsers/SecondParser.js","../node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/date-fns/parse/_lib/parsers.js","../node_modules/date-fns/parse.js","../node_modules/date-fns/isSameQuarter.js","../node_modules/date-fns/subDays.js","../node_modules/date-fns/setMonth.js","../node_modules/date-fns/set.js","../node_modules/date-fns/setHours.js","../node_modules/date-fns/setMilliseconds.js","../node_modules/date-fns/setMinutes.js","../node_modules/date-fns/setSeconds.js","../node_modules/date-fns/setYear.js","../node_modules/date-fns/subMonths.js","../node_modules/date-fns/sub.js","../node_modules/date-fns/subYears.js","../node_modules/@vuepic/vue-datepicker/dist/vue-datepicker.js","../node_modules/@nextcloud/vue/dist/chunks/NcTimezonePicker.vue_vue_type_script_setup_true_lang-BffYEppS.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDateTimePicker-DCuHXZjc.mjs","../node_modules/emoji-mart-vue-fast/src/vendor/raf-polyfill.js","../node_modules/emoji-mart-vue-fast/dist/emoji-mart.js","../node_modules/@nextcloud/vue/dist/chunks/emoji-BY_D0V5K.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcEmojiPicker-CReazifM.mjs","../node_modules/@nextcloud/vue/dist/chunks/useCopy-D4CcMqlA.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcKbd-CZdynD1d.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcHotkeyList-67NnF26Y.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcProgressBar-DDMAo4h-.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcRelatedResourcesPanel-Dtxd3-o1.mjs","../node_modules/tributejs/dist/tribute.esm.js","../node_modules/@nextcloud/vue/dist/chunks/customPickerElements-4pQTZUnk.mjs","../node_modules/@nextcloud/vue/dist/chunks/referencePickerModal-CXAtbcPd.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcRichText-1U5RXjPL.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcRichContenteditable-B-w64JsT.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSelectTags-JyyA4W_e.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSettingsSection-BcLE6UnZ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSettingsSelectGroup-CUU-GWYl.mjs"],"sourcesContent":["import { g as getCanonicalLocale, a as getLanguage } from \"./chunks/translation-DoG5ZELJ.mjs\";\nimport { b, e, i, l, d, r, c, s, t, t as t2, d as d2, u } from \"./chunks/translation-DoG5ZELJ.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nfunction getFirstDay() {\n if (typeof globalThis.firstDay !== \"undefined\") {\n return globalThis.firstDay;\n }\n const intl = new Intl.Locale(getCanonicalLocale());\n const weekInfo = intl.getWeekInfo?.() ?? intl.weekInfo;\n if (weekInfo) {\n return weekInfo.firstDay % 7;\n }\n return 1;\n}\nfunction getDayNames() {\n if (typeof globalThis.dayNames !== \"undefined\") {\n return globalThis.dayNames;\n }\n const locale = getCanonicalLocale();\n return [\n new Date(1970, 0, 4).toLocaleDateString(locale, { weekday: \"long\" }),\n new Date(1970, 0, 5).toLocaleDateString(locale, { weekday: \"long\" }),\n new Date(1970, 0, 6).toLocaleDateString(locale, { weekday: \"long\" }),\n new Date(1970, 0, 7).toLocaleDateString(locale, { weekday: \"long\" }),\n new Date(1970, 0, 8).toLocaleDateString(locale, { weekday: \"long\" }),\n new Date(1970, 0, 9).toLocaleDateString(locale, { weekday: \"long\" }),\n new Date(1970, 0, 10).toLocaleDateString(locale, { weekday: \"long\" })\n ];\n}\nfunction getDayNamesShort() {\n if (typeof globalThis.dayNamesShort !== \"undefined\") {\n return globalThis.dayNamesShort;\n }\n const locale = getCanonicalLocale();\n return [\n new Date(1970, 0, 4).toLocaleDateString(locale, { weekday: \"short\" }),\n new Date(1970, 0, 5).toLocaleDateString(locale, { weekday: \"short\" }),\n new Date(1970, 0, 6).toLocaleDateString(locale, { weekday: \"short\" }),\n new Date(1970, 0, 7).toLocaleDateString(locale, { weekday: \"short\" }),\n new Date(1970, 0, 8).toLocaleDateString(locale, { weekday: \"short\" }),\n new Date(1970, 0, 9).toLocaleDateString(locale, { weekday: \"short\" }),\n new Date(1970, 0, 10).toLocaleDateString(locale, { weekday: \"short\" })\n ];\n}\nfunction getDayNamesMin() {\n if (typeof globalThis.dayNamesMin !== \"undefined\") {\n return globalThis.dayNamesMin;\n }\n const locale = getCanonicalLocale();\n return [\n new Date(1970, 0, 4).toLocaleDateString(locale, { weekday: \"narrow\" }),\n new Date(1970, 0, 5).toLocaleDateString(locale, { weekday: \"narrow\" }),\n new Date(1970, 0, 6).toLocaleDateString(locale, { weekday: \"narrow\" }),\n new Date(1970, 0, 7).toLocaleDateString(locale, { weekday: \"narrow\" }),\n new Date(1970, 0, 8).toLocaleDateString(locale, { weekday: \"narrow\" }),\n new Date(1970, 0, 9).toLocaleDateString(locale, { weekday: \"narrow\" }),\n new Date(1970, 0, 10).toLocaleDateString(locale, { weekday: \"narrow\" })\n ];\n}\nfunction getMonthNames() {\n if (typeof globalThis.monthNames !== \"undefined\") {\n return globalThis.monthNames;\n }\n const locale = getCanonicalLocale();\n return [\n new Date(1970, 0).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 1).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 2).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 3).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 4).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 5).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 6).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 7).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 8).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 9).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 10).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 11).toLocaleDateString(locale, { month: \"long\" })\n ];\n}\nfunction getMonthNamesShort() {\n if (typeof globalThis.monthNamesShort !== \"undefined\") {\n return globalThis.monthNamesShort;\n }\n const locale = getCanonicalLocale();\n return [\n new Date(1970, 0).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 1).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 2).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 3).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 4).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 5).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 6).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 7).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 8).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 9).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 10).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 11).toLocaleDateString(locale, { month: \"short\" })\n ];\n}\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nfunction formatRelativeTime(timestamp = Date.now(), opts = {}) {\n const options = {\n ignoreSeconds: false,\n language: getLanguage(),\n relativeTime: \"long\",\n ...opts\n };\n const date = new Date(timestamp);\n const formatter = new Intl.RelativeTimeFormat([options.language, getLanguage()], { numeric: \"auto\", style: options.relativeTime });\n const diff = date.getTime() - Date.now();\n const seconds = diff / 1e3;\n if (Math.abs(seconds) < 59.5) {\n return options.ignoreSeconds || formatter.format(Math.round(seconds), \"second\");\n }\n const minutes = seconds / 60;\n if (Math.abs(minutes) <= 59) {\n return formatter.format(Math.round(minutes), \"minute\");\n }\n const hours = minutes / 60;\n if (Math.abs(hours) < 23.5) {\n return formatter.format(Math.round(hours), \"hour\");\n }\n const days = hours / 24;\n if (Math.abs(days) < 6.5) {\n return formatter.format(Math.round(days), \"day\");\n }\n if (Math.abs(days) < 27.5) {\n const weeks = days / 7;\n return formatter.format(Math.round(weeks), \"week\");\n }\n const months = days / 30;\n const format = Math.abs(months) < 11 ? { month: options.relativeTime, day: \"numeric\" } : { year: options.relativeTime === \"narrow\" ? \"2-digit\" : \"numeric\", month: options.relativeTime };\n const dateTimeFormatter = new Intl.DateTimeFormat([options.language, getLanguage()], format);\n return dateTimeFormatter.format(date);\n}\nexport {\n formatRelativeTime,\n getCanonicalLocale,\n getDayNames,\n getDayNamesMin,\n getDayNamesShort,\n getFirstDay,\n getLanguage,\n b as getLocale,\n getMonthNames,\n getMonthNamesShort,\n e as getPlural,\n i as isRTL,\n l as loadTranslations,\n d as n,\n r as register,\n c as setLanguage,\n s as setLocale,\n t,\n t2 as translate,\n d2 as translatePlural,\n u as unregister\n};\n//# sourceMappingURL=index.mjs.map\n","/*!\n * vue-router v4.6.4\n * (c) 2025 Eduardo San Martin Morote\n * @license MIT\n */\nimport { getCurrentInstance, inject, onActivated, onDeactivated, onUnmounted, watch } from \"vue\";\nimport { setupDevtoolsPlugin } from \"@vue/devtools-api\";\n\n//#region src/utils/env.ts\nconst isBrowser = typeof document !== \"undefined\";\n\n//#endregion\n//#region src/utils/index.ts\n/**\n* Identity function that returns the value as is.\n*\n* @param v - the value to return\n*\n* @internal\n*/\nconst identityFn = (v) => v;\n/**\n* Allows differentiating lazy components from functional components and vue-class-component\n* @internal\n*\n* @param component\n*/\nfunction isRouteComponent(component) {\n\treturn typeof component === \"object\" || \"displayName\" in component || \"props\" in component || \"__vccOpts\" in component;\n}\nfunction isESModule(obj) {\n\treturn obj.__esModule || obj[Symbol.toStringTag] === \"Module\" || obj.default && isRouteComponent(obj.default);\n}\nconst assign = Object.assign;\nfunction applyToParams(fn, params) {\n\tconst newParams = {};\n\tfor (const key in params) {\n\t\tconst value = params[key];\n\t\tnewParams[key] = isArray(value) ? value.map(fn) : fn(value);\n\t}\n\treturn newParams;\n}\nconst noop = () => {};\n/**\n* Typesafe alternative to Array.isArray\n* https://github.com/microsoft/TypeScript/pull/48228\n*\n* @internal\n*/\nconst isArray = Array.isArray;\nfunction mergeOptions(defaults, partialOptions) {\n\tconst options = {};\n\tfor (const key in defaults) options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\n\treturn options;\n}\n\n//#endregion\n//#region src/warning.ts\nfunction warn$1(msg) {\n\tconst args = Array.from(arguments).slice(1);\n\tconsole.warn.apply(console, [\"[Vue Router warn]: \" + msg].concat(args));\n}\n\n//#endregion\n//#region src/encoding.ts\n/**\n* Encoding Rules (␣ = Space)\n* - Path: ␣ \" < > # ? { }\n* - Query: ␣ \" < > # & =\n* - Hash: ␣ \" < > `\n*\n* On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\n* defines some extra characters to be encoded. Most browsers do not encode them\n* in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\n* also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`)\n* plus `-._~`. This extra safety should be applied to query by patching the\n* string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\n* should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\n* into a `/` if directly typed in. The _backtick_ (`````) should also be\n* encoded everywhere because some browsers like FF encode it when directly\n* written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\n*/\nconst HASH_RE = /#/g;\nconst AMPERSAND_RE = /&/g;\nconst SLASH_RE = /\\//g;\nconst EQUAL_RE = /=/g;\nconst IM_RE = /\\?/g;\nconst PLUS_RE = /\\+/g;\n/**\n* NOTE: It's not clear to me if we should encode the + symbol in queries, it\n* seems to be less flexible than not doing so and I can't find out the legacy\n* systems requiring this for regular requests like text/html. In the standard,\n* the encoding of the plus character is only mentioned for\n* application/x-www-form-urlencoded\n* (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\n* leave the plus character as is in queries. To be more flexible, we allow the\n* plus character on the query, but it can also be manually encoded by the user.\n*\n* Resources:\n* - https://url.spec.whatwg.org/#urlencoded-parsing\n* - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\n*/\nconst ENC_BRACKET_OPEN_RE = /%5B/g;\nconst ENC_BRACKET_CLOSE_RE = /%5D/g;\nconst ENC_CARET_RE = /%5E/g;\nconst ENC_BACKTICK_RE = /%60/g;\nconst ENC_CURLY_OPEN_RE = /%7B/g;\nconst ENC_PIPE_RE = /%7C/g;\nconst ENC_CURLY_CLOSE_RE = /%7D/g;\nconst ENC_SPACE_RE = /%20/g;\n/**\n* Encode characters that need to be encoded on the path, search and hash\n* sections of the URL.\n*\n* @internal\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction commonEncode(text) {\n\treturn text == null ? \"\" : encodeURI(\"\" + text).replace(ENC_PIPE_RE, \"|\").replace(ENC_BRACKET_OPEN_RE, \"[\").replace(ENC_BRACKET_CLOSE_RE, \"]\");\n}\n/**\n* Encode characters that need to be encoded on the hash section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeHash(text) {\n\treturn commonEncode(text).replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Encode characters that need to be encoded query values on the query\n* section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeQueryValue(text) {\n\treturn commonEncode(text).replace(PLUS_RE, \"%2B\").replace(ENC_SPACE_RE, \"+\").replace(HASH_RE, \"%23\").replace(AMPERSAND_RE, \"%26\").replace(ENC_BACKTICK_RE, \"`\").replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Like `encodeQueryValue` but also encodes the `=` character.\n*\n* @param text - string to encode\n*/\nfunction encodeQueryKey(text) {\n\treturn encodeQueryValue(text).replace(EQUAL_RE, \"%3D\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodePath(text) {\n\treturn commonEncode(text).replace(HASH_RE, \"%23\").replace(IM_RE, \"%3F\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL as a\n* param. This function encodes everything {@link encodePath} does plus the\n* slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\n* string instead.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeParam(text) {\n\treturn encodePath(text).replace(SLASH_RE, \"%2F\");\n}\nfunction decode(text) {\n\tif (text == null) return null;\n\ttry {\n\t\treturn decodeURIComponent(\"\" + text);\n\t} catch (err) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(`Error decoding \"${text}\". Using original value`);\n\t}\n\treturn \"\" + text;\n}\n\n//#endregion\n//#region src/location.ts\nconst TRAILING_SLASH_RE = /\\/$/;\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, \"\");\n/**\n* Transforms a URI into a normalized history location\n*\n* @param parseQuery\n* @param location - URI to normalize\n* @param currentLocation - current absolute location. Allows resolving relative\n* paths. Must start with `/`. Defaults to `/`\n* @returns a normalized history location\n*/\nfunction parseURL(parseQuery$1, location, currentLocation = \"/\") {\n\tlet path, query = {}, searchString = \"\", hash = \"\";\n\tconst hashPos = location.indexOf(\"#\");\n\tlet searchPos = location.indexOf(\"?\");\n\tsearchPos = hashPos >= 0 && searchPos > hashPos ? -1 : searchPos;\n\tif (searchPos >= 0) {\n\t\tpath = location.slice(0, searchPos);\n\t\tsearchString = location.slice(searchPos, hashPos > 0 ? hashPos : location.length);\n\t\tquery = parseQuery$1(searchString.slice(1));\n\t}\n\tif (hashPos >= 0) {\n\t\tpath = path || location.slice(0, hashPos);\n\t\thash = location.slice(hashPos, location.length);\n\t}\n\tpath = resolveRelativePath(path != null ? path : location, currentLocation);\n\treturn {\n\t\tfullPath: path + searchString + hash,\n\t\tpath,\n\t\tquery,\n\t\thash: decode(hash)\n\t};\n}\nfunction NEW_stringifyURL(stringifyQuery$1, path, query, hash = \"\") {\n\tconst searchText = stringifyQuery$1(query);\n\treturn path + (searchText && \"?\") + searchText + encodeHash(hash);\n}\n/**\n* Stringifies a URL object\n*\n* @param stringifyQuery\n* @param location\n*/\nfunction stringifyURL(stringifyQuery$1, location) {\n\tconst query = location.query ? stringifyQuery$1(location.query) : \"\";\n\treturn location.path + (query && \"?\") + query + (location.hash || \"\");\n}\n/**\n* Strips off the base from the beginning of a location.pathname in a non-case-sensitive way.\n*\n* @param pathname - location.pathname\n* @param base - base to strip off\n*/\nfunction stripBase(pathname, base) {\n\tif (!base || !pathname.toLowerCase().startsWith(base.toLowerCase())) return pathname;\n\treturn pathname.slice(base.length) || \"/\";\n}\n/**\n* Checks if two RouteLocation are equal. This means that both locations are\n* pointing towards the same {@link RouteRecord} and that all `params`, `query`\n* parameters and `hash` are the same\n*\n* @param stringifyQuery - A function that takes a query object of type LocationQueryRaw and returns a string representation of it.\n* @param a - first {@link RouteLocation}\n* @param b - second {@link RouteLocation}\n*/\nfunction isSameRouteLocation(stringifyQuery$1, a, b) {\n\tconst aLastIndex = a.matched.length - 1;\n\tconst bLastIndex = b.matched.length - 1;\n\treturn aLastIndex > -1 && aLastIndex === bLastIndex && isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) && isSameRouteLocationParams(a.params, b.params) && stringifyQuery$1(a.query) === stringifyQuery$1(b.query) && a.hash === b.hash;\n}\n/**\n* Check if two `RouteRecords` are equal. Takes into account aliases: they are\n* considered equal to the `RouteRecord` they are aliasing.\n*\n* @param a - first {@link RouteRecord}\n* @param b - second {@link RouteRecord}\n*/\nfunction isSameRouteRecord(a, b) {\n\treturn (a.aliasOf || a) === (b.aliasOf || b);\n}\nfunction isSameRouteLocationParams(a, b) {\n\tif (Object.keys(a).length !== Object.keys(b).length) return false;\n\tfor (var key in a) if (!isSameRouteLocationParamsValue(a[key], b[key])) return false;\n\treturn true;\n}\nfunction isSameRouteLocationParamsValue(a, b) {\n\treturn isArray(a) ? isEquivalentArray(a, b) : isArray(b) ? isEquivalentArray(b, a) : a?.valueOf() === b?.valueOf();\n}\n/**\n* Check if two arrays are the same or if an array with one single entry is the\n* same as another primitive value. Used to check query and parameters\n*\n* @param a - array of values\n* @param b - array of values or a single value\n*/\nfunction isEquivalentArray(a, b) {\n\treturn isArray(b) ? a.length === b.length && a.every((value, i) => value === b[i]) : a.length === 1 && a[0] === b;\n}\n/**\n* Resolves a relative path that starts with `.`.\n*\n* @param to - path location we are resolving\n* @param from - currentLocation.path, should start with `/`\n*/\nfunction resolveRelativePath(to, from) {\n\tif (to.startsWith(\"/\")) return to;\n\tif (process.env.NODE_ENV !== \"production\" && !from.startsWith(\"/\")) {\n\t\twarn$1(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\n\t\treturn to;\n\t}\n\tif (!to) return from;\n\tconst fromSegments = from.split(\"/\");\n\tconst toSegments = to.split(\"/\");\n\tconst lastToSegment = toSegments[toSegments.length - 1];\n\tif (lastToSegment === \"..\" || lastToSegment === \".\") toSegments.push(\"\");\n\tlet position = fromSegments.length - 1;\n\tlet toPosition;\n\tlet segment;\n\tfor (toPosition = 0; toPosition < toSegments.length; toPosition++) {\n\t\tsegment = toSegments[toPosition];\n\t\tif (segment === \".\") continue;\n\t\tif (segment === \"..\") {\n\t\t\tif (position > 1) position--;\n\t\t} else break;\n\t}\n\treturn fromSegments.slice(0, position).join(\"/\") + \"/\" + toSegments.slice(toPosition).join(\"/\");\n}\n/**\n* Initial route location where the router is. Can be used in navigation guards\n* to differentiate the initial navigation.\n*\n* @example\n* ```js\n* import { START_LOCATION } from 'vue-router'\n*\n* router.beforeEach((to, from) => {\n* if (from === START_LOCATION) {\n* // initial navigation\n* }\n* })\n* ```\n*/\nconst START_LOCATION_NORMALIZED = {\n\tpath: \"/\",\n\tname: void 0,\n\tparams: {},\n\tquery: {},\n\thash: \"\",\n\tfullPath: \"/\",\n\tmatched: [],\n\tmeta: {},\n\tredirectedFrom: void 0\n};\n\n//#endregion\n//#region src/history/common.ts\nlet NavigationType = /* @__PURE__ */ function(NavigationType$1) {\n\tNavigationType$1[\"pop\"] = \"pop\";\n\tNavigationType$1[\"push\"] = \"push\";\n\treturn NavigationType$1;\n}({});\nlet NavigationDirection = /* @__PURE__ */ function(NavigationDirection$1) {\n\tNavigationDirection$1[\"back\"] = \"back\";\n\tNavigationDirection$1[\"forward\"] = \"forward\";\n\tNavigationDirection$1[\"unknown\"] = \"\";\n\treturn NavigationDirection$1;\n}({});\n/**\n* Starting location for Histories\n*/\nconst START = \"\";\n/**\n* Normalizes a base by removing any trailing slash and reading the base tag if\n* present.\n*\n* @param base - base to normalize\n*/\nfunction normalizeBase(base) {\n\tif (!base) if (isBrowser) {\n\t\tconst baseEl = document.querySelector(\"base\");\n\t\tbase = baseEl && baseEl.getAttribute(\"href\") || \"/\";\n\t\tbase = base.replace(/^\\w+:\\/\\/[^\\/]+/, \"\");\n\t} else base = \"/\";\n\tif (base[0] !== \"/\" && base[0] !== \"#\") base = \"/\" + base;\n\treturn removeTrailingSlash(base);\n}\nconst BEFORE_HASH_RE = /^[^#]+#/;\nfunction createHref(base, location) {\n\treturn base.replace(BEFORE_HASH_RE, \"#\") + location;\n}\n\n//#endregion\n//#region src/scrollBehavior.ts\nfunction getElementPosition(el, offset) {\n\tconst docRect = document.documentElement.getBoundingClientRect();\n\tconst elRect = el.getBoundingClientRect();\n\treturn {\n\t\tbehavior: offset.behavior,\n\t\tleft: elRect.left - docRect.left - (offset.left || 0),\n\t\ttop: elRect.top - docRect.top - (offset.top || 0)\n\t};\n}\nconst computeScrollPosition = () => ({\n\tleft: window.scrollX,\n\ttop: window.scrollY\n});\nfunction scrollToPosition(position) {\n\tlet scrollToOptions;\n\tif (\"el\" in position) {\n\t\tconst positionEl = position.el;\n\t\tconst isIdSelector = typeof positionEl === \"string\" && positionEl.startsWith(\"#\");\n\t\t/**\n\t\t* `id`s can accept pretty much any characters, including CSS combinators\n\t\t* like `>` or `~`. It's still possible to retrieve elements using\n\t\t* `document.getElementById('~')` but it needs to be escaped when using\n\t\t* `document.querySelector('#\\\\~')` for it to be valid. The only\n\t\t* requirements for `id`s are them to be unique on the page and to not be\n\t\t* empty (`id=\"\"`). Because of that, when passing an id selector, it should\n\t\t* be properly escaped for it to work with `querySelector`. We could check\n\t\t* for the id selector to be simple (no CSS combinators `+ >~`) but that\n\t\t* would make things inconsistent since they are valid characters for an\n\t\t* `id` but would need to be escaped when using `querySelector`, breaking\n\t\t* their usage and ending up in no selector returned. Selectors need to be\n\t\t* escaped:\n\t\t*\n\t\t* - `#1-thing` becomes `#\\31 -thing`\n\t\t* - `#with~symbols` becomes `#with\\\\~symbols`\n\t\t*\n\t\t* - More information about the topic can be found at\n\t\t* https://mathiasbynens.be/notes/html5-id-class.\n\t\t* - Practical example: https://mathiasbynens.be/demo/html5-id\n\t\t*/\n\t\tif (process.env.NODE_ENV !== \"production\" && typeof position.el === \"string\") {\n\t\t\tif (!isIdSelector || !document.getElementById(position.el.slice(1))) try {\n\t\t\t\tconst foundEl = document.querySelector(position.el);\n\t\t\t\tif (isIdSelector && foundEl) {\n\t\t\t\t\twarn$1(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\twarn$1(`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).`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst el = typeof positionEl === \"string\" ? isIdSelector ? document.getElementById(positionEl.slice(1)) : document.querySelector(positionEl) : positionEl;\n\t\tif (!el) {\n\t\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\n\t\t\treturn;\n\t\t}\n\t\tscrollToOptions = getElementPosition(el, position);\n\t} else scrollToOptions = position;\n\tif (\"scrollBehavior\" in document.documentElement.style) window.scrollTo(scrollToOptions);\n\telse window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.scrollX, scrollToOptions.top != null ? scrollToOptions.top : window.scrollY);\n}\nfunction getScrollKey(path, delta) {\n\treturn (history.state ? history.state.position - delta : -1) + path;\n}\nconst scrollPositions = /* @__PURE__ */ new Map();\nfunction saveScrollPosition(key, scrollPosition) {\n\tscrollPositions.set(key, scrollPosition);\n}\nfunction getSavedScrollPosition(key) {\n\tconst scroll = scrollPositions.get(key);\n\tscrollPositions.delete(key);\n\treturn scroll;\n}\n/**\n* ScrollBehavior instance used by the router to compute and restore the scroll\n* position when navigating.\n*/\n\n//#endregion\n//#region src/types/typeGuards.ts\nfunction isRouteLocation(route) {\n\treturn typeof route === \"string\" || route && typeof route === \"object\";\n}\nfunction isRouteName(name) {\n\treturn typeof name === \"string\" || typeof name === \"symbol\";\n}\n\n//#endregion\n//#region src/errors.ts\n/**\n* Flags so we can combine them when checking for multiple errors. This is the internal version of\n* {@link NavigationFailureType}.\n*\n* @internal\n*/\nlet ErrorTypes = /* @__PURE__ */ function(ErrorTypes$1) {\n\tErrorTypes$1[ErrorTypes$1[\"MATCHER_NOT_FOUND\"] = 1] = \"MATCHER_NOT_FOUND\";\n\tErrorTypes$1[ErrorTypes$1[\"NAVIGATION_GUARD_REDIRECT\"] = 2] = \"NAVIGATION_GUARD_REDIRECT\";\n\tErrorTypes$1[ErrorTypes$1[\"NAVIGATION_ABORTED\"] = 4] = \"NAVIGATION_ABORTED\";\n\tErrorTypes$1[ErrorTypes$1[\"NAVIGATION_CANCELLED\"] = 8] = \"NAVIGATION_CANCELLED\";\n\tErrorTypes$1[ErrorTypes$1[\"NAVIGATION_DUPLICATED\"] = 16] = \"NAVIGATION_DUPLICATED\";\n\treturn ErrorTypes$1;\n}({});\nconst NavigationFailureSymbol = Symbol(process.env.NODE_ENV !== \"production\" ? \"navigation failure\" : \"\");\n/**\n* Enumeration with all possible types for navigation failures. Can be passed to\n* {@link isNavigationFailure} to check for specific failures.\n*/\nlet NavigationFailureType = /* @__PURE__ */ function(NavigationFailureType$1) {\n\t/**\n\t* An aborted navigation is a navigation that failed because a navigation\n\t* guard returned `false` or called `next(false)`\n\t*/\n\tNavigationFailureType$1[NavigationFailureType$1[\"aborted\"] = 4] = \"aborted\";\n\t/**\n\t* A cancelled navigation is a navigation that failed because a more recent\n\t* navigation finished started (not necessarily finished).\n\t*/\n\tNavigationFailureType$1[NavigationFailureType$1[\"cancelled\"] = 8] = \"cancelled\";\n\t/**\n\t* A duplicated navigation is a navigation that failed because it was\n\t* initiated while already being at the exact same location.\n\t*/\n\tNavigationFailureType$1[NavigationFailureType$1[\"duplicated\"] = 16] = \"duplicated\";\n\treturn NavigationFailureType$1;\n}({});\nconst ErrorTypeMessages = {\n\t[ErrorTypes.MATCHER_NOT_FOUND]({ location, currentLocation }) {\n\t\treturn `No match for\\n ${JSON.stringify(location)}${currentLocation ? \"\\nwhile being at\\n\" + JSON.stringify(currentLocation) : \"\"}`;\n\t},\n\t[ErrorTypes.NAVIGATION_GUARD_REDIRECT]({ from, to }) {\n\t\treturn `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\n\t},\n\t[ErrorTypes.NAVIGATION_ABORTED]({ from, to }) {\n\t\treturn `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\n\t},\n\t[ErrorTypes.NAVIGATION_CANCELLED]({ from, to }) {\n\t\treturn `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\n\t},\n\t[ErrorTypes.NAVIGATION_DUPLICATED]({ from, to }) {\n\t\treturn `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\n\t}\n};\n/**\n* Creates a typed NavigationFailure object.\n* @internal\n* @param type - NavigationFailureType\n* @param params - { from, to }\n*/\nfunction createRouterError(type, params) {\n\tif (process.env.NODE_ENV !== \"production\" || false) return assign(new Error(ErrorTypeMessages[type](params)), {\n\t\ttype,\n\t\t[NavigationFailureSymbol]: true\n\t}, params);\n\telse return assign(/* @__PURE__ */ new Error(), {\n\t\ttype,\n\t\t[NavigationFailureSymbol]: true\n\t}, params);\n}\nfunction isNavigationFailure(error, type) {\n\treturn error instanceof Error && NavigationFailureSymbol in error && (type == null || !!(error.type & type));\n}\nconst propertiesToLog = [\n\t\"params\",\n\t\"query\",\n\t\"hash\"\n];\nfunction stringifyRoute(to) {\n\tif (typeof to === \"string\") return to;\n\tif (to.path != null) return to.path;\n\tconst location = {};\n\tfor (const key of propertiesToLog) if (key in to) location[key] = to[key];\n\treturn JSON.stringify(location, null, 2);\n}\n\n//#endregion\n//#region src/query.ts\n/**\n* Transforms a queryString into a {@link LocationQuery} object. Accept both, a\n* version with the leading `?` and without Should work as URLSearchParams\n\n* @internal\n*\n* @param search - search string to parse\n* @returns a query object\n*/\nfunction parseQuery(search) {\n\tconst query = {};\n\tif (search === \"\" || search === \"?\") return query;\n\tconst searchParams = (search[0] === \"?\" ? search.slice(1) : search).split(\"&\");\n\tfor (let i = 0; i < searchParams.length; ++i) {\n\t\tconst searchParam = searchParams[i].replace(PLUS_RE, \" \");\n\t\tconst eqPos = searchParam.indexOf(\"=\");\n\t\tconst key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n\t\tconst value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n\t\tif (key in query) {\n\t\t\tlet currentValue = query[key];\n\t\t\tif (!isArray(currentValue)) currentValue = query[key] = [currentValue];\n\t\t\tcurrentValue.push(value);\n\t\t} else query[key] = value;\n\t}\n\treturn query;\n}\n/**\n* Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\n* doesn't prepend a `?`\n*\n* @internal\n*\n* @param query - query object to stringify\n* @returns string version of the query without the leading `?`\n*/\nfunction stringifyQuery(query) {\n\tlet search = \"\";\n\tfor (let key in query) {\n\t\tconst value = query[key];\n\t\tkey = encodeQueryKey(key);\n\t\tif (value == null) {\n\t\t\tif (value !== void 0) search += (search.length ? \"&\" : \"\") + key;\n\t\t\tcontinue;\n\t\t}\n\t\t(isArray(value) ? value.map((v) => v && encodeQueryValue(v)) : [value && encodeQueryValue(value)]).forEach((value$1) => {\n\t\t\tif (value$1 !== void 0) {\n\t\t\t\tsearch += (search.length ? \"&\" : \"\") + key;\n\t\t\t\tif (value$1 != null) search += \"=\" + value$1;\n\t\t\t}\n\t\t});\n\t}\n\treturn search;\n}\n/**\n* Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\n* numbers into strings, removing keys with an undefined value and replacing\n* undefined with null in arrays\n*\n* @param query - query object to normalize\n* @returns a normalized query object\n*/\nfunction normalizeQuery(query) {\n\tconst normalizedQuery = {};\n\tfor (const key in query) {\n\t\tconst value = query[key];\n\t\tif (value !== void 0) normalizedQuery[key] = isArray(value) ? value.map((v) => v == null ? null : \"\" + v) : value == null ? value : \"\" + value;\n\t}\n\treturn normalizedQuery;\n}\n\n//#endregion\n//#region src/injectionSymbols.ts\n/**\n* RouteRecord being rendered by the closest ancestor Router View. Used for\n* `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\n* Location Matched\n*\n* @internal\n*/\nconst matchedRouteKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view location matched\" : \"\");\n/**\n* Allows overriding the router view depth to control which component in\n* `matched` is rendered. rvd stands for Router View Depth\n*\n* @internal\n*/\nconst viewDepthKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view depth\" : \"\");\n/**\n* Allows overriding the router instance returned by `useRouter` in tests. r\n* stands for router\n*\n* @internal\n*/\nconst routerKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router\" : \"\");\n/**\n* Allows overriding the current route returned by `useRoute` in tests. rl\n* stands for route location\n*\n* @internal\n*/\nconst routeLocationKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"route location\" : \"\");\n/**\n* Allows overriding the current route used by router-view. Internally this is\n* used when the `route` prop is passed.\n*\n* @internal\n*/\nconst routerViewLocationKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view location\" : \"\");\n\n//#endregion\n//#region src/utils/callbacks.ts\n/**\n* Create a list of callbacks that can be reset. Used to create before and after navigation guards list\n*/\nfunction useCallbacks() {\n\tlet handlers = [];\n\tfunction add(handler) {\n\t\thandlers.push(handler);\n\t\treturn () => {\n\t\t\tconst i = handlers.indexOf(handler);\n\t\t\tif (i > -1) handlers.splice(i, 1);\n\t\t};\n\t}\n\tfunction reset() {\n\t\thandlers = [];\n\t}\n\treturn {\n\t\tadd,\n\t\tlist: () => handlers.slice(),\n\t\treset\n\t};\n}\n\n//#endregion\n//#region src/navigationGuards.ts\nfunction registerGuard(record, name, guard) {\n\tconst removeFromList = () => {\n\t\trecord[name].delete(guard);\n\t};\n\tonUnmounted(removeFromList);\n\tonDeactivated(removeFromList);\n\tonActivated(() => {\n\t\trecord[name].add(guard);\n\t});\n\trecord[name].add(guard);\n}\n/**\n* Add a navigation guard that triggers whenever the component for the current\n* location is about to be left. Similar to {@link beforeRouteLeave} but can be\n* used in any component. The guard is removed when the component is unmounted.\n*\n* @param leaveGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteLeave(leaveGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\twarn$1(\"getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function\");\n\t\treturn;\n\t}\n\tconst activeRecord = inject(matchedRouteKey, {}).value;\n\tif (!activeRecord) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(\"No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside a component child of <router-view>. Maybe you called it inside of App.vue?\");\n\t\treturn;\n\t}\n\tregisterGuard(activeRecord, \"leaveGuards\", leaveGuard);\n}\n/**\n* Add a navigation guard that triggers whenever the current location is about\n* to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\n* component. The guard is removed when the component is unmounted.\n*\n* @param updateGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteUpdate(updateGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\twarn$1(\"getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function\");\n\t\treturn;\n\t}\n\tconst activeRecord = inject(matchedRouteKey, {}).value;\n\tif (!activeRecord) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(\"No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside a component child of <router-view>. Maybe you called it inside of App.vue?\");\n\t\treturn;\n\t}\n\tregisterGuard(activeRecord, \"updateGuards\", updateGuard);\n}\nfunction guardToPromiseFn(guard, to, from, record, name, runWithContext = (fn) => fn()) {\n\tconst enterCallbackArray = record && (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\n\treturn () => new Promise((resolve, reject) => {\n\t\tconst next = (valid) => {\n\t\t\tif (valid === false) reject(createRouterError(ErrorTypes.NAVIGATION_ABORTED, {\n\t\t\t\tfrom,\n\t\t\t\tto\n\t\t\t}));\n\t\t\telse if (valid instanceof Error) reject(valid);\n\t\t\telse if (isRouteLocation(valid)) reject(createRouterError(ErrorTypes.NAVIGATION_GUARD_REDIRECT, {\n\t\t\t\tfrom: to,\n\t\t\t\tto: valid\n\t\t\t}));\n\t\t\telse {\n\t\t\t\tif (enterCallbackArray && record.enterCallbacks[name] === enterCallbackArray && typeof valid === \"function\") enterCallbackArray.push(valid);\n\t\t\t\tresolve();\n\t\t\t}\n\t\t};\n\t\tconst guardReturn = runWithContext(() => guard.call(record && record.instances[name], to, from, process.env.NODE_ENV !== \"production\" ? canOnlyBeCalledOnce(next, to, from) : next));\n\t\tlet guardCall = Promise.resolve(guardReturn);\n\t\tif (guard.length < 3) guardCall = guardCall.then(next);\n\t\tif (process.env.NODE_ENV !== \"production\" && guard.length > 2) {\n\t\t\tconst 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.`;\n\t\t\tif (typeof guardReturn === \"object\" && \"then\" in guardReturn) guardCall = guardCall.then((resolvedValue) => {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\twarn$1(message);\n\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t}\n\t\t\t\treturn resolvedValue;\n\t\t\t});\n\t\t\telse if (guardReturn !== void 0) {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\twarn$1(message);\n\t\t\t\t\treject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tguardCall.catch((err) => reject(err));\n\t});\n}\nfunction canOnlyBeCalledOnce(next, to, from) {\n\tlet called = 0;\n\treturn function() {\n\t\tif (called++ === 1) warn$1(`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.`);\n\t\tnext._called = true;\n\t\tif (called === 1) next.apply(null, arguments);\n\t};\n}\nfunction extractComponentsGuards(matched, guardType, to, from, runWithContext = (fn) => fn()) {\n\tconst guards = [];\n\tfor (const record of matched) {\n\t\tif (process.env.NODE_ENV !== \"production\" && !record.components && record.children && !record.children.length) warn$1(`Record with path \"${record.path}\" is either missing a \"component(s)\" or \"children\" property.`);\n\t\tfor (const name in record.components) {\n\t\t\tlet rawComponent = record.components[name];\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (!rawComponent || typeof rawComponent !== \"object\" && typeof rawComponent !== \"function\") {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is not a valid component. Received \"${String(rawComponent)}\".`);\n\t\t\t\t\tthrow new Error(\"Invalid route component\");\n\t\t\t\t} else if (\"then\" in rawComponent) {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is a Promise instead of a function that returns a Promise. Did you write \"import('./MyPage.vue')\" instead of \"() => import('./MyPage.vue')\" ? This will break in production if not fixed.`);\n\t\t\t\t\tconst promise = rawComponent;\n\t\t\t\t\trawComponent = () => promise;\n\t\t\t\t} else if (rawComponent.__asyncLoader && !rawComponent.__warnedDefineAsync) {\n\t\t\t\t\trawComponent.__warnedDefineAsync = true;\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is defined using \"defineAsyncComponent()\". Write \"() => import('./MyPage.vue')\" instead of \"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (guardType !== \"beforeRouteEnter\" && !record.instances[name]) continue;\n\t\t\tif (isRouteComponent(rawComponent)) {\n\t\t\t\tconst guard = (rawComponent.__vccOpts || rawComponent)[guardType];\n\t\t\t\tguard && guards.push(guardToPromiseFn(guard, to, from, record, name, runWithContext));\n\t\t\t} else {\n\t\t\t\tlet componentPromise = rawComponent();\n\t\t\t\tif (process.env.NODE_ENV !== \"production\" && !(\"catch\" in componentPromise)) {\n\t\t\t\t\twarn$1(`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.`);\n\t\t\t\t\tcomponentPromise = Promise.resolve(componentPromise);\n\t\t\t\t}\n\t\t\t\tguards.push(() => componentPromise.then((resolved) => {\n\t\t\t\t\tif (!resolved) throw new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`);\n\t\t\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\t\t\trecord.mods[name] = resolved;\n\t\t\t\t\trecord.components[name] = resolvedComponent;\n\t\t\t\t\tconst guard = (resolvedComponent.__vccOpts || resolvedComponent)[guardType];\n\t\t\t\t\treturn guard && guardToPromiseFn(guard, to, from, record, name, runWithContext)();\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t}\n\treturn guards;\n}\n/**\n* Ensures a route is loaded, so it can be passed as o prop to `<RouterView>`.\n*\n* @param route - resolved route to load\n*/\nfunction loadRouteLocation(route) {\n\treturn route.matched.every((record) => record.redirect) ? Promise.reject(/* @__PURE__ */ new Error(\"Cannot load a route that redirects.\")) : Promise.all(route.matched.map((record) => record.components && Promise.all(Object.keys(record.components).reduce((promises, name) => {\n\t\tconst rawComponent = record.components[name];\n\t\tif (typeof rawComponent === \"function\" && !(\"displayName\" in rawComponent)) promises.push(rawComponent().then((resolved) => {\n\t\t\tif (!resolved) return Promise.reject(/* @__PURE__ */ new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\". Ensure you passed a function that returns a promise.`));\n\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\trecord.mods[name] = resolved;\n\t\t\trecord.components[name] = resolvedComponent;\n\t\t}));\n\t\treturn promises;\n\t}, [])))).then(() => route);\n}\n/**\n* Split the leaving, updating, and entering records.\n* @internal\n*\n* @param to - Location we are navigating to\n* @param from - Location we are navigating from\n*/\nfunction extractChangingRecords(to, from) {\n\tconst leavingRecords = [];\n\tconst updatingRecords = [];\n\tconst enteringRecords = [];\n\tconst len = Math.max(from.matched.length, to.matched.length);\n\tfor (let i = 0; i < len; i++) {\n\t\tconst recordFrom = from.matched[i];\n\t\tif (recordFrom) if (to.matched.find((record) => isSameRouteRecord(record, recordFrom))) updatingRecords.push(recordFrom);\n\t\telse leavingRecords.push(recordFrom);\n\t\tconst recordTo = to.matched[i];\n\t\tif (recordTo) {\n\t\t\tif (!from.matched.find((record) => isSameRouteRecord(record, recordTo))) enteringRecords.push(recordTo);\n\t\t}\n\t}\n\treturn [\n\t\tleavingRecords,\n\t\tupdatingRecords,\n\t\tenteringRecords\n\t];\n}\n\n//#endregion\n//#region src/devtools.ts\n/**\n* Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances).\n*\n* @param routeLocation - routeLocation to format\n* @param tooltip - optional tooltip\n* @returns a copy of the routeLocation\n*/\nfunction formatRouteLocation(routeLocation, tooltip) {\n\tconst copy = assign({}, routeLocation, { matched: routeLocation.matched.map((matched) => omit(matched, [\n\t\t\"instances\",\n\t\t\"children\",\n\t\t\"aliasOf\"\n\t])) });\n\treturn { _custom: {\n\t\ttype: null,\n\t\treadOnly: true,\n\t\tdisplay: routeLocation.fullPath,\n\t\ttooltip,\n\t\tvalue: copy\n\t} };\n}\nfunction formatDisplay(display) {\n\treturn { _custom: { display } };\n}\nlet routerId = 0;\nfunction addDevtools(app, router, matcher) {\n\tif (router.__hasDevtools) return;\n\trouter.__hasDevtools = true;\n\tconst id = routerId++;\n\tsetupDevtoolsPlugin({\n\t\tid: \"org.vuejs.router\" + (id ? \".\" + id : \"\"),\n\t\tlabel: \"Vue Router\",\n\t\tpackageName: \"vue-router\",\n\t\thomepage: \"https://router.vuejs.org\",\n\t\tlogo: \"https://router.vuejs.org/logo.png\",\n\t\tcomponentStateTypes: [\"Routing\"],\n\t\tapp\n\t}, (api) => {\n\t\tif (typeof api.now !== \"function\") warn$1(\"[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.\");\n\t\tapi.on.inspectComponent((payload, ctx) => {\n\t\t\tif (payload.instanceData) payload.instanceData.state.push({\n\t\t\t\ttype: \"Routing\",\n\t\t\t\tkey: \"$route\",\n\t\t\t\teditable: false,\n\t\t\t\tvalue: formatRouteLocation(router.currentRoute.value, \"Current Route\")\n\t\t\t});\n\t\t});\n\t\tapi.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\n\t\t\tif (componentInstance.__vrv_devtools) {\n\t\t\t\tconst info = componentInstance.__vrv_devtools;\n\t\t\t\tnode.tags.push({\n\t\t\t\t\tlabel: (info.name ? `${info.name.toString()}: ` : \"\") + info.path,\n\t\t\t\t\ttextColor: 0,\n\t\t\t\t\ttooltip: \"This component is rendered by <router-view>\",\n\t\t\t\t\tbackgroundColor: PINK_500\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (isArray(componentInstance.__vrl_devtools)) {\n\t\t\t\tcomponentInstance.__devtoolsApi = api;\n\t\t\t\tcomponentInstance.__vrl_devtools.forEach((devtoolsData) => {\n\t\t\t\t\tlet label = devtoolsData.route.path;\n\t\t\t\t\tlet backgroundColor = ORANGE_400;\n\t\t\t\t\tlet tooltip = \"\";\n\t\t\t\t\tlet textColor = 0;\n\t\t\t\t\tif (devtoolsData.error) {\n\t\t\t\t\t\tlabel = devtoolsData.error;\n\t\t\t\t\t\tbackgroundColor = RED_100;\n\t\t\t\t\t\ttextColor = RED_700;\n\t\t\t\t\t} else if (devtoolsData.isExactActive) {\n\t\t\t\t\t\tbackgroundColor = LIME_500;\n\t\t\t\t\t\ttooltip = \"This is exactly active\";\n\t\t\t\t\t} else if (devtoolsData.isActive) {\n\t\t\t\t\t\tbackgroundColor = BLUE_600;\n\t\t\t\t\t\ttooltip = \"This link is active\";\n\t\t\t\t\t}\n\t\t\t\t\tnode.tags.push({\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\ttooltip,\n\t\t\t\t\t\tbackgroundColor\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\twatch(router.currentRoute, () => {\n\t\t\trefreshRoutesView();\n\t\t\tapi.notifyComponentUpdate();\n\t\t\tapi.sendInspectorTree(routerInspectorId);\n\t\t\tapi.sendInspectorState(routerInspectorId);\n\t\t});\n\t\tconst navigationsLayerId = \"router:navigations:\" + id;\n\t\tapi.addTimelineLayer({\n\t\t\tid: navigationsLayerId,\n\t\t\tlabel: `Router${id ? \" \" + id : \"\"} Navigations`,\n\t\t\tcolor: 4237508\n\t\t});\n\t\trouter.onError((error, to) => {\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"Error during Navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tlogType: \"error\",\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata: { error },\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tlet navigationId = 0;\n\t\trouter.beforeEach((to, from) => {\n\t\t\tconst data = {\n\t\t\t\tguard: formatDisplay(\"beforeEach\"),\n\t\t\t\tfrom: formatRouteLocation(from, \"Current Location during this navigation\"),\n\t\t\t\tto: formatRouteLocation(to, \"Target location\")\n\t\t\t};\n\t\t\tObject.defineProperty(to.meta, \"__navigationId\", { value: navigationId++ });\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\ttitle: \"Start of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tdata,\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\trouter.afterEach((to, from, failure) => {\n\t\t\tconst data = { guard: formatDisplay(\"afterEach\") };\n\t\t\tif (failure) {\n\t\t\t\tdata.failure = { _custom: {\n\t\t\t\t\ttype: Error,\n\t\t\t\t\treadOnly: true,\n\t\t\t\t\tdisplay: failure ? failure.message : \"\",\n\t\t\t\t\ttooltip: \"Navigation Failure\",\n\t\t\t\t\tvalue: failure\n\t\t\t\t} };\n\t\t\t\tdata.status = formatDisplay(\"❌\");\n\t\t\t} else data.status = formatDisplay(\"✅\");\n\t\t\tdata.from = formatRouteLocation(from, \"Current Location during this navigation\");\n\t\t\tdata.to = formatRouteLocation(to, \"Target location\");\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"End of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata,\n\t\t\t\t\tlogType: failure ? \"warning\" : \"default\",\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\t/**\n\t\t* Inspector of Existing routes\n\t\t*/\n\t\tconst routerInspectorId = \"router-inspector:\" + id;\n\t\tapi.addInspector({\n\t\t\tid: routerInspectorId,\n\t\t\tlabel: \"Routes\" + (id ? \" \" + id : \"\"),\n\t\t\ticon: \"book\",\n\t\t\ttreeFilterPlaceholder: \"Search routes\"\n\t\t});\n\t\tfunction refreshRoutesView() {\n\t\t\tif (!activeRoutesPayload) return;\n\t\t\tconst payload = activeRoutesPayload;\n\t\t\tlet routes = matcher.getRoutes().filter((route) => !route.parent || !route.parent.record.components);\n\t\t\troutes.forEach(resetMatchStateOnRouteRecord);\n\t\t\tif (payload.filter) routes = routes.filter((route) => isRouteMatching(route, payload.filter.toLowerCase()));\n\t\t\troutes.forEach((route) => markRouteRecordActive(route, router.currentRoute.value));\n\t\t\tpayload.rootNodes = routes.map(formatRouteRecordForInspector);\n\t\t}\n\t\tlet activeRoutesPayload;\n\t\tapi.on.getInspectorTree((payload) => {\n\t\t\tactiveRoutesPayload = payload;\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) refreshRoutesView();\n\t\t});\n\t\t/**\n\t\t* Display information about the currently selected route record\n\t\t*/\n\t\tapi.on.getInspectorState((payload) => {\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) {\n\t\t\t\tconst route = matcher.getRoutes().find((route$1) => route$1.record.__vd_id === payload.nodeId);\n\t\t\t\tif (route) payload.state = { options: formatRouteRecordMatcherForStateInspector(route) };\n\t\t\t}\n\t\t});\n\t\tapi.sendInspectorTree(routerInspectorId);\n\t\tapi.sendInspectorState(routerInspectorId);\n\t});\n}\nfunction modifierForKey(key) {\n\tif (key.optional) return key.repeatable ? \"*\" : \"?\";\n\telse return key.repeatable ? \"+\" : \"\";\n}\nfunction formatRouteRecordMatcherForStateInspector(route) {\n\tconst { record } = route;\n\tconst fields = [{\n\t\teditable: false,\n\t\tkey: \"path\",\n\t\tvalue: record.path\n\t}];\n\tif (record.name != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"name\",\n\t\tvalue: record.name\n\t});\n\tfields.push({\n\t\teditable: false,\n\t\tkey: \"regexp\",\n\t\tvalue: route.re\n\t});\n\tif (route.keys.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"keys\",\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.keys.map((key) => `${key.name}${modifierForKey(key)}`).join(\" \"),\n\t\t\ttooltip: \"Param keys\",\n\t\t\tvalue: route.keys\n\t\t} }\n\t});\n\tif (record.redirect != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"redirect\",\n\t\tvalue: record.redirect\n\t});\n\tif (route.alias.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"aliases\",\n\t\tvalue: route.alias.map((alias) => alias.record.path)\n\t});\n\tif (Object.keys(route.record.meta).length) fields.push({\n\t\teditable: false,\n\t\tkey: \"meta\",\n\t\tvalue: route.record.meta\n\t});\n\tfields.push({\n\t\tkey: \"score\",\n\t\teditable: false,\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.score.map((score) => score.join(\", \")).join(\" | \"),\n\t\t\ttooltip: \"Score used to sort routes\",\n\t\t\tvalue: route.score\n\t\t} }\n\t});\n\treturn fields;\n}\n/**\n* Extracted from tailwind palette\n*/\nconst PINK_500 = 15485081;\nconst BLUE_600 = 2450411;\nconst LIME_500 = 8702998;\nconst CYAN_400 = 2282478;\nconst ORANGE_400 = 16486972;\nconst DARK = 6710886;\nconst RED_100 = 16704226;\nconst RED_700 = 12131356;\nfunction formatRouteRecordForInspector(route) {\n\tconst tags = [];\n\tconst { record } = route;\n\tif (record.name != null) tags.push({\n\t\tlabel: String(record.name),\n\t\ttextColor: 0,\n\t\tbackgroundColor: CYAN_400\n\t});\n\tif (record.aliasOf) tags.push({\n\t\tlabel: \"alias\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: ORANGE_400\n\t});\n\tif (route.__vd_match) tags.push({\n\t\tlabel: \"matches\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: PINK_500\n\t});\n\tif (route.__vd_exactActive) tags.push({\n\t\tlabel: \"exact\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: LIME_500\n\t});\n\tif (route.__vd_active) tags.push({\n\t\tlabel: \"active\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: BLUE_600\n\t});\n\tif (record.redirect) tags.push({\n\t\tlabel: typeof record.redirect === \"string\" ? `redirect: ${record.redirect}` : \"redirects\",\n\t\ttextColor: 16777215,\n\t\tbackgroundColor: DARK\n\t});\n\tlet id = record.__vd_id;\n\tif (id == null) {\n\t\tid = String(routeRecordId++);\n\t\trecord.__vd_id = id;\n\t}\n\treturn {\n\t\tid,\n\t\tlabel: record.path,\n\t\ttags,\n\t\tchildren: route.children.map(formatRouteRecordForInspector)\n\t};\n}\nlet routeRecordId = 0;\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\nfunction markRouteRecordActive(route, currentRoute) {\n\tconst isExactActive = currentRoute.matched.length && isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\n\troute.__vd_exactActive = route.__vd_active = isExactActive;\n\tif (!isExactActive) route.__vd_active = currentRoute.matched.some((match) => isSameRouteRecord(match, route.record));\n\troute.children.forEach((childRoute) => markRouteRecordActive(childRoute, currentRoute));\n}\nfunction resetMatchStateOnRouteRecord(route) {\n\troute.__vd_match = false;\n\troute.children.forEach(resetMatchStateOnRouteRecord);\n}\nfunction isRouteMatching(route, filter) {\n\tconst found = String(route.re).match(EXTRACT_REGEXP_RE);\n\troute.__vd_match = false;\n\tif (!found || found.length < 3) return false;\n\tif (new RegExp(found[1].replace(/\\$$/, \"\"), found[2]).test(filter)) {\n\t\troute.children.forEach((child) => isRouteMatching(child, filter));\n\t\tif (route.record.path !== \"/\" || filter === \"/\") {\n\t\t\troute.__vd_match = route.re.test(filter);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tconst path = route.record.path.toLowerCase();\n\tconst decodedPath = decode(path);\n\tif (!filter.startsWith(\"/\") && (decodedPath.includes(filter) || path.includes(filter))) return true;\n\tif (decodedPath.startsWith(filter) || path.startsWith(filter)) return true;\n\tif (route.record.name && String(route.record.name).includes(filter)) return true;\n\treturn route.children.some((child) => isRouteMatching(child, filter));\n}\nfunction omit(obj, keys) {\n\tconst ret = {};\n\tfor (const key in obj) if (!keys.includes(key)) ret[key] = obj[key];\n\treturn ret;\n}\n\n//#endregion\nexport { isBrowser as $, START as A, stringifyURL as B, computeScrollPosition as C, scrollToPosition as D, saveScrollPosition as E, isSameRouteLocation as F, encodePath as G, decode as H, isSameRouteLocationParams as I, assign as J, warn$1 as K, isSameRouteRecord as L, normalizeBase as M, NEW_stringifyURL as N, NavigationDirection as O, START_LOCATION_NORMALIZED as P, noop as Q, parseURL as R, isRouteName as S, getScrollKey as T, encodeHash as U, stripBase as V, encodeParam as W, isArray as X, identityFn as Y, mergeOptions as Z, ErrorTypes as _, loadRouteLocation as a, isNavigationFailure as b, useCallbacks as c, routerKey as d, routerViewLocationKey as f, stringifyQuery as g, parseQuery as h, guardToPromiseFn as i, createHref as j, NavigationType as k, matchedRouteKey as l, normalizeQuery as m, extractChangingRecords as n, onBeforeRouteLeave as o, viewDepthKey as p, applyToParams as q, extractComponentsGuards as r, onBeforeRouteUpdate as s, addDevtools as t, routeLocationKey as u, NavigationFailureType as v, getSavedScrollPosition as w, isRouteLocation as x, createRouterError as y, resolveRelativePath as z };","/*!\n * vue-router v4.6.4\n * (c) 2025 Eduardo San Martin Morote\n * @license MIT\n */\nimport { $ as isBrowser, A as START, B as stringifyURL, C as computeScrollPosition, D as scrollToPosition, E as saveScrollPosition, F as isSameRouteLocation, H as decode, I as isSameRouteLocationParams, J as assign, K as warn$1, L as isSameRouteRecord, M as normalizeBase, O as NavigationDirection, P as START_LOCATION_NORMALIZED, Q as noop, R as parseURL, S as isRouteName, T as getScrollKey, U as encodeHash, V as stripBase, W as encodeParam, X as isArray, Z as mergeOptions, _ as ErrorTypes, a as loadRouteLocation, b as isNavigationFailure, c as useCallbacks, d as routerKey, f as routerViewLocationKey, g as stringifyQuery, h as parseQuery, i as guardToPromiseFn, j as createHref, k as NavigationType, l as matchedRouteKey, m as normalizeQuery, n as extractChangingRecords, o as onBeforeRouteLeave, p as viewDepthKey, q as applyToParams, r as extractComponentsGuards, s as onBeforeRouteUpdate, t as addDevtools, u as routeLocationKey, v as NavigationFailureType, w as getSavedScrollPosition, x as isRouteLocation, y as createRouterError } from \"./devtools-EWN81iOl.mjs\";\nimport { computed, defineComponent, getCurrentInstance, h, inject, nextTick, provide, reactive, ref, shallowReactive, shallowRef, unref, watch, watchEffect } from \"vue\";\n\n//#region src/history/html5.ts\nlet createBaseLocation = () => location.protocol + \"//\" + location.host;\n/**\n* Creates a normalized history location from a window.location object\n* @param base - The base path\n* @param location - The window.location object\n*/\nfunction createCurrentLocation(base, location$1) {\n\tconst { pathname, search, hash } = location$1;\n\tconst hashPos = base.indexOf(\"#\");\n\tif (hashPos > -1) {\n\t\tlet slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n\t\tlet pathFromHash = hash.slice(slicePos);\n\t\tif (pathFromHash[0] !== \"/\") pathFromHash = \"/\" + pathFromHash;\n\t\treturn stripBase(pathFromHash, \"\");\n\t}\n\treturn stripBase(pathname, base) + search + hash;\n}\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\n\tlet listeners = [];\n\tlet teardowns = [];\n\tlet pauseState = null;\n\tconst popStateHandler = ({ state }) => {\n\t\tconst to = createCurrentLocation(base, location);\n\t\tconst from = currentLocation.value;\n\t\tconst fromState = historyState.value;\n\t\tlet delta = 0;\n\t\tif (state) {\n\t\t\tcurrentLocation.value = to;\n\t\t\thistoryState.value = state;\n\t\t\tif (pauseState && pauseState === from) {\n\t\t\t\tpauseState = null;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdelta = fromState ? state.position - fromState.position : 0;\n\t\t} else replace(to);\n\t\tlisteners.forEach((listener) => {\n\t\t\tlistener(currentLocation.value, from, {\n\t\t\t\tdelta,\n\t\t\t\ttype: NavigationType.pop,\n\t\t\t\tdirection: delta ? delta > 0 ? NavigationDirection.forward : NavigationDirection.back : NavigationDirection.unknown\n\t\t\t});\n\t\t});\n\t};\n\tfunction pauseListeners() {\n\t\tpauseState = currentLocation.value;\n\t}\n\tfunction listen(callback) {\n\t\tlisteners.push(callback);\n\t\tconst teardown = () => {\n\t\t\tconst index = listeners.indexOf(callback);\n\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t};\n\t\tteardowns.push(teardown);\n\t\treturn teardown;\n\t}\n\tfunction beforeUnloadListener() {\n\t\tif (document.visibilityState === \"hidden\") {\n\t\t\tconst { history: history$1 } = window;\n\t\t\tif (!history$1.state) return;\n\t\t\thistory$1.replaceState(assign({}, history$1.state, { scroll: computeScrollPosition() }), \"\");\n\t\t}\n\t}\n\tfunction destroy() {\n\t\tfor (const teardown of teardowns) teardown();\n\t\tteardowns = [];\n\t\twindow.removeEventListener(\"popstate\", popStateHandler);\n\t\twindow.removeEventListener(\"pagehide\", beforeUnloadListener);\n\t\tdocument.removeEventListener(\"visibilitychange\", beforeUnloadListener);\n\t}\n\twindow.addEventListener(\"popstate\", popStateHandler);\n\twindow.addEventListener(\"pagehide\", beforeUnloadListener);\n\tdocument.addEventListener(\"visibilitychange\", beforeUnloadListener);\n\treturn {\n\t\tpauseListeners,\n\t\tlisten,\n\t\tdestroy\n\t};\n}\n/**\n* Creates a state object\n*/\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\n\treturn {\n\t\tback,\n\t\tcurrent,\n\t\tforward,\n\t\treplaced,\n\t\tposition: window.history.length,\n\t\tscroll: computeScroll ? computeScrollPosition() : null\n\t};\n}\nfunction useHistoryStateNavigation(base) {\n\tconst { history: history$1, location: location$1 } = window;\n\tconst currentLocation = { value: createCurrentLocation(base, location$1) };\n\tconst historyState = { value: history$1.state };\n\tif (!historyState.value) changeLocation(currentLocation.value, {\n\t\tback: null,\n\t\tcurrent: currentLocation.value,\n\t\tforward: null,\n\t\tposition: history$1.length - 1,\n\t\treplaced: true,\n\t\tscroll: null\n\t}, true);\n\tfunction changeLocation(to, state, replace$1) {\n\t\t/**\n\t\t* if a base tag is provided, and we are on a normal domain, we have to\n\t\t* respect the provided `base` attribute because pushState() will use it and\n\t\t* potentially erase anything before the `#` like at\n\t\t* https://github.com/vuejs/router/issues/685 where a base of\n\t\t* `/folder/#` but a base of `/` would erase the `/folder/` section. If\n\t\t* there is no host, the `<base>` tag makes no sense and if there isn't a\n\t\t* base tag we can just use everything after the `#`.\n\t\t*/\n\t\tconst hashIndex = base.indexOf(\"#\");\n\t\tconst url = hashIndex > -1 ? (location$1.host && document.querySelector(\"base\") ? base : base.slice(hashIndex)) + to : createBaseLocation() + base + to;\n\t\ttry {\n\t\t\thistory$1[replace$1 ? \"replaceState\" : \"pushState\"](state, \"\", url);\n\t\t\thistoryState.value = state;\n\t\t} catch (err) {\n\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"Error with push/replace State\", err);\n\t\t\telse console.error(err);\n\t\t\tlocation$1[replace$1 ? \"replace\" : \"assign\"](url);\n\t\t}\n\t}\n\tfunction replace(to, data) {\n\t\tchangeLocation(to, assign({}, history$1.state, buildState(historyState.value.back, to, historyState.value.forward, true), data, { position: historyState.value.position }), true);\n\t\tcurrentLocation.value = to;\n\t}\n\tfunction push(to, data) {\n\t\tconst currentState = assign({}, historyState.value, history$1.state, {\n\t\t\tforward: to,\n\t\t\tscroll: computeScrollPosition()\n\t\t});\n\t\tif (process.env.NODE_ENV !== \"production\" && !history$1.state) warn$1(\"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\\nhistory.replaceState(history.state, '', url)\\n\\nYou can find more information at https://router.vuejs.org/guide/migration/#Usage-of-history-state\");\n\t\tchangeLocation(currentState.current, currentState, true);\n\t\tchangeLocation(to, assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data), false);\n\t\tcurrentLocation.value = to;\n\t}\n\treturn {\n\t\tlocation: currentLocation,\n\t\tstate: historyState,\n\t\tpush,\n\t\treplace\n\t};\n}\n/**\n* Creates an HTML5 history. Most common history for single page applications.\n*\n* @param base -\n*/\nfunction createWebHistory(base) {\n\tbase = normalizeBase(base);\n\tconst historyNavigation = useHistoryStateNavigation(base);\n\tconst historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\n\tfunction go(delta, triggerListeners = true) {\n\t\tif (!triggerListeners) historyListeners.pauseListeners();\n\t\thistory.go(delta);\n\t}\n\tconst routerHistory = assign({\n\t\tlocation: \"\",\n\t\tbase,\n\t\tgo,\n\t\tcreateHref: createHref.bind(null, base)\n\t}, historyNavigation, historyListeners);\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.location.value\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.state.value\n\t});\n\treturn routerHistory;\n}\n\n//#endregion\n//#region src/history/memory.ts\n/**\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.\n* It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\n*\n* @param base - Base applied to all urls, defaults to '/'\n* @returns a history object that can be passed to the router constructor\n*/\nfunction createMemoryHistory(base = \"\") {\n\tlet listeners = [];\n\tlet queue = [[START, {}]];\n\tlet position = 0;\n\tbase = normalizeBase(base);\n\tfunction setLocation(location$1, state = {}) {\n\t\tposition++;\n\t\tif (position !== queue.length) queue.splice(position);\n\t\tqueue.push([location$1, state]);\n\t}\n\tfunction triggerListeners(to, from, { direction, delta }) {\n\t\tconst info = {\n\t\t\tdirection,\n\t\t\tdelta,\n\t\t\ttype: NavigationType.pop\n\t\t};\n\t\tfor (const callback of listeners) callback(to, from, info);\n\t}\n\tconst routerHistory = {\n\t\tlocation: START,\n\t\tstate: {},\n\t\tbase,\n\t\tcreateHref: createHref.bind(null, base),\n\t\treplace(to, state) {\n\t\t\tqueue.splice(position--, 1);\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tpush(to, state) {\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tlisten(callback) {\n\t\t\tlisteners.push(callback);\n\t\t\treturn () => {\n\t\t\t\tconst index = listeners.indexOf(callback);\n\t\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t\t};\n\t\t},\n\t\tdestroy() {\n\t\t\tlisteners = [];\n\t\t\tqueue = [[START, {}]];\n\t\t\tposition = 0;\n\t\t},\n\t\tgo(delta, shouldTrigger = true) {\n\t\t\tconst from = this.location;\n\t\t\tconst direction = delta < 0 ? NavigationDirection.back : NavigationDirection.forward;\n\t\t\tposition = Math.max(0, Math.min(position + delta, queue.length - 1));\n\t\t\tif (shouldTrigger) triggerListeners(this.location, from, {\n\t\t\t\tdirection,\n\t\t\t\tdelta\n\t\t\t});\n\t\t}\n\t};\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][0]\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][1]\n\t});\n\treturn routerHistory;\n}\n\n//#endregion\n//#region src/history/hash.ts\n/**\n* Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to\n* handle any URL is not possible.\n*\n* @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `<base>` tag\n* in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState()\n* calls**, meaning that if you use a `<base>` tag, it's `href` value **has to match this parameter** (ignoring anything\n* after the `#`).\n*\n* @example\n* ```js\n* // at https://example.com/folder\n* createWebHashHistory() // gives a url of `https://example.com/folder#`\n* createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\n* // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\n* createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\n* // you should avoid doing this because it changes the original url and breaks copying urls\n* createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\n*\n* // at file:///usr/etc/folder/index.html\n* // for locations with no `host`, the base is ignored\n* createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\n* ```\n*/\nfunction createWebHashHistory(base) {\n\tbase = location.host ? base || location.pathname + location.search : \"\";\n\tif (!base.includes(\"#\")) base += \"#\";\n\tif (process.env.NODE_ENV !== \"production\" && !base.endsWith(\"#/\") && !base.endsWith(\"#\")) warn$1(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, \"#\")}\".`);\n\treturn createWebHistory(base);\n}\n\n//#endregion\n//#region src/matcher/pathTokenizer.ts\nlet TokenType = /* @__PURE__ */ function(TokenType$1) {\n\tTokenType$1[TokenType$1[\"Static\"] = 0] = \"Static\";\n\tTokenType$1[TokenType$1[\"Param\"] = 1] = \"Param\";\n\tTokenType$1[TokenType$1[\"Group\"] = 2] = \"Group\";\n\treturn TokenType$1;\n}({});\nvar TokenizerState = /* @__PURE__ */ function(TokenizerState$1) {\n\tTokenizerState$1[TokenizerState$1[\"Static\"] = 0] = \"Static\";\n\tTokenizerState$1[TokenizerState$1[\"Param\"] = 1] = \"Param\";\n\tTokenizerState$1[TokenizerState$1[\"ParamRegExp\"] = 2] = \"ParamRegExp\";\n\tTokenizerState$1[TokenizerState$1[\"ParamRegExpEnd\"] = 3] = \"ParamRegExpEnd\";\n\tTokenizerState$1[TokenizerState$1[\"EscapeNext\"] = 4] = \"EscapeNext\";\n\treturn TokenizerState$1;\n}(TokenizerState || {});\nconst ROOT_TOKEN = {\n\ttype: TokenType.Static,\n\tvalue: \"\"\n};\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\nfunction tokenizePath(path) {\n\tif (!path) return [[]];\n\tif (path === \"/\") return [[ROOT_TOKEN]];\n\tif (!path.startsWith(\"/\")) throw new Error(process.env.NODE_ENV !== \"production\" ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".` : `Invalid path \"${path}\"`);\n\tfunction crash(message) {\n\t\tthrow new Error(`ERR (${state})/\"${buffer}\": ${message}`);\n\t}\n\tlet state = TokenizerState.Static;\n\tlet previousState = state;\n\tconst tokens = [];\n\tlet segment;\n\tfunction finalizeSegment() {\n\t\tif (segment) tokens.push(segment);\n\t\tsegment = [];\n\t}\n\tlet i = 0;\n\tlet char;\n\tlet buffer = \"\";\n\tlet customRe = \"\";\n\tfunction consumeBuffer() {\n\t\tif (!buffer) return;\n\t\tif (state === TokenizerState.Static) segment.push({\n\t\t\ttype: TokenType.Static,\n\t\t\tvalue: buffer\n\t\t});\n\t\telse if (state === TokenizerState.Param || state === TokenizerState.ParamRegExp || state === TokenizerState.ParamRegExpEnd) {\n\t\t\tif (segment.length > 1 && (char === \"*\" || char === \"+\")) crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\n\t\t\tsegment.push({\n\t\t\t\ttype: TokenType.Param,\n\t\t\t\tvalue: buffer,\n\t\t\t\tregexp: customRe,\n\t\t\t\trepeatable: char === \"*\" || char === \"+\",\n\t\t\t\toptional: char === \"*\" || char === \"?\"\n\t\t\t});\n\t\t} else crash(\"Invalid state to consume buffer\");\n\t\tbuffer = \"\";\n\t}\n\tfunction addCharToBuffer() {\n\t\tbuffer += char;\n\t}\n\twhile (i < path.length) {\n\t\tchar = path[i++];\n\t\tif (char === \"\\\\\" && state !== TokenizerState.ParamRegExp) {\n\t\t\tpreviousState = state;\n\t\t\tstate = TokenizerState.EscapeNext;\n\t\t\tcontinue;\n\t\t}\n\t\tswitch (state) {\n\t\t\tcase TokenizerState.Static:\n\t\t\t\tif (char === \"/\") {\n\t\t\t\t\tif (buffer) consumeBuffer();\n\t\t\t\t\tfinalizeSegment();\n\t\t\t\t} else if (char === \":\") {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = TokenizerState.Param;\n\t\t\t\t} else addCharToBuffer();\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.EscapeNext:\n\t\t\t\taddCharToBuffer();\n\t\t\t\tstate = previousState;\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.Param:\n\t\t\t\tif (char === \"(\") state = TokenizerState.ParamRegExp;\n\t\t\t\telse if (VALID_PARAM_RE.test(char)) addCharToBuffer();\n\t\t\t\telse {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = TokenizerState.Static;\n\t\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.ParamRegExp:\n\t\t\t\tif (char === \")\") if (customRe[customRe.length - 1] == \"\\\\\") customRe = customRe.slice(0, -1) + char;\n\t\t\t\telse state = TokenizerState.ParamRegExpEnd;\n\t\t\t\telse customRe += char;\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.ParamRegExpEnd:\n\t\t\t\tconsumeBuffer();\n\t\t\t\tstate = TokenizerState.Static;\n\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\tcustomRe = \"\";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcrash(\"Unknown state\");\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tif (state === TokenizerState.ParamRegExp) crash(`Unfinished custom RegExp for param \"${buffer}\"`);\n\tconsumeBuffer();\n\tfinalizeSegment();\n\treturn tokens;\n}\n\n//#endregion\n//#region src/matcher/pathParserRanker.ts\nconst BASE_PARAM_PATTERN = \"[^/]+?\";\nconst BASE_PATH_PARSER_OPTIONS = {\n\tsensitive: false,\n\tstrict: false,\n\tstart: true,\n\tend: true\n};\nvar PathScore = /* @__PURE__ */ function(PathScore$1) {\n\tPathScore$1[PathScore$1[\"_multiplier\"] = 10] = \"_multiplier\";\n\tPathScore$1[PathScore$1[\"Root\"] = 90] = \"Root\";\n\tPathScore$1[PathScore$1[\"Segment\"] = 40] = \"Segment\";\n\tPathScore$1[PathScore$1[\"SubSegment\"] = 30] = \"SubSegment\";\n\tPathScore$1[PathScore$1[\"Static\"] = 40] = \"Static\";\n\tPathScore$1[PathScore$1[\"Dynamic\"] = 20] = \"Dynamic\";\n\tPathScore$1[PathScore$1[\"BonusCustomRegExp\"] = 10] = \"BonusCustomRegExp\";\n\tPathScore$1[PathScore$1[\"BonusWildcard\"] = -50] = \"BonusWildcard\";\n\tPathScore$1[PathScore$1[\"BonusRepeatable\"] = -20] = \"BonusRepeatable\";\n\tPathScore$1[PathScore$1[\"BonusOptional\"] = -8] = \"BonusOptional\";\n\tPathScore$1[PathScore$1[\"BonusStrict\"] = .7000000000000001] = \"BonusStrict\";\n\tPathScore$1[PathScore$1[\"BonusCaseSensitive\"] = .25] = \"BonusCaseSensitive\";\n\treturn PathScore$1;\n}(PathScore || {});\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\n/**\n* Creates a path parser from an array of Segments (a segment is an array of Tokens)\n*\n* @param segments - array of segments returned by tokenizePath\n* @param extraOptions - optional options for the regexp\n* @returns a PathParser\n*/\nfunction tokensToParser(segments, extraOptions) {\n\tconst options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\n\tconst score = [];\n\tlet pattern = options.start ? \"^\" : \"\";\n\tconst keys = [];\n\tfor (const segment of segments) {\n\t\tconst segmentScores = segment.length ? [] : [PathScore.Root];\n\t\tif (options.strict && !segment.length) pattern += \"/\";\n\t\tfor (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\n\t\t\tconst token = segment[tokenIndex];\n\t\t\tlet subSegmentScore = PathScore.Segment + (options.sensitive ? PathScore.BonusCaseSensitive : 0);\n\t\t\tif (token.type === TokenType.Static) {\n\t\t\t\tif (!tokenIndex) pattern += \"/\";\n\t\t\t\tpattern += token.value.replace(REGEX_CHARS_RE, \"\\\\$&\");\n\t\t\t\tsubSegmentScore += PathScore.Static;\n\t\t\t} else if (token.type === TokenType.Param) {\n\t\t\t\tconst { value, repeatable, optional, regexp } = token;\n\t\t\t\tkeys.push({\n\t\t\t\t\tname: value,\n\t\t\t\t\trepeatable,\n\t\t\t\t\toptional\n\t\t\t\t});\n\t\t\t\tconst re$1 = regexp ? regexp : BASE_PARAM_PATTERN;\n\t\t\t\tif (re$1 !== BASE_PARAM_PATTERN) {\n\t\t\t\t\tsubSegmentScore += PathScore.BonusCustomRegExp;\n\t\t\t\t\ttry {\n\t\t\t\t\t\t`${re$1}`;\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tthrow new Error(`Invalid custom RegExp for param \"${value}\" (${re$1}): ` + err.message);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlet subPattern = repeatable ? `((?:${re$1})(?:/(?:${re$1}))*)` : `(${re$1})`;\n\t\t\t\tif (!tokenIndex) subPattern = optional && segment.length < 2 ? `(?:/${subPattern})` : \"/\" + subPattern;\n\t\t\t\tif (optional) subPattern += \"?\";\n\t\t\t\tpattern += subPattern;\n\t\t\t\tsubSegmentScore += PathScore.Dynamic;\n\t\t\t\tif (optional) subSegmentScore += PathScore.BonusOptional;\n\t\t\t\tif (repeatable) subSegmentScore += PathScore.BonusRepeatable;\n\t\t\t\tif (re$1 === \".*\") subSegmentScore += PathScore.BonusWildcard;\n\t\t\t}\n\t\t\tsegmentScores.push(subSegmentScore);\n\t\t}\n\t\tscore.push(segmentScores);\n\t}\n\tif (options.strict && options.end) {\n\t\tconst i = score.length - 1;\n\t\tscore[i][score[i].length - 1] += PathScore.BonusStrict;\n\t}\n\tif (!options.strict) pattern += \"/?\";\n\tif (options.end) pattern += \"$\";\n\telse if (options.strict && !pattern.endsWith(\"/\")) pattern += \"(?:/|$)\";\n\tconst re = new RegExp(pattern, options.sensitive ? \"\" : \"i\");\n\tfunction parse(path) {\n\t\tconst match = path.match(re);\n\t\tconst params = {};\n\t\tif (!match) return null;\n\t\tfor (let i = 1; i < match.length; i++) {\n\t\t\tconst value = match[i] || \"\";\n\t\t\tconst key = keys[i - 1];\n\t\t\tparams[key.name] = value && key.repeatable ? value.split(\"/\") : value;\n\t\t}\n\t\treturn params;\n\t}\n\tfunction stringify(params) {\n\t\tlet path = \"\";\n\t\tlet avoidDuplicatedSlash = false;\n\t\tfor (const segment of segments) {\n\t\t\tif (!avoidDuplicatedSlash || !path.endsWith(\"/\")) path += \"/\";\n\t\t\tavoidDuplicatedSlash = false;\n\t\t\tfor (const token of segment) if (token.type === TokenType.Static) path += token.value;\n\t\t\telse if (token.type === TokenType.Param) {\n\t\t\t\tconst { value, repeatable, optional } = token;\n\t\t\t\tconst param = value in params ? params[value] : \"\";\n\t\t\t\tif (isArray(param) && !repeatable) throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\n\t\t\t\tconst text = isArray(param) ? param.join(\"/\") : param;\n\t\t\t\tif (!text) if (optional) {\n\t\t\t\t\tif (segment.length < 2) if (path.endsWith(\"/\")) path = path.slice(0, -1);\n\t\t\t\t\telse avoidDuplicatedSlash = true;\n\t\t\t\t} else throw new Error(`Missing required param \"${value}\"`);\n\t\t\t\tpath += text;\n\t\t\t}\n\t\t}\n\t\treturn path || \"/\";\n\t}\n\treturn {\n\t\tre,\n\t\tscore,\n\t\tkeys,\n\t\tparse,\n\t\tstringify\n\t};\n}\n/**\n* Compares an array of numbers as used in PathParser.score and returns a\n* number. This function can be used to `sort` an array\n*\n* @param a - first array of numbers\n* @param b - second array of numbers\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n* should be sorted first\n*/\nfunction compareScoreArray(a, b) {\n\tlet i = 0;\n\twhile (i < a.length && i < b.length) {\n\t\tconst diff = b[i] - a[i];\n\t\tif (diff) return diff;\n\t\ti++;\n\t}\n\tif (a.length < b.length) return a.length === 1 && a[0] === PathScore.Static + PathScore.Segment ? -1 : 1;\n\telse if (a.length > b.length) return b.length === 1 && b[0] === PathScore.Static + PathScore.Segment ? 1 : -1;\n\treturn 0;\n}\n/**\n* Compare function that can be used with `sort` to sort an array of PathParser\n*\n* @param a - first PathParser\n* @param b - second PathParser\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n*/\nfunction comparePathParserScore(a, b) {\n\tlet i = 0;\n\tconst aScore = a.score;\n\tconst bScore = b.score;\n\twhile (i < aScore.length && i < bScore.length) {\n\t\tconst comp = compareScoreArray(aScore[i], bScore[i]);\n\t\tif (comp) return comp;\n\t\ti++;\n\t}\n\tif (Math.abs(bScore.length - aScore.length) === 1) {\n\t\tif (isLastScoreNegative(aScore)) return 1;\n\t\tif (isLastScoreNegative(bScore)) return -1;\n\t}\n\treturn bScore.length - aScore.length;\n}\n/**\n* This allows detecting splats at the end of a path: /home/:id(.*)*\n*\n* @param score - score to check\n* @returns true if the last entry is negative\n*/\nfunction isLastScoreNegative(score) {\n\tconst last = score[score.length - 1];\n\treturn score.length > 0 && last[last.length - 1] < 0;\n}\nconst PATH_PARSER_OPTIONS_DEFAULTS = {\n\tstrict: false,\n\tend: true,\n\tsensitive: false\n};\n\n//#endregion\n//#region src/matcher/pathMatcher.ts\nfunction createRouteRecordMatcher(record, parent, options) {\n\tconst parser = tokensToParser(tokenizePath(record.path), options);\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst existingKeys = /* @__PURE__ */ new Set();\n\t\tfor (const key of parser.keys) {\n\t\t\tif (existingKeys.has(key.name)) warn$1(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\n\t\t\texistingKeys.add(key.name);\n\t\t}\n\t}\n\tconst matcher = assign(parser, {\n\t\trecord,\n\t\tparent,\n\t\tchildren: [],\n\t\talias: []\n\t});\n\tif (parent) {\n\t\tif (!matcher.record.aliasOf === !parent.record.aliasOf) parent.children.push(matcher);\n\t}\n\treturn matcher;\n}\n\n//#endregion\n//#region src/matcher/index.ts\n/**\n* Creates a Router Matcher.\n*\n* @internal\n* @param routes - array of initial routes\n* @param globalOptions - global route options\n*/\nfunction createRouterMatcher(routes, globalOptions) {\n\tconst matchers = [];\n\tconst matcherMap = /* @__PURE__ */ new Map();\n\tglobalOptions = mergeOptions(PATH_PARSER_OPTIONS_DEFAULTS, globalOptions);\n\tfunction getRecordMatcher(name) {\n\t\treturn matcherMap.get(name);\n\t}\n\tfunction addRoute(record, parent, originalRecord) {\n\t\tconst isRootAdd = !originalRecord;\n\t\tconst mainNormalizedRecord = normalizeRouteRecord(record);\n\t\tif (process.env.NODE_ENV !== \"production\") checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\n\t\tmainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\n\t\tconst options = mergeOptions(globalOptions, record);\n\t\tconst normalizedRecords = [mainNormalizedRecord];\n\t\tif (\"alias\" in record) {\n\t\t\tconst aliases = typeof record.alias === \"string\" ? [record.alias] : record.alias;\n\t\t\tfor (const alias of aliases) normalizedRecords.push(normalizeRouteRecord(assign({}, mainNormalizedRecord, {\n\t\t\t\tcomponents: originalRecord ? originalRecord.record.components : mainNormalizedRecord.components,\n\t\t\t\tpath: alias,\n\t\t\t\taliasOf: originalRecord ? originalRecord.record : mainNormalizedRecord\n\t\t\t})));\n\t\t}\n\t\tlet matcher;\n\t\tlet originalMatcher;\n\t\tfor (const normalizedRecord of normalizedRecords) {\n\t\t\tconst { path } = normalizedRecord;\n\t\t\tif (parent && path[0] !== \"/\") {\n\t\t\t\tconst parentPath = parent.record.path;\n\t\t\t\tconst connectingSlash = parentPath[parentPath.length - 1] === \"/\" ? \"\" : \"/\";\n\t\t\t\tnormalizedRecord.path = parent.record.path + (path && connectingSlash + path);\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && normalizedRecord.path === \"*\") throw new Error(\"Catch all routes (\\\"*\\\") must now be defined using a param with a custom regexp.\\nSee more at https://router.vuejs.org/guide/migration/#Removed-star-or-catch-all-routes.\");\n\t\t\tmatcher = createRouteRecordMatcher(normalizedRecord, parent, options);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && parent && path[0] === \"/\") checkMissingParamsInAbsolutePath(matcher, parent);\n\t\t\tif (originalRecord) {\n\t\t\t\toriginalRecord.alias.push(matcher);\n\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameParams(originalRecord, matcher);\n\t\t\t} else {\n\t\t\t\toriginalMatcher = originalMatcher || matcher;\n\t\t\t\tif (originalMatcher !== matcher) originalMatcher.alias.push(matcher);\n\t\t\t\tif (isRootAdd && record.name && !isAliasRecord(matcher)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameNameAsAncestor(record, parent);\n\t\t\t\t\tremoveRoute(record.name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isMatchable(matcher)) insertMatcher(matcher);\n\t\t\tif (mainNormalizedRecord.children) {\n\t\t\t\tconst children = mainNormalizedRecord.children;\n\t\t\t\tfor (let i = 0; i < children.length; i++) addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\n\t\t\t}\n\t\t\toriginalRecord = originalRecord || matcher;\n\t\t}\n\t\treturn originalMatcher ? () => {\n\t\t\tremoveRoute(originalMatcher);\n\t\t} : noop;\n\t}\n\tfunction removeRoute(matcherRef) {\n\t\tif (isRouteName(matcherRef)) {\n\t\t\tconst matcher = matcherMap.get(matcherRef);\n\t\t\tif (matcher) {\n\t\t\t\tmatcherMap.delete(matcherRef);\n\t\t\t\tmatchers.splice(matchers.indexOf(matcher), 1);\n\t\t\t\tmatcher.children.forEach(removeRoute);\n\t\t\t\tmatcher.alias.forEach(removeRoute);\n\t\t\t}\n\t\t} else {\n\t\t\tconst index = matchers.indexOf(matcherRef);\n\t\t\tif (index > -1) {\n\t\t\t\tmatchers.splice(index, 1);\n\t\t\t\tif (matcherRef.record.name) matcherMap.delete(matcherRef.record.name);\n\t\t\t\tmatcherRef.children.forEach(removeRoute);\n\t\t\t\tmatcherRef.alias.forEach(removeRoute);\n\t\t\t}\n\t\t}\n\t}\n\tfunction getRoutes() {\n\t\treturn matchers;\n\t}\n\tfunction insertMatcher(matcher) {\n\t\tconst index = findInsertionIndex(matcher, matchers);\n\t\tmatchers.splice(index, 0, matcher);\n\t\tif (matcher.record.name && !isAliasRecord(matcher)) matcherMap.set(matcher.record.name, matcher);\n\t}\n\tfunction resolve(location$1, currentLocation) {\n\t\tlet matcher;\n\t\tlet params = {};\n\t\tlet path;\n\t\tlet name;\n\t\tif (\"name\" in location$1 && location$1.name) {\n\t\t\tmatcher = matcherMap.get(location$1.name);\n\t\t\tif (!matcher) throw createRouterError(ErrorTypes.MATCHER_NOT_FOUND, { location: location$1 });\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tconst invalidParams = Object.keys(location$1.params || {}).filter((paramName) => !matcher.keys.find((k) => k.name === paramName));\n\t\t\t\tif (invalidParams.length) warn$1(`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.`);\n\t\t\t}\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign(pickParams(currentLocation.params, matcher.keys.filter((k) => !k.optional).concat(matcher.parent ? matcher.parent.keys.filter((k) => k.optional) : []).map((k) => k.name)), location$1.params && pickParams(location$1.params, matcher.keys.map((k) => k.name)));\n\t\t\tpath = matcher.stringify(params);\n\t\t} else if (location$1.path != null) {\n\t\t\tpath = location$1.path;\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !path.startsWith(\"/\")) warn$1(`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://github.com/vuejs/router/issues/new/choose.`);\n\t\t\tmatcher = matchers.find((m) => m.re.test(path));\n\t\t\tif (matcher) {\n\t\t\t\tparams = matcher.parse(path);\n\t\t\t\tname = matcher.record.name;\n\t\t\t}\n\t\t} else {\n\t\t\tmatcher = currentLocation.name ? matcherMap.get(currentLocation.name) : matchers.find((m) => m.re.test(currentLocation.path));\n\t\t\tif (!matcher) throw createRouterError(ErrorTypes.MATCHER_NOT_FOUND, {\n\t\t\t\tlocation: location$1,\n\t\t\t\tcurrentLocation\n\t\t\t});\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign({}, currentLocation.params, location$1.params);\n\t\t\tpath = matcher.stringify(params);\n\t\t}\n\t\tconst matched = [];\n\t\tlet parentMatcher = matcher;\n\t\twhile (parentMatcher) {\n\t\t\tmatched.unshift(parentMatcher.record);\n\t\t\tparentMatcher = parentMatcher.parent;\n\t\t}\n\t\treturn {\n\t\t\tname,\n\t\t\tpath,\n\t\t\tparams,\n\t\t\tmatched,\n\t\t\tmeta: mergeMetaFields(matched)\n\t\t};\n\t}\n\troutes.forEach((route) => addRoute(route));\n\tfunction clearRoutes() {\n\t\tmatchers.length = 0;\n\t\tmatcherMap.clear();\n\t}\n\treturn {\n\t\taddRoute,\n\t\tresolve,\n\t\tremoveRoute,\n\t\tclearRoutes,\n\t\tgetRoutes,\n\t\tgetRecordMatcher\n\t};\n}\n/**\n* Picks an object param to contain only specified keys.\n*\n* @param params - params object to pick from\n* @param keys - keys to pick\n*/\nfunction pickParams(params, keys) {\n\tconst newParams = {};\n\tfor (const key of keys) if (key in params) newParams[key] = params[key];\n\treturn newParams;\n}\n/**\n* Normalizes a RouteRecordRaw. Creates a copy\n*\n* @param record\n* @returns the normalized version\n*/\nfunction normalizeRouteRecord(record) {\n\tconst normalized = {\n\t\tpath: record.path,\n\t\tredirect: record.redirect,\n\t\tname: record.name,\n\t\tmeta: record.meta || {},\n\t\taliasOf: record.aliasOf,\n\t\tbeforeEnter: record.beforeEnter,\n\t\tprops: normalizeRecordProps(record),\n\t\tchildren: record.children || [],\n\t\tinstances: {},\n\t\tleaveGuards: /* @__PURE__ */ new Set(),\n\t\tupdateGuards: /* @__PURE__ */ new Set(),\n\t\tenterCallbacks: {},\n\t\tcomponents: \"components\" in record ? record.components || null : record.component && { default: record.component }\n\t};\n\tObject.defineProperty(normalized, \"mods\", { value: {} });\n\treturn normalized;\n}\n/**\n* Normalize the optional `props` in a record to always be an object similar to\n* components. Also accept a boolean for components.\n* @param record\n*/\nfunction normalizeRecordProps(record) {\n\tconst propsObject = {};\n\tconst props = record.props || false;\n\tif (\"component\" in record) propsObject.default = props;\n\telse for (const name in record.components) propsObject[name] = typeof props === \"object\" ? props[name] : props;\n\treturn propsObject;\n}\n/**\n* Checks if a record or any of its parent is an alias\n* @param record\n*/\nfunction isAliasRecord(record) {\n\twhile (record) {\n\t\tif (record.record.aliasOf) return true;\n\t\trecord = record.parent;\n\t}\n\treturn false;\n}\n/**\n* Merge meta fields of an array of records\n*\n* @param matched - array of matched records\n*/\nfunction mergeMetaFields(matched) {\n\treturn matched.reduce((meta, record) => assign(meta, record.meta), {});\n}\nfunction isSameParam(a, b) {\n\treturn a.name === b.name && a.optional === b.optional && a.repeatable === b.repeatable;\n}\n/**\n* Check if a path and its alias have the same required params\n*\n* @param a - original record\n* @param b - alias record\n*/\nfunction checkSameParams(a, b) {\n\tfor (const key of a.keys) if (!key.optional && !b.keys.find(isSameParam.bind(null, key))) return warn$1(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n\tfor (const key of b.keys) if (!key.optional && !a.keys.find(isSameParam.bind(null, key))) return warn$1(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n}\n/**\n* A route with a name and a child with an empty path without a name should warn when adding the route\n*\n* @param mainNormalizedRecord - RouteRecordNormalized\n* @param parent - RouteRecordMatcher\n*/\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\n\tif (parent && parent.record.name && !mainNormalizedRecord.name && !mainNormalizedRecord.path) warn$1(`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.`);\n}\nfunction checkSameNameAsAncestor(record, parent) {\n\tfor (let ancestor = parent; ancestor; ancestor = ancestor.parent) if (ancestor.record.name === record.name) throw new Error(`A route named \"${String(record.name)}\" has been added as a ${parent === ancestor ? \"child\" : \"descendant\"} of a route with the same name. Route names must be unique and a nested route cannot use the same name as an ancestor.`);\n}\nfunction checkMissingParamsInAbsolutePath(record, parent) {\n\tfor (const key of parent.keys) if (!record.keys.find(isSameParam.bind(null, key))) return warn$1(`Absolute path \"${record.record.path}\" must have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\n}\n/**\n* Performs a binary search to find the correct insertion index for a new matcher.\n*\n* Matchers are primarily sorted by their score. If scores are tied then we also consider parent/child relationships,\n* with descendants coming before ancestors. If there's still a tie, new routes are inserted after existing routes.\n*\n* @param matcher - new matcher to be inserted\n* @param matchers - existing matchers\n*/\nfunction findInsertionIndex(matcher, matchers) {\n\tlet lower = 0;\n\tlet upper = matchers.length;\n\twhile (lower !== upper) {\n\t\tconst mid = lower + upper >> 1;\n\t\tif (comparePathParserScore(matcher, matchers[mid]) < 0) upper = mid;\n\t\telse lower = mid + 1;\n\t}\n\tconst insertionAncestor = getInsertionAncestor(matcher);\n\tif (insertionAncestor) {\n\t\tupper = matchers.lastIndexOf(insertionAncestor, upper - 1);\n\t\tif (process.env.NODE_ENV !== \"production\" && upper < 0) warn$1(`Finding ancestor route \"${insertionAncestor.record.path}\" failed for \"${matcher.record.path}\"`);\n\t}\n\treturn upper;\n}\nfunction getInsertionAncestor(matcher) {\n\tlet ancestor = matcher;\n\twhile (ancestor = ancestor.parent) if (isMatchable(ancestor) && comparePathParserScore(matcher, ancestor) === 0) return ancestor;\n}\n/**\n* Checks if a matcher can be reachable. This means if it's possible to reach it as a route. For example, routes without\n* a component, or name, or redirect, are just used to group other routes.\n* @param matcher\n* @param matcher.record record of the matcher\n* @returns\n*/\nfunction isMatchable({ record }) {\n\treturn !!(record.name || record.components && Object.keys(record.components).length || record.redirect);\n}\n\n//#endregion\n//#region src/RouterLink.ts\n/**\n* Returns the internal behavior of a {@link RouterLink} without the rendering part.\n*\n* @param props - a `to` location and an optional `replace` flag\n*/\nfunction useLink(props) {\n\tconst router = inject(routerKey);\n\tconst currentRoute = inject(routeLocationKey);\n\tlet hasPrevious = false;\n\tlet previousTo = null;\n\tconst route = computed(() => {\n\t\tconst to = unref(props.to);\n\t\tif (process.env.NODE_ENV !== \"production\" && (!hasPrevious || to !== previousTo)) {\n\t\t\tif (!isRouteLocation(to)) if (hasPrevious) warn$1(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- previous to:`, previousTo, `\\n- props:`, props);\n\t\t\telse warn$1(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- props:`, props);\n\t\t\tpreviousTo = to;\n\t\t\thasPrevious = true;\n\t\t}\n\t\treturn router.resolve(to);\n\t});\n\tconst activeRecordIndex = computed(() => {\n\t\tconst { matched } = route.value;\n\t\tconst { length } = matched;\n\t\tconst routeMatched = matched[length - 1];\n\t\tconst currentMatched = currentRoute.matched;\n\t\tif (!routeMatched || !currentMatched.length) return -1;\n\t\tconst index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\n\t\tif (index > -1) return index;\n\t\tconst parentRecordPath = getOriginalPath(matched[length - 2]);\n\t\treturn length > 1 && getOriginalPath(routeMatched) === parentRecordPath && currentMatched[currentMatched.length - 1].path !== parentRecordPath ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2])) : index;\n\t});\n\tconst isActive = computed(() => activeRecordIndex.value > -1 && includesParams(currentRoute.params, route.value.params));\n\tconst isExactActive = computed(() => activeRecordIndex.value > -1 && activeRecordIndex.value === currentRoute.matched.length - 1 && isSameRouteLocationParams(currentRoute.params, route.value.params));\n\tfunction navigate(e = {}) {\n\t\tif (guardEvent(e)) {\n\t\t\tconst p = router[unref(props.replace) ? \"replace\" : \"push\"](unref(props.to)).catch(noop);\n\t\t\tif (props.viewTransition && typeof document !== \"undefined\" && \"startViewTransition\" in document) document.startViewTransition(() => p);\n\t\t\treturn p;\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n\t\tconst instance = getCurrentInstance();\n\t\tif (instance) {\n\t\t\tconst linkContextDevtools = {\n\t\t\t\troute: route.value,\n\t\t\t\tisActive: isActive.value,\n\t\t\t\tisExactActive: isExactActive.value,\n\t\t\t\terror: null\n\t\t\t};\n\t\t\tinstance.__vrl_devtools = instance.__vrl_devtools || [];\n\t\t\tinstance.__vrl_devtools.push(linkContextDevtools);\n\t\t\twatchEffect(() => {\n\t\t\t\tlinkContextDevtools.route = route.value;\n\t\t\t\tlinkContextDevtools.isActive = isActive.value;\n\t\t\t\tlinkContextDevtools.isExactActive = isExactActive.value;\n\t\t\t\tlinkContextDevtools.error = isRouteLocation(unref(props.to)) ? null : \"Invalid \\\"to\\\" value\";\n\t\t\t}, { flush: \"post\" });\n\t\t}\n\t}\n\t/**\n\t* NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this\n\t*/\n\treturn {\n\t\troute,\n\t\thref: computed(() => route.value.href),\n\t\tisActive,\n\t\tisExactActive,\n\t\tnavigate\n\t};\n}\nfunction preferSingleVNode(vnodes) {\n\treturn vnodes.length === 1 ? vnodes[0] : vnodes;\n}\nconst RouterLinkImpl = /* @__PURE__ */ defineComponent({\n\tname: \"RouterLink\",\n\tcompatConfig: { MODE: 3 },\n\tprops: {\n\t\tto: {\n\t\t\ttype: [String, Object],\n\t\t\trequired: true\n\t\t},\n\t\treplace: Boolean,\n\t\tactiveClass: String,\n\t\texactActiveClass: String,\n\t\tcustom: Boolean,\n\t\tariaCurrentValue: {\n\t\t\ttype: String,\n\t\t\tdefault: \"page\"\n\t\t},\n\t\tviewTransition: Boolean\n\t},\n\tuseLink,\n\tsetup(props, { slots }) {\n\t\tconst link = reactive(useLink(props));\n\t\tconst { options } = inject(routerKey);\n\t\tconst elClass = computed(() => ({\n\t\t\t[getLinkClass(props.activeClass, options.linkActiveClass, \"router-link-active\")]: link.isActive,\n\t\t\t[getLinkClass(props.exactActiveClass, options.linkExactActiveClass, \"router-link-exact-active\")]: link.isExactActive\n\t\t}));\n\t\treturn () => {\n\t\t\tconst children = slots.default && preferSingleVNode(slots.default(link));\n\t\t\treturn props.custom ? children : h(\"a\", {\n\t\t\t\t\"aria-current\": link.isExactActive ? props.ariaCurrentValue : null,\n\t\t\t\thref: link.href,\n\t\t\t\tonClick: link.navigate,\n\t\t\t\tclass: elClass.value\n\t\t\t}, children);\n\t\t};\n\t}\n});\n/**\n* Component to render a link that triggers a navigation on click.\n*/\nconst RouterLink = RouterLinkImpl;\nfunction guardEvent(e) {\n\tif (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) return;\n\tif (e.defaultPrevented) return;\n\tif (e.button !== void 0 && e.button !== 0) return;\n\tif (e.currentTarget && e.currentTarget.getAttribute) {\n\t\tconst target = e.currentTarget.getAttribute(\"target\");\n\t\tif (/\\b_blank\\b/i.test(target)) return;\n\t}\n\tif (e.preventDefault) e.preventDefault();\n\treturn true;\n}\nfunction includesParams(outer, inner) {\n\tfor (const key in inner) {\n\t\tconst innerValue = inner[key];\n\t\tconst outerValue = outer[key];\n\t\tif (typeof innerValue === \"string\") {\n\t\t\tif (innerValue !== outerValue) return false;\n\t\t} else if (!isArray(outerValue) || outerValue.length !== innerValue.length || innerValue.some((value, i) => value.valueOf() !== outerValue[i].valueOf())) return false;\n\t}\n\treturn true;\n}\n/**\n* Get the original path value of a record by following its aliasOf\n* @param record\n*/\nfunction getOriginalPath(record) {\n\treturn record ? record.aliasOf ? record.aliasOf.path : record.path : \"\";\n}\n/**\n* Utility class to get the active class based on defaults.\n* @param propClass\n* @param globalClass\n* @param defaultClass\n*/\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null ? propClass : globalClass != null ? globalClass : defaultClass;\n\n//#endregion\n//#region src/RouterView.ts\nconst RouterViewImpl = /* @__PURE__ */ defineComponent({\n\tname: \"RouterView\",\n\tinheritAttrs: false,\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: \"default\"\n\t\t},\n\t\troute: Object\n\t},\n\tcompatConfig: { MODE: 3 },\n\tsetup(props, { attrs, slots }) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warnDeprecatedUsage();\n\t\tconst injectedRoute = inject(routerViewLocationKey);\n\t\tconst routeToDisplay = computed(() => props.route || injectedRoute.value);\n\t\tconst injectedDepth = inject(viewDepthKey, 0);\n\t\tconst depth = computed(() => {\n\t\t\tlet initialDepth = unref(injectedDepth);\n\t\t\tconst { matched } = routeToDisplay.value;\n\t\t\tlet matchedRoute;\n\t\t\twhile ((matchedRoute = matched[initialDepth]) && !matchedRoute.components) initialDepth++;\n\t\t\treturn initialDepth;\n\t\t});\n\t\tconst matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\n\t\tprovide(viewDepthKey, computed(() => depth.value + 1));\n\t\tprovide(matchedRouteKey, matchedRouteRef);\n\t\tprovide(routerViewLocationKey, routeToDisplay);\n\t\tconst viewRef = ref();\n\t\twatch(() => [\n\t\t\tviewRef.value,\n\t\t\tmatchedRouteRef.value,\n\t\t\tprops.name\n\t\t], ([instance, to, name], [oldInstance, from, oldName]) => {\n\t\t\tif (to) {\n\t\t\t\tto.instances[name] = instance;\n\t\t\t\tif (from && from !== to && instance && instance === oldInstance) {\n\t\t\t\t\tif (!to.leaveGuards.size) to.leaveGuards = from.leaveGuards;\n\t\t\t\t\tif (!to.updateGuards.size) to.updateGuards = from.updateGuards;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (instance && to && (!from || !isSameRouteRecord(to, from) || !oldInstance)) (to.enterCallbacks[name] || []).forEach((callback) => callback(instance));\n\t\t}, { flush: \"post\" });\n\t\treturn () => {\n\t\t\tconst route = routeToDisplay.value;\n\t\t\tconst currentName = props.name;\n\t\t\tconst matchedRoute = matchedRouteRef.value;\n\t\t\tconst ViewComponent = matchedRoute && matchedRoute.components[currentName];\n\t\t\tif (!ViewComponent) return normalizeSlot(slots.default, {\n\t\t\t\tComponent: ViewComponent,\n\t\t\t\troute\n\t\t\t});\n\t\t\tconst routePropsOption = matchedRoute.props[currentName];\n\t\t\tconst routeProps = routePropsOption ? routePropsOption === true ? route.params : typeof routePropsOption === \"function\" ? routePropsOption(route) : routePropsOption : null;\n\t\t\tconst onVnodeUnmounted = (vnode) => {\n\t\t\t\tif (vnode.component.isUnmounted) matchedRoute.instances[currentName] = null;\n\t\t\t};\n\t\t\tconst component = h(ViewComponent, assign({}, routeProps, attrs, {\n\t\t\t\tonVnodeUnmounted,\n\t\t\t\tref: viewRef\n\t\t\t}));\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser && component.ref) {\n\t\t\t\tconst info = {\n\t\t\t\t\tdepth: depth.value,\n\t\t\t\t\tname: matchedRoute.name,\n\t\t\t\t\tpath: matchedRoute.path,\n\t\t\t\t\tmeta: matchedRoute.meta\n\t\t\t\t};\n\t\t\t\t(isArray(component.ref) ? component.ref.map((r) => r.i) : [component.ref.i]).forEach((instance) => {\n\t\t\t\t\tinstance.__vrv_devtools = info;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn normalizeSlot(slots.default, {\n\t\t\t\tComponent: component,\n\t\t\t\troute\n\t\t\t}) || component;\n\t\t};\n\t}\n});\nfunction normalizeSlot(slot, data) {\n\tif (!slot) return null;\n\tconst slotContent = slot(data);\n\treturn slotContent.length === 1 ? slotContent[0] : slotContent;\n}\n/**\n* Component to display the current route the user is at.\n*/\nconst RouterView = RouterViewImpl;\nfunction warnDeprecatedUsage() {\n\tconst instance = getCurrentInstance();\n\tconst parentName = instance.parent && instance.parent.type.name;\n\tconst parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type;\n\tif (parentName && (parentName === \"KeepAlive\" || parentName.includes(\"Transition\")) && typeof parentSubTreeType === \"object\" && parentSubTreeType.name === \"RouterView\") {\n\t\tconst comp = parentName === \"KeepAlive\" ? \"keep-alive\" : \"transition\";\n\t\twarn$1(`<router-view> can no longer be used directly inside <transition> or <keep-alive>.\nUse slot props instead:\n\n<router-view v-slot=\"{ Component }\">\n <${comp}>\\n <component :is=\"Component\" />\\n </${comp}>\\n</router-view>`);\n\t}\n}\n\n//#endregion\n//#region src/router.ts\n/**\n* Creates a Router instance that can be used by a Vue app.\n*\n* @param options - {@link RouterOptions}\n*/\nfunction createRouter(options) {\n\tconst matcher = createRouterMatcher(options.routes, options);\n\tconst parseQuery$1 = options.parseQuery || parseQuery;\n\tconst stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\n\tconst routerHistory = options.history;\n\tif (process.env.NODE_ENV !== \"production\" && !routerHistory) throw new Error(\"Provide the \\\"history\\\" option when calling \\\"createRouter()\\\": https://router.vuejs.org/api/interfaces/RouterOptions.html#history\");\n\tconst beforeGuards = useCallbacks();\n\tconst beforeResolveGuards = useCallbacks();\n\tconst afterGuards = useCallbacks();\n\tconst currentRoute = shallowRef(START_LOCATION_NORMALIZED);\n\tlet pendingLocation = START_LOCATION_NORMALIZED;\n\tif (isBrowser && options.scrollBehavior && \"scrollRestoration\" in history) history.scrollRestoration = \"manual\";\n\tconst normalizeParams = applyToParams.bind(null, (paramValue) => \"\" + paramValue);\n\tconst encodeParams = applyToParams.bind(null, encodeParam);\n\tconst decodeParams = applyToParams.bind(null, decode);\n\tfunction addRoute(parentOrRoute, route) {\n\t\tlet parent;\n\t\tlet record;\n\t\tif (isRouteName(parentOrRoute)) {\n\t\t\tparent = matcher.getRecordMatcher(parentOrRoute);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !parent) warn$1(`Parent route \"${String(parentOrRoute)}\" not found when adding child route`, route);\n\t\t\trecord = route;\n\t\t} else record = parentOrRoute;\n\t\treturn matcher.addRoute(record, parent);\n\t}\n\tfunction removeRoute(name) {\n\t\tconst recordMatcher = matcher.getRecordMatcher(name);\n\t\tif (recordMatcher) matcher.removeRoute(recordMatcher);\n\t\telse if (process.env.NODE_ENV !== \"production\") warn$1(`Cannot remove non-existent route \"${String(name)}\"`);\n\t}\n\tfunction getRoutes() {\n\t\treturn matcher.getRoutes().map((routeMatcher) => routeMatcher.record);\n\t}\n\tfunction hasRoute(name) {\n\t\treturn !!matcher.getRecordMatcher(name);\n\t}\n\tfunction resolve(rawLocation, currentLocation) {\n\t\tcurrentLocation = assign({}, currentLocation || currentRoute.value);\n\t\tif (typeof rawLocation === \"string\") {\n\t\t\tconst locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\n\t\t\tconst matchedRoute$1 = matcher.resolve({ path: locationNormalized.path }, currentLocation);\n\t\t\tconst href$1 = routerHistory.createHref(locationNormalized.fullPath);\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (href$1.startsWith(\"//\")) warn$1(`Location \"${rawLocation}\" resolved to \"${href$1}\". A resolved location cannot start with multiple slashes.`);\n\t\t\t\telse if (!matchedRoute$1.matched.length) warn$1(`No match found for location with path \"${rawLocation}\"`);\n\t\t\t}\n\t\t\treturn assign(locationNormalized, matchedRoute$1, {\n\t\t\t\tparams: decodeParams(matchedRoute$1.params),\n\t\t\t\thash: decode(locationNormalized.hash),\n\t\t\t\tredirectedFrom: void 0,\n\t\t\t\thref: href$1\n\t\t\t});\n\t\t}\n\t\tif (process.env.NODE_ENV !== \"production\" && !isRouteLocation(rawLocation)) {\n\t\t\twarn$1(`router.resolve() was passed an invalid location. This will fail in production.\\n- Location:`, rawLocation);\n\t\t\treturn resolve({});\n\t\t}\n\t\tlet matcherLocation;\n\t\tif (rawLocation.path != null) {\n\t\t\tif (process.env.NODE_ENV !== \"production\" && \"params\" in rawLocation && !(\"name\" in rawLocation) && Object.keys(rawLocation.params).length) warn$1(`Path \"${rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\n\t\t\tmatcherLocation = assign({}, rawLocation, { path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path });\n\t\t} else {\n\t\t\tconst targetParams = assign({}, rawLocation.params);\n\t\t\tfor (const key in targetParams) if (targetParams[key] == null) delete targetParams[key];\n\t\t\tmatcherLocation = assign({}, rawLocation, { params: encodeParams(targetParams) });\n\t\t\tcurrentLocation.params = encodeParams(currentLocation.params);\n\t\t}\n\t\tconst matchedRoute = matcher.resolve(matcherLocation, currentLocation);\n\t\tconst hash = rawLocation.hash || \"\";\n\t\tif (process.env.NODE_ENV !== \"production\" && hash && !hash.startsWith(\"#\")) warn$1(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\n\t\tmatchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\n\t\tconst fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\n\t\t\thash: encodeHash(hash),\n\t\t\tpath: matchedRoute.path\n\t\t}));\n\t\tconst href = routerHistory.createHref(fullPath);\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tif (href.startsWith(\"//\")) warn$1(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n\t\t\telse if (!matchedRoute.matched.length) warn$1(`No match found for location with path \"${rawLocation.path != null ? rawLocation.path : rawLocation}\"`);\n\t\t}\n\t\treturn assign({\n\t\t\tfullPath,\n\t\t\thash,\n\t\t\tquery: stringifyQuery$1 === stringifyQuery ? normalizeQuery(rawLocation.query) : rawLocation.query || {}\n\t\t}, matchedRoute, {\n\t\t\tredirectedFrom: void 0,\n\t\t\thref\n\t\t});\n\t}\n\tfunction locationAsObject(to) {\n\t\treturn typeof to === \"string\" ? parseURL(parseQuery$1, to, currentRoute.value.path) : assign({}, to);\n\t}\n\tfunction checkCanceledNavigation(to, from) {\n\t\tif (pendingLocation !== to) return createRouterError(ErrorTypes.NAVIGATION_CANCELLED, {\n\t\t\tfrom,\n\t\t\tto\n\t\t});\n\t}\n\tfunction push(to) {\n\t\treturn pushWithRedirect(to);\n\t}\n\tfunction replace(to) {\n\t\treturn push(assign(locationAsObject(to), { replace: true }));\n\t}\n\tfunction handleRedirectRecord(to, from) {\n\t\tconst lastMatched = to.matched[to.matched.length - 1];\n\t\tif (lastMatched && lastMatched.redirect) {\n\t\t\tconst { redirect } = lastMatched;\n\t\t\tlet newTargetLocation = typeof redirect === \"function\" ? redirect(to, from) : redirect;\n\t\t\tif (typeof newTargetLocation === \"string\") {\n\t\t\t\tnewTargetLocation = newTargetLocation.includes(\"?\") || newTargetLocation.includes(\"#\") ? newTargetLocation = locationAsObject(newTargetLocation) : { path: newTargetLocation };\n\t\t\t\tnewTargetLocation.params = {};\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && newTargetLocation.path == null && !(\"name\" in newTargetLocation)) {\n\t\t\t\twarn$1(`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.`);\n\t\t\t\tthrow new Error(\"Invalid redirect\");\n\t\t\t}\n\t\t\treturn assign({\n\t\t\t\tquery: to.query,\n\t\t\t\thash: to.hash,\n\t\t\t\tparams: newTargetLocation.path != null ? {} : to.params\n\t\t\t}, newTargetLocation);\n\t\t}\n\t}\n\tfunction pushWithRedirect(to, redirectedFrom) {\n\t\tconst targetLocation = pendingLocation = resolve(to);\n\t\tconst from = currentRoute.value;\n\t\tconst data = to.state;\n\t\tconst force = to.force;\n\t\tconst replace$1 = to.replace === true;\n\t\tconst shouldRedirect = handleRedirectRecord(targetLocation, from);\n\t\tif (shouldRedirect) return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\n\t\t\tstate: typeof shouldRedirect === \"object\" ? assign({}, data, shouldRedirect.state) : data,\n\t\t\tforce,\n\t\t\treplace: replace$1\n\t\t}), redirectedFrom || targetLocation);\n\t\tconst toLocation = targetLocation;\n\t\ttoLocation.redirectedFrom = redirectedFrom;\n\t\tlet failure;\n\t\tif (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\n\t\t\tfailure = createRouterError(ErrorTypes.NAVIGATION_DUPLICATED, {\n\t\t\t\tto: toLocation,\n\t\t\t\tfrom\n\t\t\t});\n\t\t\thandleScroll(from, from, true, false);\n\t\t}\n\t\treturn (failure ? Promise.resolve(failure) : navigate(toLocation, from)).catch((error) => isNavigationFailure(error) ? isNavigationFailure(error, ErrorTypes.NAVIGATION_GUARD_REDIRECT) ? error : markAsReady(error) : triggerError(error, toLocation, from)).then((failure$1) => {\n\t\t\tif (failure$1) {\n\t\t\t\tif (isNavigationFailure(failure$1, ErrorTypes.NAVIGATION_GUARD_REDIRECT)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\" && isSameRouteLocation(stringifyQuery$1, resolve(failure$1.to), toLocation) && redirectedFrom && (redirectedFrom._count = redirectedFrom._count ? redirectedFrom._count + 1 : 1) > 30) {\n\t\t\t\t\t\twarn$1(`Detected a possibly infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow.\\n Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`);\n\t\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Infinite redirect in navigation guard\"));\n\t\t\t\t\t}\n\t\t\t\t\treturn pushWithRedirect(assign({ replace: replace$1 }, locationAsObject(failure$1.to), {\n\t\t\t\t\t\tstate: typeof failure$1.to === \"object\" ? assign({}, data, failure$1.to.state) : data,\n\t\t\t\t\t\tforce\n\t\t\t\t\t}), redirectedFrom || toLocation);\n\t\t\t\t}\n\t\t\t} else failure$1 = finalizeNavigation(toLocation, from, true, replace$1, data);\n\t\t\ttriggerAfterEach(toLocation, from, failure$1);\n\t\t\treturn failure$1;\n\t\t});\n\t}\n\t/**\n\t* Helper to reject and skip all navigation guards if a new navigation happened\n\t* @param to\n\t* @param from\n\t*/\n\tfunction checkCanceledNavigationAndReject(to, from) {\n\t\tconst error = checkCanceledNavigation(to, from);\n\t\treturn error ? Promise.reject(error) : Promise.resolve();\n\t}\n\tfunction runWithContext(fn) {\n\t\tconst app = installedApps.values().next().value;\n\t\treturn app && typeof app.runWithContext === \"function\" ? app.runWithContext(fn) : fn();\n\t}\n\tfunction navigate(to, from) {\n\t\tlet guards;\n\t\tconst [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\n\t\tguards = extractComponentsGuards(leavingRecords.reverse(), \"beforeRouteLeave\", to, from);\n\t\tfor (const record of leavingRecords) record.leaveGuards.forEach((guard) => {\n\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t});\n\t\tconst canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\n\t\tguards.push(canceledNavigationCheck);\n\t\treturn runGuardQueue(guards).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = extractComponentsGuards(updatingRecords, \"beforeRouteUpdate\", to, from);\n\t\t\tfor (const record of updatingRecords) record.updateGuards.forEach((guard) => {\n\t\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t\t});\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const record of enteringRecords) if (record.beforeEnter) if (isArray(record.beforeEnter)) for (const beforeEnter of record.beforeEnter) guards.push(guardToPromiseFn(beforeEnter, to, from));\n\t\t\telse guards.push(guardToPromiseFn(record.beforeEnter, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tto.matched.forEach((record) => record.enterCallbacks = {});\n\t\t\tguards = extractComponentsGuards(enteringRecords, \"beforeRouteEnter\", to, from, runWithContext);\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeResolveGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).catch((err) => isNavigationFailure(err, ErrorTypes.NAVIGATION_CANCELLED) ? err : Promise.reject(err));\n\t}\n\tfunction triggerAfterEach(to, from, failure) {\n\t\tafterGuards.list().forEach((guard) => runWithContext(() => guard(to, from, failure)));\n\t}\n\t/**\n\t* - Cleans up any navigation guards\n\t* - Changes the url if necessary\n\t* - Calls the scrollBehavior\n\t*/\n\tfunction finalizeNavigation(toLocation, from, isPush, replace$1, data) {\n\t\tconst error = checkCanceledNavigation(toLocation, from);\n\t\tif (error) return error;\n\t\tconst isFirstNavigation = from === START_LOCATION_NORMALIZED;\n\t\tconst state = !isBrowser ? {} : history.state;\n\t\tif (isPush) if (replace$1 || isFirstNavigation) routerHistory.replace(toLocation.fullPath, assign({ scroll: isFirstNavigation && state && state.scroll }, data));\n\t\telse routerHistory.push(toLocation.fullPath, data);\n\t\tcurrentRoute.value = toLocation;\n\t\thandleScroll(toLocation, from, isPush, isFirstNavigation);\n\t\tmarkAsReady();\n\t}\n\tlet removeHistoryListener;\n\tfunction setupListeners() {\n\t\tif (removeHistoryListener) return;\n\t\tremoveHistoryListener = routerHistory.listen((to, _from, info) => {\n\t\t\tif (!router.listening) return;\n\t\t\tconst toLocation = resolve(to);\n\t\t\tconst shouldRedirect = handleRedirectRecord(toLocation, router.currentRoute.value);\n\t\t\tif (shouldRedirect) {\n\t\t\t\tpushWithRedirect(assign(shouldRedirect, {\n\t\t\t\t\treplace: true,\n\t\t\t\t\tforce: true\n\t\t\t\t}), toLocation).catch(noop);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tpendingLocation = toLocation;\n\t\t\tconst from = currentRoute.value;\n\t\t\tif (isBrowser) saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\n\t\t\tnavigate(toLocation, from).catch((error) => {\n\t\t\t\tif (isNavigationFailure(error, ErrorTypes.NAVIGATION_ABORTED | ErrorTypes.NAVIGATION_CANCELLED)) return error;\n\t\t\t\tif (isNavigationFailure(error, ErrorTypes.NAVIGATION_GUARD_REDIRECT)) {\n\t\t\t\t\tpushWithRedirect(assign(locationAsObject(error.to), { force: true }), toLocation).then((failure) => {\n\t\t\t\t\t\tif (isNavigationFailure(failure, ErrorTypes.NAVIGATION_ABORTED | ErrorTypes.NAVIGATION_DUPLICATED) && !info.delta && info.type === NavigationType.pop) routerHistory.go(-1, false);\n\t\t\t\t\t}).catch(noop);\n\t\t\t\t\treturn Promise.reject();\n\t\t\t\t}\n\t\t\t\tif (info.delta) routerHistory.go(-info.delta, false);\n\t\t\t\treturn triggerError(error, toLocation, from);\n\t\t\t}).then((failure) => {\n\t\t\t\tfailure = failure || finalizeNavigation(toLocation, from, false);\n\t\t\t\tif (failure) {\n\t\t\t\t\tif (info.delta && !isNavigationFailure(failure, ErrorTypes.NAVIGATION_CANCELLED)) routerHistory.go(-info.delta, false);\n\t\t\t\t\telse if (info.type === NavigationType.pop && isNavigationFailure(failure, ErrorTypes.NAVIGATION_ABORTED | ErrorTypes.NAVIGATION_DUPLICATED)) routerHistory.go(-1, false);\n\t\t\t\t}\n\t\t\t\ttriggerAfterEach(toLocation, from, failure);\n\t\t\t}).catch(noop);\n\t\t});\n\t}\n\tlet readyHandlers = useCallbacks();\n\tlet errorListeners = useCallbacks();\n\tlet ready;\n\t/**\n\t* Trigger errorListeners added via onError and throws the error as well\n\t*\n\t* @param error - error to throw\n\t* @param to - location we were navigating to when the error happened\n\t* @param from - location we were navigating from when the error happened\n\t* @returns the error as a rejected promise\n\t*/\n\tfunction triggerError(error, to, from) {\n\t\tmarkAsReady(error);\n\t\tconst list = errorListeners.list();\n\t\tif (list.length) list.forEach((handler) => handler(error, to, from));\n\t\telse {\n\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"uncaught error during route navigation:\");\n\t\t\tconsole.error(error);\n\t\t}\n\t\treturn Promise.reject(error);\n\t}\n\tfunction isReady() {\n\t\tif (ready && currentRoute.value !== START_LOCATION_NORMALIZED) return Promise.resolve();\n\t\treturn new Promise((resolve$1, reject) => {\n\t\t\treadyHandlers.add([resolve$1, reject]);\n\t\t});\n\t}\n\tfunction markAsReady(err) {\n\t\tif (!ready) {\n\t\t\tready = !err;\n\t\t\tsetupListeners();\n\t\t\treadyHandlers.list().forEach(([resolve$1, reject]) => err ? reject(err) : resolve$1());\n\t\t\treadyHandlers.reset();\n\t\t}\n\t\treturn err;\n\t}\n\tfunction handleScroll(to, from, isPush, isFirstNavigation) {\n\t\tconst { scrollBehavior } = options;\n\t\tif (!isBrowser || !scrollBehavior) return Promise.resolve();\n\t\tconst scrollPosition = !isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0)) || (isFirstNavigation || !isPush) && history.state && history.state.scroll || null;\n\t\treturn nextTick().then(() => scrollBehavior(to, from, scrollPosition)).then((position) => position && scrollToPosition(position)).catch((err) => triggerError(err, to, from));\n\t}\n\tconst go = (delta) => routerHistory.go(delta);\n\tlet started;\n\tconst installedApps = /* @__PURE__ */ new Set();\n\tconst router = {\n\t\tcurrentRoute,\n\t\tlistening: true,\n\t\taddRoute,\n\t\tremoveRoute,\n\t\tclearRoutes: matcher.clearRoutes,\n\t\thasRoute,\n\t\tgetRoutes,\n\t\tresolve,\n\t\toptions,\n\t\tpush,\n\t\treplace,\n\t\tgo,\n\t\tback: () => go(-1),\n\t\tforward: () => go(1),\n\t\tbeforeEach: beforeGuards.add,\n\t\tbeforeResolve: beforeResolveGuards.add,\n\t\tafterEach: afterGuards.add,\n\t\tonError: errorListeners.add,\n\t\tisReady,\n\t\tinstall(app) {\n\t\t\tapp.component(\"RouterLink\", RouterLink);\n\t\t\tapp.component(\"RouterView\", RouterView);\n\t\t\tapp.config.globalProperties.$router = router;\n\t\t\tObject.defineProperty(app.config.globalProperties, \"$route\", {\n\t\t\t\tenumerable: true,\n\t\t\t\tget: () => unref(currentRoute)\n\t\t\t});\n\t\t\tif (isBrowser && !started && currentRoute.value === START_LOCATION_NORMALIZED) {\n\t\t\t\tstarted = true;\n\t\t\t\tpush(routerHistory.location).catch((err) => {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"Unexpected error when starting the router:\", err);\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst reactiveRoute = {};\n\t\t\tfor (const key in START_LOCATION_NORMALIZED) Object.defineProperty(reactiveRoute, key, {\n\t\t\t\tget: () => currentRoute.value[key],\n\t\t\t\tenumerable: true\n\t\t\t});\n\t\t\tapp.provide(routerKey, router);\n\t\t\tapp.provide(routeLocationKey, shallowReactive(reactiveRoute));\n\t\t\tapp.provide(routerViewLocationKey, currentRoute);\n\t\t\tconst unmountApp = app.unmount;\n\t\t\tinstalledApps.add(app);\n\t\t\tapp.unmount = function() {\n\t\t\t\tinstalledApps.delete(app);\n\t\t\t\tif (installedApps.size < 1) {\n\t\t\t\t\tpendingLocation = START_LOCATION_NORMALIZED;\n\t\t\t\t\tremoveHistoryListener && removeHistoryListener();\n\t\t\t\t\tremoveHistoryListener = null;\n\t\t\t\t\tcurrentRoute.value = START_LOCATION_NORMALIZED;\n\t\t\t\t\tstarted = false;\n\t\t\t\t\tready = false;\n\t\t\t\t}\n\t\t\t\tunmountApp();\n\t\t\t};\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser) addDevtools(app, router, matcher);\n\t\t}\n\t};\n\tfunction runGuardQueue(guards) {\n\t\treturn guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve());\n\t}\n\treturn router;\n}\n\n//#endregion\n//#region src/useApi.ts\n/**\n* Returns the router instance. Equivalent to using `$router` inside\n* templates.\n*/\nfunction useRouter() {\n\treturn inject(routerKey);\n}\n/**\n* Returns the current route location. Equivalent to using `$route` inside\n* templates.\n*/\nfunction useRoute(_name) {\n\treturn inject(routeLocationKey);\n}\n\n//#endregion\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 };","function encodePath(path) {\n if (!path) {\n return path;\n }\n return path.split(\"/\").map(encodeURIComponent).join(\"/\");\n}\nfunction basename(path, extname2) {\n path = path.replace(/\\\\/g, \"/\").replace(/\\/+$/g, \"\").replace(/.*\\//, \"\");\n if (extname2 && extname2 !== path && path.endsWith(extname2)) {\n return path.substring(0, path.length - extname2.length);\n }\n return path;\n}\nfunction dirname(path) {\n path = path.replaceAll(/\\\\/g, \"/\");\n const sections = path.split(\"/\");\n if (sections.length <= 1) {\n return \".\";\n }\n sections.pop();\n if (sections.length === 1 && sections[0] === \"\") {\n return \"/\";\n }\n return sections.join(\"/\");\n}\nfunction extname(path) {\n const base = basename(path);\n const index = base.lastIndexOf(\".\");\n if (index > 0) {\n return base.substring(index);\n }\n return \"\";\n}\nfunction join(...args) {\n if (arguments.length < 1) {\n return \"\";\n }\n const nonEmptyArgs = args.filter((arg) => arg.length > 0);\n if (nonEmptyArgs.length < 1) {\n return \"\";\n }\n const lastArg = nonEmptyArgs[nonEmptyArgs.length - 1];\n const leadingSlash = nonEmptyArgs[0].charAt(0) === \"/\";\n const trailingSlash = lastArg.charAt(lastArg.length - 1) === \"/\";\n const sections = nonEmptyArgs.reduce((acc, section) => acc.concat(section.split(\"/\")), []);\n let first = !leadingSlash;\n const path = sections.reduce((acc, section) => {\n if (section === \"\") {\n return acc;\n }\n if (first) {\n first = false;\n return acc + section;\n }\n return acc + \"/\" + section;\n }, \"\");\n if (trailingSlash) {\n return path + \"/\";\n }\n return path;\n}\nfunction isSamePath(path1, path2) {\n const pathSections1 = (path1 || \"\").split(\"/\").filter((p) => p !== \".\");\n const pathSections2 = (path2 || \"\").split(\"/\").filter((p) => p !== \".\");\n path1 = join(...pathSections1);\n path2 = join(...pathSections2);\n return path1 === path2;\n}\nexport {\n basename,\n dirname,\n encodePath,\n extname,\n isSamePath,\n join\n};\n//# sourceMappingURL=index.mjs.map\n","import { a as getLanguage, e as getPlural, t as translate, d as translatePlural } from \"./chunks/translation-DoG5ZELJ.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass GettextWrapper {\n bundle;\n constructor(pluralFunction) {\n this.bundle = {\n pluralFunction,\n translations: {}\n };\n }\n /**\n * Append new translations to the wrapper.\n *\n * This is useful if translations should be added on demand,\n * e.g. depending on component usage.\n *\n * @param bundle - The new translation bundle to append\n */\n addTranslations(bundle) {\n const dict = Object.values(bundle.translations[\"\"] ?? {}).map(({ msgid, msgid_plural: msgidPlural, msgstr }) => {\n if (msgidPlural !== void 0) {\n return [`_${msgid}_::_${msgidPlural}_`, msgstr];\n }\n return [msgid, msgstr[0]];\n });\n this.bundle.translations = {\n ...this.bundle.translations,\n ...Object.fromEntries(dict)\n };\n }\n /**\n * Get translated string (singular form), optionally with placeholders\n *\n * @param original original string to translate\n * @param placeholders map of placeholder key to value\n */\n gettext(original, placeholders = {}) {\n return translate(\"\", original, placeholders, void 0, { bundle: this.bundle });\n }\n /**\n * Get translated string with plural forms\n *\n * @param singular Singular text form\n * @param plural Plural text form to be used if `count` requires it\n * @param count The number to insert into the text\n * @param placeholders optional map of placeholder key to value\n */\n ngettext(singular, plural, count, placeholders = {}) {\n return translatePlural(\"\", singular, plural, count, placeholders, { bundle: this.bundle });\n }\n}\nclass GettextBuilder {\n debug = false;\n language = \"en\";\n translations = {};\n setLanguage(language) {\n this.language = language;\n return this;\n }\n /**\n * Try to detect locale from context with `en` as fallback value\n * This only works within a Nextcloud page context.\n *\n * @deprecated use `detectLanguage` instead.\n */\n detectLocale() {\n return this.detectLanguage();\n }\n /**\n * Try to detect locale from context with `en` as fallback value.\n * This only works within a Nextcloud page context.\n */\n detectLanguage() {\n return this.setLanguage(getLanguage().replace(\"-\", \"_\"));\n }\n /**\n * Register a new translation bundle for a specified language.\n *\n * Please note that existing translations for that language will be overwritten.\n *\n * @param language - Language this is the translation for\n * @param data - The translation bundle\n */\n addTranslation(language, data) {\n this.translations[language] = data;\n return this;\n }\n enableDebugMode() {\n this.debug = true;\n return this;\n }\n build() {\n if (this.debug) {\n console.debug(`Creating gettext instance for language ${this.language}`);\n }\n const wrapper = new GettextWrapper((n) => getPlural(n, this.language));\n if (this.language in this.translations) {\n wrapper.addTranslations(this.translations[this.language]);\n }\n return wrapper;\n }\n}\nfunction getGettextBuilder() {\n return new GettextBuilder();\n}\nexport {\n getGettextBuilder\n};\n//# sourceMappingURL=gettext.mjs.map\n","import { computed, customRef, effectScope, getCurrentInstance, getCurrentScope, hasInjectionContext, inject, isReactive, isRef, nextTick, onBeforeMount, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, provide, reactive, readonly, ref, shallowReadonly, shallowRef, toRef as toRef$1, toRefs as toRefs$1, toValue, unref, watch, watchEffect } from \"vue\";\n\n//#region computedEager/index.ts\n/**\n*\n* @deprecated This function will be removed in future version.\n*\n* Note: If you are using Vue 3.4+, you can straight use computed instead.\n* Because in Vue 3.4+, if computed new value does not change,\n* computed, effect, watch, watchEffect, render dependencies will not be triggered.\n* refer: https://github.com/vuejs/core/pull/5912\n*\n* @param fn effect function\n* @param options WatchOptionsBase\n* @returns readonly shallowRef\n*/\nfunction computedEager(fn, options) {\n\tvar _options$flush;\n\tconst result = shallowRef();\n\twatchEffect(() => {\n\t\tresult.value = fn();\n\t}, {\n\t\t...options,\n\t\tflush: (_options$flush = options === null || options === void 0 ? void 0 : options.flush) !== null && _options$flush !== void 0 ? _options$flush : \"sync\"\n\t});\n\treturn readonly(result);\n}\n/** @deprecated use `computedEager` instead */\nconst eagerComputed = computedEager;\n\n//#endregion\n//#region computedWithControl/index.ts\n/**\n* Explicitly define the deps of computed.\n*\n* @param source\n* @param fn\n*/\nfunction computedWithControl(source, fn, options = {}) {\n\tlet v = void 0;\n\tlet track;\n\tlet trigger;\n\tlet dirty = true;\n\tconst update = () => {\n\t\tdirty = true;\n\t\ttrigger();\n\t};\n\twatch(source, update, {\n\t\tflush: \"sync\",\n\t\t...options\n\t});\n\tconst get$1 = typeof fn === \"function\" ? fn : fn.get;\n\tconst set$1 = typeof fn === \"function\" ? void 0 : fn.set;\n\tconst result = customRef((_track, _trigger) => {\n\t\ttrack = _track;\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\tif (dirty) {\n\t\t\t\t\tv = get$1(v);\n\t\t\t\t\tdirty = false;\n\t\t\t\t}\n\t\t\t\ttrack();\n\t\t\t\treturn v;\n\t\t\t},\n\t\t\tset(v$1) {\n\t\t\t\tset$1 === null || set$1 === void 0 || set$1(v$1);\n\t\t\t}\n\t\t};\n\t});\n\tresult.trigger = update;\n\treturn result;\n}\n/** @deprecated use `computedWithControl` instead */\nconst controlledComputed = computedWithControl;\n\n//#endregion\n//#region tryOnScopeDispose/index.ts\n/**\n* Call onScopeDispose() if it's inside an effect scope lifecycle, if not, do nothing\n*\n* @param fn\n*/\nfunction tryOnScopeDispose(fn, failSilently) {\n\tif (getCurrentScope()) {\n\t\tonScopeDispose(fn, failSilently);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n//#endregion\n//#region createEventHook/index.ts\n/**\n* Utility for creating event hooks\n*\n* @see https://vueuse.org/createEventHook\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createEventHook() {\n\tconst fns = /* @__PURE__ */ new Set();\n\tconst off = (fn) => {\n\t\tfns.delete(fn);\n\t};\n\tconst clear = () => {\n\t\tfns.clear();\n\t};\n\tconst on = (fn) => {\n\t\tfns.add(fn);\n\t\tconst offFn = () => off(fn);\n\t\ttryOnScopeDispose(offFn);\n\t\treturn { off: offFn };\n\t};\n\tconst trigger = (...args) => {\n\t\treturn Promise.all(Array.from(fns).map((fn) => fn(...args)));\n\t};\n\treturn {\n\t\ton,\n\t\toff,\n\t\ttrigger,\n\t\tclear\n\t};\n}\n\n//#endregion\n//#region createGlobalState/index.ts\n/**\n* Keep states in the global scope to be reusable across Vue instances.\n*\n* @see https://vueuse.org/createGlobalState\n* @param stateFactory A factory function to create the state\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createGlobalState(stateFactory) {\n\tlet initialized = false;\n\tlet state;\n\tconst scope = effectScope(true);\n\treturn ((...args) => {\n\t\tif (!initialized) {\n\t\t\tstate = scope.run(() => stateFactory(...args));\n\t\t\tinitialized = true;\n\t\t}\n\t\treturn state;\n\t});\n}\n\n//#endregion\n//#region provideLocal/map.ts\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n\n//#endregion\n//#region injectLocal/index.ts\n/**\n* On the basis of `inject`, it is allowed to directly call inject to obtain the value after call provide in the same component.\n*\n* @example\n* ```ts\n* injectLocal('MyInjectionKey', 1)\n* const injectedValue = injectLocal('MyInjectionKey') // injectedValue === 1\n* ```\n*\n* @__NO_SIDE_EFFECTS__\n*/\nconst injectLocal = (...args) => {\n\tvar _getCurrentInstance;\n\tconst key = args[0];\n\tconst instance = (_getCurrentInstance = getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy;\n\tconst owner = instance !== null && instance !== void 0 ? instance : getCurrentScope();\n\tif (owner == null && !hasInjectionContext()) throw new Error(\"injectLocal must be called in setup\");\n\tif (owner && localProvidedStateMap.has(owner) && key in localProvidedStateMap.get(owner)) return localProvidedStateMap.get(owner)[key];\n\treturn inject(...args);\n};\n\n//#endregion\n//#region provideLocal/index.ts\n/**\n* On the basis of `provide`, it is allowed to directly call inject to obtain the value after call provide in the same component.\n*\n* @example\n* ```ts\n* provideLocal('MyInjectionKey', 1)\n* const injectedValue = injectLocal('MyInjectionKey') // injectedValue === 1\n* ```\n*/\nfunction provideLocal(key, value) {\n\tvar _getCurrentInstance;\n\tconst instance = (_getCurrentInstance = getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy;\n\tconst owner = instance !== null && instance !== void 0 ? instance : getCurrentScope();\n\tif (owner == null) throw new Error(\"provideLocal must be called in setup\");\n\tif (!localProvidedStateMap.has(owner)) localProvidedStateMap.set(owner, Object.create(null));\n\tconst localProvidedState = localProvidedStateMap.get(owner);\n\tlocalProvidedState[key] = value;\n\treturn provide(key, value);\n}\n\n//#endregion\n//#region createInjectionState/index.ts\n/**\n* Create global state that can be injected into components.\n*\n* @see https://vueuse.org/createInjectionState\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createInjectionState(composable, options) {\n\tconst key = (options === null || options === void 0 ? void 0 : options.injectionKey) || Symbol(composable.name || \"InjectionState\");\n\tconst defaultValue = options === null || options === void 0 ? void 0 : options.defaultValue;\n\tconst useProvidingState = (...args) => {\n\t\tconst state = composable(...args);\n\t\tprovideLocal(key, state);\n\t\treturn state;\n\t};\n\tconst useInjectedState = () => injectLocal(key, defaultValue);\n\treturn [useProvidingState, useInjectedState];\n}\n\n//#endregion\n//#region createRef/index.ts\n/**\n* Returns a `deepRef` or `shallowRef` depending on the `deep` param.\n*\n* @example createRef(1) // ShallowRef<number>\n* @example createRef(1, false) // ShallowRef<number>\n* @example createRef(1, true) // Ref<number>\n* @example createRef(\"string\") // ShallowRef<string>\n* @example createRef<\"A\"|\"B\">(\"A\", true) // Ref<\"A\"|\"B\">\n*\n* @param value\n* @param deep\n* @returns the `deepRef` or `shallowRef`\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createRef(value, deep) {\n\tif (deep === true) return ref(value);\n\telse return shallowRef(value);\n}\n\n//#endregion\n//#region utils/is.ts\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n\tif (!condition) console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {};\nconst rand = (min, max) => {\n\tmin = Math.ceil(min);\n\tmax = Math.floor(max);\n\treturn Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n\tvar _window, _window2, _window3;\n\treturn isClient && !!((_window = window) === null || _window === void 0 || (_window = _window.navigator) === null || _window === void 0 ? void 0 : _window.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_window2 = window) === null || _window2 === void 0 || (_window2 = _window2.navigator) === null || _window2 === void 0 ? void 0 : _window2.maxTouchPoints) > 2 && /iPad|Macintosh/.test((_window3 = window) === null || _window3 === void 0 ? void 0 : _window3.navigator.userAgent));\n}\n\n//#endregion\n//#region toRef/index.ts\nfunction toRef(...args) {\n\tif (args.length !== 1) return toRef$1(...args);\n\tconst r = args[0];\n\treturn typeof r === \"function\" ? readonly(customRef(() => ({\n\t\tget: r,\n\t\tset: noop\n\t}))) : ref(r);\n}\n\n//#endregion\n//#region utils/filters.ts\n/**\n* @internal\n*/\nfunction createFilterWrapper(filter, fn) {\n\tfunction wrapper(...args) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tPromise.resolve(filter(() => fn.apply(this, args), {\n\t\t\t\tfn,\n\t\t\t\tthisArg: this,\n\t\t\t\targs\n\t\t\t})).then(resolve).catch(reject);\n\t\t});\n\t}\n\treturn wrapper;\n}\nconst bypassFilter = (invoke$1) => {\n\treturn invoke$1();\n};\n/**\n* Create an EventFilter that debounce the events\n*/\nfunction debounceFilter(ms, options = {}) {\n\tlet timer;\n\tlet maxTimer;\n\tlet lastRejector = noop;\n\tconst _clearTimeout = (timer$1) => {\n\t\tclearTimeout(timer$1);\n\t\tlastRejector();\n\t\tlastRejector = noop;\n\t};\n\tlet lastInvoker;\n\tconst filter = (invoke$1) => {\n\t\tconst duration = toValue(ms);\n\t\tconst maxDuration = toValue(options.maxWait);\n\t\tif (timer) _clearTimeout(timer);\n\t\tif (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n\t\t\tif (maxTimer) {\n\t\t\t\t_clearTimeout(maxTimer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t}\n\t\t\treturn Promise.resolve(invoke$1());\n\t\t}\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlastRejector = options.rejectOnCancel ? reject : resolve;\n\t\t\tlastInvoker = invoke$1;\n\t\t\tif (maxDuration && !maxTimer) maxTimer = setTimeout(() => {\n\t\t\t\tif (timer) _clearTimeout(timer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t\tresolve(lastInvoker());\n\t\t\t}, maxDuration);\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tif (maxTimer) _clearTimeout(maxTimer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t\tresolve(invoke$1());\n\t\t\t}, duration);\n\t\t});\n\t};\n\treturn filter;\n}\nfunction throttleFilter(...args) {\n\tlet lastExec = 0;\n\tlet timer;\n\tlet isLeading = true;\n\tlet lastRejector = noop;\n\tlet lastValue;\n\tlet ms;\n\tlet trailing;\n\tlet leading;\n\tlet rejectOnCancel;\n\tif (!isRef(args[0]) && typeof args[0] === \"object\") ({delay: ms, trailing = true, leading = true, rejectOnCancel = false} = args[0]);\n\telse [ms, trailing = true, leading = true, rejectOnCancel = false] = args;\n\tconst clear = () => {\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t\tlastRejector();\n\t\t\tlastRejector = noop;\n\t\t}\n\t};\n\tconst filter = (_invoke) => {\n\t\tconst duration = toValue(ms);\n\t\tconst elapsed = Date.now() - lastExec;\n\t\tconst invoke$1 = () => {\n\t\t\treturn lastValue = _invoke();\n\t\t};\n\t\tclear();\n\t\tif (duration <= 0) {\n\t\t\tlastExec = Date.now();\n\t\t\treturn invoke$1();\n\t\t}\n\t\tif (elapsed > duration) {\n\t\t\tlastExec = Date.now();\n\t\t\tif (leading || !isLeading) invoke$1();\n\t\t} else if (trailing) lastValue = new Promise((resolve, reject) => {\n\t\t\tlastRejector = rejectOnCancel ? reject : resolve;\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tlastExec = Date.now();\n\t\t\t\tisLeading = true;\n\t\t\t\tresolve(invoke$1());\n\t\t\t\tclear();\n\t\t\t}, Math.max(0, duration - elapsed));\n\t\t});\n\t\tif (!leading && !timer) timer = setTimeout(() => isLeading = true, duration);\n\t\tisLeading = false;\n\t\treturn lastValue;\n\t};\n\treturn filter;\n}\n/**\n* EventFilter that gives extra controls to pause and resume the filter\n*\n* @param extendFilter Extra filter to apply when the PausableFilter is active, default to none\n* @param options Options to configure the filter\n*/\nfunction pausableFilter(extendFilter = bypassFilter, options = {}) {\n\tconst { initialState = \"active\" } = options;\n\tconst isActive = toRef(initialState === \"active\");\n\tfunction pause() {\n\t\tisActive.value = false;\n\t}\n\tfunction resume() {\n\t\tisActive.value = true;\n\t}\n\tconst eventFilter = (...args) => {\n\t\tif (isActive.value) extendFilter(...args);\n\t};\n\treturn {\n\t\tisActive: readonly(isActive),\n\t\tpause,\n\t\tresume,\n\t\teventFilter\n\t};\n}\n\n//#endregion\n//#region utils/general.ts\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n\treturn new Promise((resolve, reject) => {\n\t\tif (throwOnTimeout) setTimeout(() => reject(reason), ms);\n\t\telse setTimeout(resolve, ms);\n\t});\n}\nfunction identity(arg) {\n\treturn arg;\n}\n/**\n* Create singleton promise function\n*\n* @example\n* ```\n* const promise = createSingletonPromise(async () => { ... })\n*\n* await promise()\n* await promise() // all of them will be bind to a single promise instance\n* await promise() // and be resolved together\n* ```\n*/\nfunction createSingletonPromise(fn) {\n\tlet _promise;\n\tfunction wrapper() {\n\t\tif (!_promise) _promise = fn();\n\t\treturn _promise;\n\t}\n\twrapper.reset = async () => {\n\t\tconst _prev = _promise;\n\t\t_promise = void 0;\n\t\tif (_prev) await _prev;\n\t};\n\treturn wrapper;\n}\nfunction invoke(fn) {\n\treturn fn();\n}\nfunction containsProp(obj, ...props) {\n\treturn props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n\tvar _target$match;\n\tif (typeof target === \"number\") return target + delta;\n\tconst value = ((_target$match = target.match(/^-?\\d+\\.?\\d*/)) === null || _target$match === void 0 ? void 0 : _target$match[0]) || \"\";\n\tconst unit = target.slice(value.length);\n\tconst result = Number.parseFloat(value) + delta;\n\tif (Number.isNaN(result)) return target;\n\treturn result + unit;\n}\n/**\n* Get a px value for SSR use, do not rely on this method outside of SSR as REM unit is assumed at 16px, which might not be the case on the client\n*/\nfunction pxValue(px) {\n\treturn px.endsWith(\"rem\") ? Number.parseFloat(px) * 16 : Number.parseFloat(px);\n}\n/**\n* Create a new subset object by giving keys\n*/\nfunction objectPick(obj, keys, omitUndefined = false) {\n\treturn keys.reduce((n, k) => {\n\t\tif (k in obj) {\n\t\t\tif (!omitUndefined || obj[k] !== void 0) n[k] = obj[k];\n\t\t}\n\t\treturn n;\n\t}, {});\n}\n/**\n* Create a new subset object by omit giving keys\n*/\nfunction objectOmit(obj, keys, omitUndefined = false) {\n\treturn Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n\t\treturn (!omitUndefined || value !== void 0) && !keys.includes(key);\n\t}));\n}\nfunction objectEntries(obj) {\n\treturn Object.entries(obj);\n}\nfunction toArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\n//#endregion\n//#region utils/port.ts\nfunction cacheStringFunction(fn) {\n\tconst cache = Object.create(null);\n\treturn ((str) => {\n\t\treturn cache[str] || (cache[str] = fn(str));\n\t});\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n\treturn str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n\n//#endregion\n//#region utils/vue.ts\nfunction getLifeCycleTarget(target) {\n\treturn target || getCurrentInstance();\n}\n\n//#endregion\n//#region createSharedComposable/index.ts\n/**\n* Make a composable function usable with multiple Vue instances.\n*\n* @see https://vueuse.org/createSharedComposable\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createSharedComposable(composable) {\n\tif (!isClient) return composable;\n\tlet subscribers = 0;\n\tlet state;\n\tlet scope;\n\tconst dispose = () => {\n\t\tsubscribers -= 1;\n\t\tif (scope && subscribers <= 0) {\n\t\t\tscope.stop();\n\t\t\tstate = void 0;\n\t\t\tscope = void 0;\n\t\t}\n\t};\n\treturn ((...args) => {\n\t\tsubscribers += 1;\n\t\tif (!scope) {\n\t\t\tscope = effectScope(true);\n\t\t\tstate = scope.run(() => composable(...args));\n\t\t}\n\t\ttryOnScopeDispose(dispose);\n\t\treturn state;\n\t});\n}\n\n//#endregion\n//#region extendRef/index.ts\nfunction extendRef(ref$1, extend, { enumerable = false, unwrap = true } = {}) {\n\tfor (const [key, value] of Object.entries(extend)) {\n\t\tif (key === \"value\") continue;\n\t\tif (isRef(value) && unwrap) Object.defineProperty(ref$1, key, {\n\t\t\tget() {\n\t\t\t\treturn value.value;\n\t\t\t},\n\t\t\tset(v) {\n\t\t\t\tvalue.value = v;\n\t\t\t},\n\t\t\tenumerable\n\t\t});\n\t\telse Object.defineProperty(ref$1, key, {\n\t\t\tvalue,\n\t\t\tenumerable\n\t\t});\n\t}\n\treturn ref$1;\n}\n\n//#endregion\n//#region get/index.ts\nfunction get(obj, key) {\n\tif (key == null) return unref(obj);\n\treturn unref(obj)[key];\n}\n\n//#endregion\n//#region isDefined/index.ts\nfunction isDefined(v) {\n\treturn unref(v) != null;\n}\n\n//#endregion\n//#region makeDestructurable/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction makeDestructurable(obj, arr) {\n\tif (typeof Symbol !== \"undefined\") {\n\t\tconst clone = { ...obj };\n\t\tObject.defineProperty(clone, Symbol.iterator, {\n\t\t\tenumerable: false,\n\t\t\tvalue() {\n\t\t\t\tlet index = 0;\n\t\t\t\treturn { next: () => ({\n\t\t\t\t\tvalue: arr[index++],\n\t\t\t\t\tdone: index > arr.length\n\t\t\t\t}) };\n\t\t\t}\n\t\t});\n\t\treturn clone;\n\t} else return Object.assign([...arr], obj);\n}\n\n//#endregion\n//#region reactify/index.ts\n/**\n* Converts plain function into a reactive function.\n* The converted function accepts refs as it's arguments\n* and returns a ComputedRef, with proper typing.\n*\n* @param fn - Source function\n* @param options - Options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction reactify(fn, options) {\n\tconst unrefFn = (options === null || options === void 0 ? void 0 : options.computedGetter) === false ? unref : toValue;\n\treturn function(...args) {\n\t\treturn computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n\t};\n}\n/** @deprecated use `reactify` instead */\nconst createReactiveFn = reactify;\n\n//#endregion\n//#region reactifyObject/index.ts\n/**\n* Apply `reactify` to an object\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n\tlet keys = [];\n\tlet options;\n\tif (Array.isArray(optionsOrKeys)) keys = optionsOrKeys;\n\telse {\n\t\toptions = optionsOrKeys;\n\t\tconst { includeOwnProperties = true } = optionsOrKeys;\n\t\tkeys.push(...Object.keys(obj));\n\t\tif (includeOwnProperties) keys.push(...Object.getOwnPropertyNames(obj));\n\t}\n\treturn Object.fromEntries(keys.map((key) => {\n\t\tconst value = obj[key];\n\t\treturn [key, typeof value === \"function\" ? reactify(value.bind(obj), options) : value];\n\t}));\n}\n\n//#endregion\n//#region toReactive/index.ts\n/**\n* Converts ref to reactive.\n*\n* @see https://vueuse.org/toReactive\n* @param objectRef A ref of object\n*/\nfunction toReactive(objectRef) {\n\tif (!isRef(objectRef)) return reactive(objectRef);\n\treturn reactive(new Proxy({}, {\n\t\tget(_, p, receiver) {\n\t\t\treturn unref(Reflect.get(objectRef.value, p, receiver));\n\t\t},\n\t\tset(_, p, value) {\n\t\t\tif (isRef(objectRef.value[p]) && !isRef(value)) objectRef.value[p].value = value;\n\t\t\telse objectRef.value[p] = value;\n\t\t\treturn true;\n\t\t},\n\t\tdeleteProperty(_, p) {\n\t\t\treturn Reflect.deleteProperty(objectRef.value, p);\n\t\t},\n\t\thas(_, p) {\n\t\t\treturn Reflect.has(objectRef.value, p);\n\t\t},\n\t\townKeys() {\n\t\t\treturn Object.keys(objectRef.value);\n\t\t},\n\t\tgetOwnPropertyDescriptor() {\n\t\t\treturn {\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t};\n\t\t}\n\t}));\n}\n\n//#endregion\n//#region reactiveComputed/index.ts\n/**\n* Computed reactive object.\n*/\nfunction reactiveComputed(fn) {\n\treturn toReactive(computed(fn));\n}\n\n//#endregion\n//#region reactiveOmit/index.ts\n/**\n* Reactively omit fields from a reactive object\n*\n* @see https://vueuse.org/reactiveOmit\n*/\nfunction reactiveOmit(obj, ...keys) {\n\tconst flatKeys = keys.flat();\n\tconst predicate = flatKeys[0];\n\treturn reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\n//#endregion\n//#region reactivePick/index.ts\n/**\n* Reactively pick fields from a reactive object\n*\n* @see https://vueuse.org/reactivePick\n*/\nfunction reactivePick(obj, ...keys) {\n\tconst flatKeys = keys.flat();\n\tconst predicate = flatKeys[0];\n\treturn reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\n//#endregion\n//#region refAutoReset/index.ts\n/**\n* Create a ref which will be reset to the default value after some time.\n*\n* @see https://vueuse.org/refAutoReset\n* @param defaultValue The value which will be set.\n* @param afterMs A zero-or-greater delay in milliseconds.\n*/\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n\treturn customRef((track, trigger) => {\n\t\tlet value = toValue(defaultValue);\n\t\tlet timer;\n\t\tconst resetAfter = () => setTimeout(() => {\n\t\t\tvalue = toValue(defaultValue);\n\t\t\ttrigger();\n\t\t}, toValue(afterMs));\n\t\ttryOnScopeDispose(() => {\n\t\t\tclearTimeout(timer);\n\t\t});\n\t\treturn {\n\t\t\tget() {\n\t\t\t\ttrack();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tset(newValue) {\n\t\t\t\tvalue = newValue;\n\t\t\t\ttrigger();\n\t\t\t\tclearTimeout(timer);\n\t\t\t\ttimer = resetAfter();\n\t\t\t}\n\t\t};\n\t});\n}\n/** @deprecated use `refAutoReset` instead */\nconst autoResetRef = refAutoReset;\n\n//#endregion\n//#region useDebounceFn/index.ts\n/**\n* Debounce execution of a function.\n*\n* @see https://vueuse.org/useDebounceFn\n* @param fn A function to be executed after delay milliseconds debounced.\n* @param ms A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* @param options Options\n*\n* @return A new, debounce, function.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n\treturn createFilterWrapper(debounceFilter(ms, options), fn);\n}\n\n//#endregion\n//#region refDebounced/index.ts\n/**\n* Debounce updates of a ref.\n*\n* @return A new debounced ref.\n*/\nfunction refDebounced(value, ms = 200, options = {}) {\n\tconst debounced = ref(toValue(value));\n\tconst updater = useDebounceFn(() => {\n\t\tdebounced.value = value.value;\n\t}, ms, options);\n\twatch(value, () => updater());\n\treturn shallowReadonly(debounced);\n}\n/** @deprecated use `refDebounced` instead */\nconst debouncedRef = refDebounced;\n/** @deprecated use `refDebounced` instead */\nconst useDebounce = refDebounced;\n\n//#endregion\n//#region refDefault/index.ts\n/**\n* Apply default value to a ref.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction refDefault(source, defaultValue) {\n\treturn computed({\n\t\tget() {\n\t\t\tvar _source$value;\n\t\t\treturn (_source$value = source.value) !== null && _source$value !== void 0 ? _source$value : defaultValue;\n\t\t},\n\t\tset(value) {\n\t\t\tsource.value = value;\n\t\t}\n\t});\n}\n\n//#endregion\n//#region refManualReset/index.ts\n/**\n* Create a ref with manual reset functionality.\n*\n* @see https://vueuse.org/refManualReset\n* @param defaultValue The value which will be set.\n*/\nfunction refManualReset(defaultValue) {\n\tlet value = toValue(defaultValue);\n\tlet trigger;\n\tconst reset = () => {\n\t\tvalue = toValue(defaultValue);\n\t\ttrigger();\n\t};\n\tconst refValue = customRef((track, _trigger) => {\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\ttrack();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tset(newValue) {\n\t\t\t\tvalue = newValue;\n\t\t\t\ttrigger();\n\t\t\t}\n\t\t};\n\t});\n\trefValue.reset = reset;\n\treturn refValue;\n}\n\n//#endregion\n//#region useThrottleFn/index.ts\n/**\n* Throttle execution of a function. Especially useful for rate limiting\n* execution of handlers on events like resize and scroll.\n*\n* @param fn A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n* to `callback` when the throttled-function is executed.\n* @param ms A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* (default value: 200)\n*\n* @param [trailing] if true, call fn again after the time is up (default value: false)\n*\n* @param [leading] if true, call fn on the leading edge of the ms timeout (default value: true)\n*\n* @param [rejectOnCancel] if true, reject the last call if it's been cancel (default value: false)\n*\n* @return A new, throttled, function.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n\treturn createFilterWrapper(throttleFilter(ms, trailing, leading, rejectOnCancel), fn);\n}\n\n//#endregion\n//#region refThrottled/index.ts\n/**\n* Throttle execution of a function. Especially useful for rate limiting\n* execution of handlers on events like resize and scroll.\n*\n* @param value Ref value to be watched with throttle effect\n* @param delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* @param trailing if true, update the value again after the delay time is up\n* @param leading if true, update the value on the leading edge of the ms timeout\n*/\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n\tif (delay <= 0) return value;\n\tconst throttled = ref(toValue(value));\n\tconst updater = useThrottleFn(() => {\n\t\tthrottled.value = value.value;\n\t}, delay, trailing, leading);\n\twatch(value, () => updater());\n\treturn throttled;\n}\n/** @deprecated use `refThrottled` instead */\nconst throttledRef = refThrottled;\n/** @deprecated use `refThrottled` instead */\nconst useThrottle = refThrottled;\n\n//#endregion\n//#region refWithControl/index.ts\n/**\n* Fine-grained controls over ref and its reactivity.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction refWithControl(initial, options = {}) {\n\tlet source = initial;\n\tlet track;\n\tlet trigger;\n\tconst ref$1 = customRef((_track, _trigger) => {\n\t\ttrack = _track;\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\treturn get$1();\n\t\t\t},\n\t\t\tset(v) {\n\t\t\t\tset$1(v);\n\t\t\t}\n\t\t};\n\t});\n\tfunction get$1(tracking = true) {\n\t\tif (tracking) track();\n\t\treturn source;\n\t}\n\tfunction set$1(value, triggering = true) {\n\t\tvar _options$onBeforeChan, _options$onChanged;\n\t\tif (value === source) return;\n\t\tconst old = source;\n\t\tif (((_options$onBeforeChan = options.onBeforeChange) === null || _options$onBeforeChan === void 0 ? void 0 : _options$onBeforeChan.call(options, value, old)) === false) return;\n\t\tsource = value;\n\t\t(_options$onChanged = options.onChanged) === null || _options$onChanged === void 0 || _options$onChanged.call(options, value, old);\n\t\tif (triggering) trigger();\n\t}\n\t/**\n\t* Get the value without tracked in the reactivity system\n\t*/\n\tconst untrackedGet = () => get$1(false);\n\t/**\n\t* Set the value without triggering the reactivity system\n\t*/\n\tconst silentSet = (v) => set$1(v, false);\n\t/**\n\t* Get the value without tracked in the reactivity system.\n\t*\n\t* Alias for `untrackedGet()`\n\t*/\n\tconst peek = () => get$1(false);\n\t/**\n\t* Set the value without triggering the reactivity system\n\t*\n\t* Alias for `silentSet(v)`\n\t*/\n\tconst lay = (v) => set$1(v, false);\n\treturn extendRef(ref$1, {\n\t\tget: get$1,\n\t\tset: set$1,\n\t\tuntrackedGet,\n\t\tsilentSet,\n\t\tpeek,\n\t\tlay\n\t}, { enumerable: true });\n}\n/** @deprecated use `refWithControl` instead */\nconst controlledRef = refWithControl;\n\n//#endregion\n//#region set/index.ts\n/**\n* Shorthand for `ref.value = x`\n*/\nfunction set(...args) {\n\tif (args.length === 2) {\n\t\tconst [ref$1, value] = args;\n\t\tref$1.value = value;\n\t}\n\tif (args.length === 3) {\n\t\tconst [target, key, value] = args;\n\t\ttarget[key] = value;\n\t}\n}\n\n//#endregion\n//#region watchWithFilter/index.ts\nfunction watchWithFilter(source, cb, options = {}) {\n\tconst { eventFilter = bypassFilter,...watchOptions } = options;\n\treturn watch(source, createFilterWrapper(eventFilter, cb), watchOptions);\n}\n\n//#endregion\n//#region watchPausable/index.ts\nfunction watchPausable(source, cb, options = {}) {\n\tconst { eventFilter: filter, initialState = \"active\",...watchOptions } = options;\n\tconst { eventFilter, pause, resume, isActive } = pausableFilter(filter, { initialState });\n\treturn {\n\t\tstop: watchWithFilter(source, cb, {\n\t\t\t...watchOptions,\n\t\t\teventFilter\n\t\t}),\n\t\tpause,\n\t\tresume,\n\t\tisActive\n\t};\n}\n/** @deprecated use `watchPausable` instead */\nconst pausableWatch = watchPausable;\n\n//#endregion\n//#region syncRef/index.ts\n/**\n* Two-way refs synchronization.\n* From the set theory perspective to restrict the option's type\n* Check in the following order:\n* 1. L = R\n* 2. L ∩ R ≠ ∅\n* 3. L ⊆ R\n* 4. L ∩ R = ∅\n*/\nfunction syncRef(left, right, ...[options]) {\n\tconst { flush = \"sync\", deep = false, immediate = true, direction = \"both\", transform = {} } = options || {};\n\tconst watchers = [];\n\tconst transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n\tconst transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n\tif (direction === \"both\" || direction === \"ltr\") watchers.push(pausableWatch(left, (newValue) => {\n\t\twatchers.forEach((w) => w.pause());\n\t\tright.value = transformLTR(newValue);\n\t\twatchers.forEach((w) => w.resume());\n\t}, {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t}));\n\tif (direction === \"both\" || direction === \"rtl\") watchers.push(pausableWatch(right, (newValue) => {\n\t\twatchers.forEach((w) => w.pause());\n\t\tleft.value = transformRTL(newValue);\n\t\twatchers.forEach((w) => w.resume());\n\t}, {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t}));\n\tconst stop = () => {\n\t\twatchers.forEach((w) => w.stop());\n\t};\n\treturn stop;\n}\n\n//#endregion\n//#region syncRefs/index.ts\n/**\n* Keep target ref(s) in sync with the source ref\n*\n* @param source source ref\n* @param targets\n*/\nfunction syncRefs(source, targets, options = {}) {\n\tconst { flush = \"sync\", deep = false, immediate = true } = options;\n\tconst targetsArray = toArray(targets);\n\treturn watch(source, (newValue) => targetsArray.forEach((target) => target.value = newValue), {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t});\n}\n\n//#endregion\n//#region toRefs/index.ts\n/**\n* Extended `toRefs` that also accepts refs of an object.\n*\n* @see https://vueuse.org/toRefs\n* @param objectRef A ref or normal object or array.\n* @param options Options\n*/\nfunction toRefs(objectRef, options = {}) {\n\tif (!isRef(objectRef)) return toRefs$1(objectRef);\n\tconst result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n\tfor (const key in objectRef.value) result[key] = customRef(() => ({\n\t\tget() {\n\t\t\treturn objectRef.value[key];\n\t\t},\n\t\tset(v) {\n\t\t\tvar _toValue;\n\t\t\tif ((_toValue = toValue(options.replaceRef)) !== null && _toValue !== void 0 ? _toValue : true) if (Array.isArray(objectRef.value)) {\n\t\t\t\tconst copy = [...objectRef.value];\n\t\t\t\tcopy[key] = v;\n\t\t\t\tobjectRef.value = copy;\n\t\t\t} else {\n\t\t\t\tconst newObject = {\n\t\t\t\t\t...objectRef.value,\n\t\t\t\t\t[key]: v\n\t\t\t\t};\n\t\t\t\tObject.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n\t\t\t\tobjectRef.value = newObject;\n\t\t\t}\n\t\t\telse objectRef.value[key] = v;\n\t\t}\n\t}));\n\treturn result;\n}\n\n//#endregion\n//#region tryOnBeforeMount/index.ts\n/**\n* Call onBeforeMount() if it's inside a component lifecycle, if not, just call the function\n*\n* @param fn\n* @param sync if set to false, it will run in the nextTick() of Vue\n* @param target\n*/\nfunction tryOnBeforeMount(fn, sync = true, target) {\n\tif (getLifeCycleTarget(target)) onBeforeMount(fn, target);\n\telse if (sync) fn();\n\telse nextTick(fn);\n}\n\n//#endregion\n//#region tryOnBeforeUnmount/index.ts\n/**\n* Call onBeforeUnmount() if it's inside a component lifecycle, if not, do nothing\n*\n* @param fn\n* @param target\n*/\nfunction tryOnBeforeUnmount(fn, target) {\n\tif (getLifeCycleTarget(target)) onBeforeUnmount(fn, target);\n}\n\n//#endregion\n//#region tryOnMounted/index.ts\n/**\n* Call onMounted() if it's inside a component lifecycle, if not, just call the function\n*\n* @param fn\n* @param sync if set to false, it will run in the nextTick() of Vue\n* @param target\n*/\nfunction tryOnMounted(fn, sync = true, target) {\n\tif (getLifeCycleTarget(target)) onMounted(fn, target);\n\telse if (sync) fn();\n\telse nextTick(fn);\n}\n\n//#endregion\n//#region tryOnUnmounted/index.ts\n/**\n* Call onUnmounted() if it's inside a component lifecycle, if not, do nothing\n*\n* @param fn\n* @param target\n*/\nfunction tryOnUnmounted(fn, target) {\n\tif (getLifeCycleTarget(target)) onUnmounted(fn, target);\n}\n\n//#endregion\n//#region until/index.ts\nfunction createUntil(r, isNot = false) {\n\tfunction toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n\t\tlet stop = null;\n\t\tconst promises = [new Promise((resolve) => {\n\t\t\tstop = watch(r, (v) => {\n\t\t\t\tif (condition(v) !== isNot) {\n\t\t\t\t\tif (stop) stop();\n\t\t\t\t\telse nextTick(() => stop === null || stop === void 0 ? void 0 : stop());\n\t\t\t\t\tresolve(v);\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\tflush,\n\t\t\t\tdeep,\n\t\t\t\timmediate: true\n\t\t\t});\n\t\t})];\n\t\tif (timeout != null) promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop === null || stop === void 0 ? void 0 : stop()));\n\t\treturn Promise.race(promises);\n\t}\n\tfunction toBe(value, options) {\n\t\tif (!isRef(value)) return toMatch((v) => v === value, options);\n\t\tconst { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options !== null && options !== void 0 ? options : {};\n\t\tlet stop = null;\n\t\tconst promises = [new Promise((resolve) => {\n\t\t\tstop = watch([r, value], ([v1, v2]) => {\n\t\t\t\tif (isNot !== (v1 === v2)) {\n\t\t\t\t\tif (stop) stop();\n\t\t\t\t\telse nextTick(() => stop === null || stop === void 0 ? void 0 : stop());\n\t\t\t\t\tresolve(v1);\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\tflush,\n\t\t\t\tdeep,\n\t\t\t\timmediate: true\n\t\t\t});\n\t\t})];\n\t\tif (timeout != null) promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n\t\t\tstop === null || stop === void 0 || stop();\n\t\t\treturn toValue(r);\n\t\t}));\n\t\treturn Promise.race(promises);\n\t}\n\tfunction toBeTruthy(options) {\n\t\treturn toMatch((v) => Boolean(v), options);\n\t}\n\tfunction toBeNull(options) {\n\t\treturn toBe(null, options);\n\t}\n\tfunction toBeUndefined(options) {\n\t\treturn toBe(void 0, options);\n\t}\n\tfunction toBeNaN(options) {\n\t\treturn toMatch(Number.isNaN, options);\n\t}\n\tfunction toContains(value, options) {\n\t\treturn toMatch((v) => {\n\t\t\tconst array = Array.from(v);\n\t\t\treturn array.includes(value) || array.includes(toValue(value));\n\t\t}, options);\n\t}\n\tfunction changed(options) {\n\t\treturn changedTimes(1, options);\n\t}\n\tfunction changedTimes(n = 1, options) {\n\t\tlet count = -1;\n\t\treturn toMatch(() => {\n\t\t\tcount += 1;\n\t\t\treturn count >= n;\n\t\t}, options);\n\t}\n\tif (Array.isArray(toValue(r))) return {\n\t\ttoMatch,\n\t\ttoContains,\n\t\tchanged,\n\t\tchangedTimes,\n\t\tget not() {\n\t\t\treturn createUntil(r, !isNot);\n\t\t}\n\t};\n\telse return {\n\t\ttoMatch,\n\t\ttoBe,\n\t\ttoBeTruthy,\n\t\ttoBeNull,\n\t\ttoBeNaN,\n\t\ttoBeUndefined,\n\t\tchanged,\n\t\tchangedTimes,\n\t\tget not() {\n\t\t\treturn createUntil(r, !isNot);\n\t\t}\n\t};\n}\nfunction until(r) {\n\treturn createUntil(r);\n}\n\n//#endregion\n//#region useArrayDifference/index.ts\nfunction defaultComparator(value, othVal) {\n\treturn value === othVal;\n}\n/**\n* Reactive get array difference of two array\n* @see https://vueuse.org/useArrayDifference\n* @returns - the difference of two array\n* @param args\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayDifference(...args) {\n\tvar _args$, _args$2;\n\tconst list = args[0];\n\tconst values = args[1];\n\tlet compareFn = (_args$ = args[2]) !== null && _args$ !== void 0 ? _args$ : defaultComparator;\n\tconst { symmetric = false } = (_args$2 = args[3]) !== null && _args$2 !== void 0 ? _args$2 : {};\n\tif (typeof compareFn === \"string\") {\n\t\tconst key = compareFn;\n\t\tcompareFn = (value, othVal) => value[key] === othVal[key];\n\t}\n\tconst diff1 = computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n\tif (symmetric) {\n\t\tconst diff2 = computed(() => toValue(values).filter((x) => toValue(list).findIndex((y) => compareFn(x, y)) === -1));\n\t\treturn computed(() => symmetric ? [...toValue(diff1), ...toValue(diff2)] : toValue(diff1));\n\t} else return diff1;\n}\n\n//#endregion\n//#region useArrayEvery/index.ts\n/**\n* Reactive `Array.every`\n*\n* @see https://vueuse.org/useArrayEvery\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns **true** if the `fn` function returns a **truthy** value for every element from the array. Otherwise, **false**.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayEvery(list, fn) {\n\treturn computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n\n//#endregion\n//#region useArrayFilter/index.ts\n/**\n* Reactive `Array.filter`\n*\n* @see https://vueuse.org/useArrayFilter\n* @param list - the array was called upon.\n* @param fn - a function that is called for every element of the given `list`. Each time `fn` executes, the returned value is added to the new array.\n*\n* @returns a shallow copy of a portion of the given array, filtered down to just the elements from the given array that pass the test implemented by the provided function. If no elements pass the test, an empty array will be returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFilter(list, fn) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n\n//#endregion\n//#region useArrayFind/index.ts\n/**\n* Reactive `Array.find`\n*\n* @see https://vueuse.org/useArrayFind\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the first element in the array that satisfies the provided testing function. Otherwise, undefined is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFind(list, fn) {\n\treturn computed(() => toValue(toValue(list).find((element, index, array) => fn(toValue(element), index, array))));\n}\n\n//#endregion\n//#region useArrayFindIndex/index.ts\n/**\n* Reactive `Array.findIndex`\n*\n* @see https://vueuse.org/useArrayFindIndex\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the index of the first element in the array that passes the test. Otherwise, \"-1\".\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFindIndex(list, fn) {\n\treturn computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n\n//#endregion\n//#region useArrayFindLast/index.ts\nfunction findLast(arr, cb) {\n\tlet index = arr.length;\n\twhile (index-- > 0) if (cb(arr[index], index, arr)) return arr[index];\n}\n/**\n* Reactive `Array.findLast`\n*\n* @see https://vueuse.org/useArrayFindLast\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the last element in the array that satisfies the provided testing function. Otherwise, undefined is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFindLast(list, fn) {\n\treturn computed(() => toValue(!Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))));\n}\n\n//#endregion\n//#region useArrayIncludes/index.ts\nfunction isArrayIncludesOptions(obj) {\n\treturn isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\n/**\n* Reactive `Array.includes`\n*\n* @see https://vueuse.org/useArrayIncludes\n*\n* @returns true if the `value` is found in the array. Otherwise, false.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayIncludes(...args) {\n\tvar _comparator;\n\tconst list = args[0];\n\tconst value = args[1];\n\tlet comparator = args[2];\n\tlet formIndex = 0;\n\tif (isArrayIncludesOptions(comparator)) {\n\t\tvar _comparator$fromIndex;\n\t\tformIndex = (_comparator$fromIndex = comparator.fromIndex) !== null && _comparator$fromIndex !== void 0 ? _comparator$fromIndex : 0;\n\t\tcomparator = comparator.comparator;\n\t}\n\tif (typeof comparator === \"string\") {\n\t\tconst key = comparator;\n\t\tcomparator = (element, value$1) => element[key] === toValue(value$1);\n\t}\n\tcomparator = (_comparator = comparator) !== null && _comparator !== void 0 ? _comparator : ((element, value$1) => element === toValue(value$1));\n\treturn computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(toValue(element), toValue(value), index, toValue(array))));\n}\n\n//#endregion\n//#region useArrayJoin/index.ts\n/**\n* Reactive `Array.join`\n*\n* @see https://vueuse.org/useArrayJoin\n* @param list - the array was called upon.\n* @param separator - a string to separate each pair of adjacent elements of the array. If omitted, the array elements are separated with a comma (\",\").\n*\n* @returns a string with all array elements joined. If arr.length is 0, the empty string is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayJoin(list, separator) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n\n//#endregion\n//#region useArrayMap/index.ts\n/**\n* Reactive `Array.map`\n*\n* @see https://vueuse.org/useArrayMap\n* @param list - the array was called upon.\n* @param fn - a function that is called for every element of the given `list`. Each time `fn` executes, the returned value is added to the new array.\n*\n* @returns a new array with each element being the result of the callback function.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayMap(list, fn) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n\n//#endregion\n//#region useArrayReduce/index.ts\n/**\n* Reactive `Array.reduce`\n*\n* @see https://vueuse.org/useArrayReduce\n* @param list - the array was called upon.\n* @param reducer - a \"reducer\" function.\n* @param args\n*\n* @returns the value that results from running the \"reducer\" callback function to completion over the entire array.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayReduce(list, reducer, ...args) {\n\tconst reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n\treturn computed(() => {\n\t\tconst resolved = toValue(list);\n\t\treturn args.length ? resolved.reduce(reduceCallback, typeof args[0] === \"function\" ? toValue(args[0]()) : toValue(args[0])) : resolved.reduce(reduceCallback);\n\t});\n}\n\n//#endregion\n//#region useArraySome/index.ts\n/**\n* Reactive `Array.some`\n*\n* @see https://vueuse.org/useArraySome\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns **true** if the `fn` function returns a **truthy** value for any element from the array. Otherwise, **false**.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArraySome(list, fn) {\n\treturn computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n\n//#endregion\n//#region useArrayUnique/index.ts\nfunction uniq(array) {\n\treturn Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n\treturn array.reduce((acc, v) => {\n\t\tif (!acc.some((x) => fn(v, x, array))) acc.push(v);\n\t\treturn acc;\n\t}, []);\n}\n/**\n* reactive unique array\n* @see https://vueuse.org/useArrayUnique\n* @param list - the array was called upon.\n* @param compareFn\n* @returns A computed ref that returns a unique array of items.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayUnique(list, compareFn) {\n\treturn computed(() => {\n\t\tconst resolvedList = toValue(list).map((element) => toValue(element));\n\t\treturn compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n\t});\n}\n\n//#endregion\n//#region useCounter/index.ts\n/**\n* Basic counter with utility functions.\n*\n* @see https://vueuse.org/useCounter\n* @param [initialValue]\n* @param options\n*/\nfunction useCounter(initialValue = 0, options = {}) {\n\tlet _initialValue = unref(initialValue);\n\tconst count = shallowRef(initialValue);\n\tconst { max = Number.POSITIVE_INFINITY, min = Number.NEGATIVE_INFINITY } = options;\n\tconst inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min);\n\tconst dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max);\n\tconst get$1 = () => count.value;\n\tconst set$1 = (val) => count.value = Math.max(min, Math.min(max, val));\n\tconst reset = (val = _initialValue) => {\n\t\t_initialValue = val;\n\t\treturn set$1(val);\n\t};\n\treturn {\n\t\tcount: shallowReadonly(count),\n\t\tinc,\n\t\tdec,\n\t\tget: get$1,\n\t\tset: set$1,\n\t\treset\n\t};\n}\n\n//#endregion\n//#region useDateFormat/index.ts\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[T\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/i;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)\\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|z{1,4}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n\tlet m = hours < 12 ? \"AM\" : \"PM\";\n\tif (hasPeriod) m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n\treturn isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n\tconst suffixes = [\n\t\t\"th\",\n\t\t\"st\",\n\t\t\"nd\",\n\t\t\"rd\"\n\t];\n\tconst v = num % 100;\n\treturn num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n\tvar _options$customMeridi;\n\tconst years = date.getFullYear();\n\tconst month = date.getMonth();\n\tconst days = date.getDate();\n\tconst hours = date.getHours();\n\tconst minutes = date.getMinutes();\n\tconst seconds = date.getSeconds();\n\tconst milliseconds = date.getMilliseconds();\n\tconst day = date.getDay();\n\tconst meridiem = (_options$customMeridi = options.customMeridiem) !== null && _options$customMeridi !== void 0 ? _options$customMeridi : defaultMeridiem;\n\tconst stripTimeZone = (dateString) => {\n\t\tvar _dateString$split$;\n\t\treturn (_dateString$split$ = dateString.split(\" \")[1]) !== null && _dateString$split$ !== void 0 ? _dateString$split$ : \"\";\n\t};\n\tconst matches = {\n\t\tYo: () => formatOrdinal(years),\n\t\tYY: () => String(years).slice(-2),\n\t\tYYYY: () => years,\n\t\tM: () => month + 1,\n\t\tMo: () => formatOrdinal(month + 1),\n\t\tMM: () => `${month + 1}`.padStart(2, \"0\"),\n\t\tMMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"short\" }),\n\t\tMMMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"long\" }),\n\t\tD: () => String(days),\n\t\tDo: () => formatOrdinal(days),\n\t\tDD: () => `${days}`.padStart(2, \"0\"),\n\t\tH: () => String(hours),\n\t\tHo: () => formatOrdinal(hours),\n\t\tHH: () => `${hours}`.padStart(2, \"0\"),\n\t\th: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n\t\tho: () => formatOrdinal(hours % 12 || 12),\n\t\thh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n\t\tm: () => String(minutes),\n\t\tmo: () => formatOrdinal(minutes),\n\t\tmm: () => `${minutes}`.padStart(2, \"0\"),\n\t\ts: () => String(seconds),\n\t\tso: () => formatOrdinal(seconds),\n\t\tss: () => `${seconds}`.padStart(2, \"0\"),\n\t\tSSS: () => `${milliseconds}`.padStart(3, \"0\"),\n\t\td: () => day,\n\t\tdd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"narrow\" }),\n\t\tddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"short\" }),\n\t\tdddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"long\" }),\n\t\tA: () => meridiem(hours, minutes),\n\t\tAA: () => meridiem(hours, minutes, false, true),\n\t\ta: () => meridiem(hours, minutes, true),\n\t\taa: () => meridiem(hours, minutes, true, true),\n\t\tz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzzzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"longOffset\" }))\n\t};\n\treturn formatStr.replace(REGEX_FORMAT, (match, $1) => {\n\t\tvar _ref, _matches$match;\n\t\treturn (_ref = $1 !== null && $1 !== void 0 ? $1 : (_matches$match = matches[match]) === null || _matches$match === void 0 ? void 0 : _matches$match.call(matches)) !== null && _ref !== void 0 ? _ref : match;\n\t});\n}\nfunction normalizeDate(date) {\n\tif (date === null) return /* @__PURE__ */ new Date(NaN);\n\tif (date === void 0) return /* @__PURE__ */ new Date();\n\tif (date instanceof Date) return new Date(date);\n\tif (typeof date === \"string\" && !/Z$/i.test(date)) {\n\t\tconst d = date.match(REGEX_PARSE);\n\t\tif (d) {\n\t\t\tconst m = d[2] - 1 || 0;\n\t\t\tconst ms = (d[7] || \"0\").substring(0, 3);\n\t\t\treturn new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n\t\t}\n\t}\n\treturn new Date(date);\n}\n/**\n* Get the formatted date according to the string of tokens passed in.\n*\n* @see https://vueuse.org/useDateFormat\n* @param date - The date to format, can either be a `Date` object, a timestamp, or a string\n* @param formatStr - The combination of tokens to format the date\n* @param options - UseDateFormatOptions\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n\treturn computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n\n//#endregion\n//#region useIntervalFn/index.ts\n/**\n* Wrapper for `setInterval` with controls\n*\n* @see https://vueuse.org/useIntervalFn\n* @param cb\n* @param interval\n* @param options\n*/\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n\tconst { immediate = true, immediateCallback = false } = options;\n\tlet timer = null;\n\tconst isActive = shallowRef(false);\n\tfunction clean() {\n\t\tif (timer) {\n\t\t\tclearInterval(timer);\n\t\t\ttimer = null;\n\t\t}\n\t}\n\tfunction pause() {\n\t\tisActive.value = false;\n\t\tclean();\n\t}\n\tfunction resume() {\n\t\tconst intervalValue = toValue(interval);\n\t\tif (intervalValue <= 0) return;\n\t\tisActive.value = true;\n\t\tif (immediateCallback) cb();\n\t\tclean();\n\t\tif (isActive.value) timer = setInterval(cb, intervalValue);\n\t}\n\tif (immediate && isClient) resume();\n\tif (isRef(interval) || typeof interval === \"function\") tryOnScopeDispose(watch(interval, () => {\n\t\tif (isActive.value && isClient) resume();\n\t}));\n\ttryOnScopeDispose(pause);\n\treturn {\n\t\tisActive: shallowReadonly(isActive),\n\t\tpause,\n\t\tresume\n\t};\n}\n\n//#endregion\n//#region useInterval/index.ts\nfunction useInterval(interval = 1e3, options = {}) {\n\tconst { controls: exposeControls = false, immediate = true, callback } = options;\n\tconst counter = shallowRef(0);\n\tconst update = () => counter.value += 1;\n\tconst reset = () => {\n\t\tcounter.value = 0;\n\t};\n\tconst controls = useIntervalFn(callback ? () => {\n\t\tupdate();\n\t\tcallback(counter.value);\n\t} : update, interval, { immediate });\n\tif (exposeControls) return {\n\t\tcounter: shallowReadonly(counter),\n\t\treset,\n\t\t...controls\n\t};\n\telse return shallowReadonly(counter);\n}\n\n//#endregion\n//#region useLastChanged/index.ts\nfunction useLastChanged(source, options = {}) {\n\tvar _options$initialValue;\n\tconst ms = shallowRef((_options$initialValue = options.initialValue) !== null && _options$initialValue !== void 0 ? _options$initialValue : null);\n\twatch(source, () => ms.value = timestamp(), options);\n\treturn shallowReadonly(ms);\n}\n\n//#endregion\n//#region useTimeoutFn/index.ts\n/**\n* Wrapper for `setTimeout` with controls.\n*\n* @param cb\n* @param interval\n* @param options\n*/\nfunction useTimeoutFn(cb, interval, options = {}) {\n\tconst { immediate = true, immediateCallback = false } = options;\n\tconst isPending = shallowRef(false);\n\tlet timer;\n\tfunction clear() {\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t}\n\t}\n\tfunction stop() {\n\t\tisPending.value = false;\n\t\tclear();\n\t}\n\tfunction start(...args) {\n\t\tif (immediateCallback) cb();\n\t\tclear();\n\t\tisPending.value = true;\n\t\ttimer = setTimeout(() => {\n\t\t\tisPending.value = false;\n\t\t\ttimer = void 0;\n\t\t\tcb(...args);\n\t\t}, toValue(interval));\n\t}\n\tif (immediate) {\n\t\tisPending.value = true;\n\t\tif (isClient) start();\n\t}\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisPending: shallowReadonly(isPending),\n\t\tstart,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useTimeout/index.ts\nfunction useTimeout(interval = 1e3, options = {}) {\n\tconst { controls: exposeControls = false, callback } = options;\n\tconst controls = useTimeoutFn(callback !== null && callback !== void 0 ? callback : noop, interval, options);\n\tconst ready = computed(() => !controls.isPending.value);\n\tif (exposeControls) return {\n\t\tready,\n\t\t...controls\n\t};\n\telse return ready;\n}\n\n//#endregion\n//#region useToNumber/index.ts\n/**\n* Reactively convert a string ref to number.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToNumber(value, options = {}) {\n\tconst { method = \"parseFloat\", radix, nanToZero } = options;\n\treturn computed(() => {\n\t\tlet resolved = toValue(value);\n\t\tif (typeof method === \"function\") resolved = method(resolved);\n\t\telse if (typeof resolved === \"string\") resolved = Number[method](resolved, radix);\n\t\tif (nanToZero && Number.isNaN(resolved)) resolved = 0;\n\t\treturn resolved;\n\t});\n}\n\n//#endregion\n//#region useToString/index.ts\n/**\n* Reactively convert a ref to string.\n*\n* @see https://vueuse.org/useToString\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToString(value) {\n\treturn computed(() => `${toValue(value)}`);\n}\n\n//#endregion\n//#region useToggle/index.ts\n/**\n* A boolean ref with a toggler\n*\n* @see https://vueuse.org/useToggle\n* @param [initialValue]\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToggle(initialValue = false, options = {}) {\n\tconst { truthyValue = true, falsyValue = false } = options;\n\tconst valueIsRef = isRef(initialValue);\n\tconst _value = shallowRef(initialValue);\n\tfunction toggle(value) {\n\t\tif (arguments.length) {\n\t\t\t_value.value = value;\n\t\t\treturn _value.value;\n\t\t} else {\n\t\t\tconst truthy = toValue(truthyValue);\n\t\t\t_value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n\t\t\treturn _value.value;\n\t\t}\n\t}\n\tif (valueIsRef) return toggle;\n\telse return [_value, toggle];\n}\n\n//#endregion\n//#region watchArray/index.ts\n/**\n* Watch for an array with additions and removals.\n*\n* @see https://vueuse.org/watchArray\n*/\nfunction watchArray(source, cb, options) {\n\tlet oldList = (options === null || options === void 0 ? void 0 : options.immediate) ? [] : [...typeof source === \"function\" ? source() : Array.isArray(source) ? source : toValue(source)];\n\treturn watch(source, (newList, _, onCleanup) => {\n\t\tconst oldListRemains = Array.from({ length: oldList.length });\n\t\tconst added = [];\n\t\tfor (const obj of newList) {\n\t\t\tlet found = false;\n\t\t\tfor (let i = 0; i < oldList.length; i++) if (!oldListRemains[i] && obj === oldList[i]) {\n\t\t\t\toldListRemains[i] = true;\n\t\t\t\tfound = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (!found) added.push(obj);\n\t\t}\n\t\tconst removed = oldList.filter((_$1, i) => !oldListRemains[i]);\n\t\tcb(newList, oldList, added, removed, onCleanup);\n\t\toldList = [...newList];\n\t}, options);\n}\n\n//#endregion\n//#region watchAtMost/index.ts\nfunction watchAtMost(source, cb, options) {\n\tconst { count,...watchOptions } = options;\n\tconst current = shallowRef(0);\n\tconst { stop, resume, pause } = watchWithFilter(source, (...args) => {\n\t\tcurrent.value += 1;\n\t\tif (current.value >= toValue(count)) nextTick(() => stop());\n\t\tcb(...args);\n\t}, watchOptions);\n\treturn {\n\t\tcount: current,\n\t\tstop,\n\t\tresume,\n\t\tpause\n\t};\n}\n\n//#endregion\n//#region watchDebounced/index.ts\nfunction watchDebounced(source, cb, options = {}) {\n\tconst { debounce = 0, maxWait = void 0,...watchOptions } = options;\n\treturn watchWithFilter(source, cb, {\n\t\t...watchOptions,\n\t\teventFilter: debounceFilter(debounce, { maxWait })\n\t});\n}\n/** @deprecated use `watchDebounced` instead */\nconst debouncedWatch = watchDebounced;\n\n//#endregion\n//#region watchDeep/index.ts\n/**\n* Shorthand for watching value with {deep: true}\n*\n* @see https://vueuse.org/watchDeep\n*/\nfunction watchDeep(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\tdeep: true\n\t});\n}\n\n//#endregion\n//#region watchIgnorable/index.ts\nfunction watchIgnorable(source, cb, options = {}) {\n\tconst { eventFilter = bypassFilter,...watchOptions } = options;\n\tconst filteredCb = createFilterWrapper(eventFilter, cb);\n\tlet ignoreUpdates;\n\tlet ignorePrevAsyncUpdates;\n\tlet stop;\n\tif (watchOptions.flush === \"sync\") {\n\t\tlet ignore = false;\n\t\tignorePrevAsyncUpdates = () => {};\n\t\tignoreUpdates = (updater) => {\n\t\t\tignore = true;\n\t\t\tupdater();\n\t\t\tignore = false;\n\t\t};\n\t\tstop = watch(source, (...args) => {\n\t\t\tif (!ignore) filteredCb(...args);\n\t\t}, watchOptions);\n\t} else {\n\t\tconst disposables = [];\n\t\tlet ignoreCounter = 0;\n\t\tlet syncCounter = 0;\n\t\tignorePrevAsyncUpdates = () => {\n\t\t\tignoreCounter = syncCounter;\n\t\t};\n\t\tdisposables.push(watch(source, () => {\n\t\t\tsyncCounter++;\n\t\t}, {\n\t\t\t...watchOptions,\n\t\t\tflush: \"sync\"\n\t\t}));\n\t\tignoreUpdates = (updater) => {\n\t\t\tconst syncCounterPrev = syncCounter;\n\t\t\tupdater();\n\t\t\tignoreCounter += syncCounter - syncCounterPrev;\n\t\t};\n\t\tdisposables.push(watch(source, (...args) => {\n\t\t\tconst ignore = ignoreCounter > 0 && ignoreCounter === syncCounter;\n\t\t\tignoreCounter = 0;\n\t\t\tsyncCounter = 0;\n\t\t\tif (ignore) return;\n\t\t\tfilteredCb(...args);\n\t\t}, watchOptions));\n\t\tstop = () => {\n\t\t\tdisposables.forEach((fn) => fn());\n\t\t};\n\t}\n\treturn {\n\t\tstop,\n\t\tignoreUpdates,\n\t\tignorePrevAsyncUpdates\n\t};\n}\n/** @deprecated use `watchIgnorable` instead */\nconst ignorableWatch = watchIgnorable;\n\n//#endregion\n//#region watchImmediate/index.ts\n/**\n* Shorthand for watching value with {immediate: true}\n*\n* @see https://vueuse.org/watchImmediate\n*/\nfunction watchImmediate(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\timmediate: true\n\t});\n}\n\n//#endregion\n//#region watchOnce/index.ts\n/**\n* Shorthand for watching value with { once: true }\n*\n* @see https://vueuse.org/watchOnce\n*/\nfunction watchOnce(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\tonce: true\n\t});\n}\n\n//#endregion\n//#region watchThrottled/index.ts\nfunction watchThrottled(source, cb, options = {}) {\n\tconst { throttle = 0, trailing = true, leading = true,...watchOptions } = options;\n\treturn watchWithFilter(source, cb, {\n\t\t...watchOptions,\n\t\teventFilter: throttleFilter(throttle, trailing, leading)\n\t});\n}\n/** @deprecated use `watchThrottled` instead */\nconst throttledWatch = watchThrottled;\n\n//#endregion\n//#region watchTriggerable/index.ts\nfunction watchTriggerable(source, cb, options = {}) {\n\tlet cleanupFn;\n\tfunction onEffect() {\n\t\tif (!cleanupFn) return;\n\t\tconst fn = cleanupFn;\n\t\tcleanupFn = void 0;\n\t\tfn();\n\t}\n\t/** Register the function `cleanupFn` */\n\tfunction onCleanup(callback) {\n\t\tcleanupFn = callback;\n\t}\n\tconst _cb = (value, oldValue) => {\n\t\tonEffect();\n\t\treturn cb(value, oldValue, onCleanup);\n\t};\n\tconst res = watchIgnorable(source, _cb, options);\n\tconst { ignoreUpdates } = res;\n\tconst trigger = () => {\n\t\tlet res$1;\n\t\tignoreUpdates(() => {\n\t\t\tres$1 = _cb(getWatchSources(source), getOldValue(source));\n\t\t});\n\t\treturn res$1;\n\t};\n\treturn {\n\t\t...res,\n\t\ttrigger\n\t};\n}\nfunction getWatchSources(sources) {\n\tif (isReactive(sources)) return sources;\n\tif (Array.isArray(sources)) return sources.map((item) => toValue(item));\n\treturn toValue(sources);\n}\nfunction getOldValue(source) {\n\treturn Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\n//#endregion\n//#region whenever/index.ts\n/**\n* Shorthand for watching value to be truthy\n*\n* @see https://vueuse.org/whenever\n*/\nfunction whenever(source, cb, options) {\n\tconst stop = watch(source, (v, ov, onInvalidate) => {\n\t\tif (v) {\n\t\t\tif (options === null || options === void 0 ? void 0 : options.once) nextTick(() => stop());\n\t\t\tcb(v, ov, onInvalidate);\n\t\t}\n\t}, {\n\t\t...options,\n\t\tonce: false\n\t});\n\treturn stop;\n}\n\n//#endregion\nexport { assert, autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, createReactiveFn, createRef, createSharedComposable, createSingletonPromise, debounceFilter, debouncedRef, debouncedWatch, eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, pausableWatch, promiseTimeout, provideLocal, pxValue, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refManualReset, refThrottled, refWithControl, set, syncRef, syncRefs, throttleFilter, throttledRef, throttledWatch, timestamp, toArray, toReactive, toRef, toRefs, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };","import { bypassFilter, camelize, clamp, computedWithControl, containsProp, createEventHook, createFilterWrapper, createRef, createSingletonPromise, debounceFilter, hasOwn, identity, increaseWithUnit, injectLocal, isClient, isDef, isIOS, isObject, isWorker, makeDestructurable, noop, notNullish, objectEntries, objectOmit, objectPick, pausableFilter, pausableWatch, promiseTimeout, provideLocal, pxValue, syncRef, throttleFilter, timestamp, toArray, toRef, toRefs, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useDebounceFn, useIntervalFn, useThrottleFn, useTimeoutFn, watchIgnorable, watchImmediate, watchOnce, watchWithFilter, whenever } from \"@vueuse/shared\";\nimport { Fragment, TransitionGroup, computed, customRef, defineComponent, getCurrentInstance, getCurrentScope, h, hasInjectionContext, inject, isReadonly, isRef, markRaw, nextTick, onBeforeUpdate, onMounted, onUpdated, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, toRaw, toValue, unref, watch, watchEffect } from \"vue\";\n\nexport * from \"@vueuse/shared\"\n\n//#region computedAsync/index.ts\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n\tvar _globalThis$reportErr;\n\tlet options;\n\tif (isRef(optionsOrRef)) options = { evaluating: optionsOrRef };\n\telse options = optionsOrRef || {};\n\tconst { lazy = false, flush = \"sync\", evaluating = void 0, shallow = true, onError = (_globalThis$reportErr = globalThis.reportError) !== null && _globalThis$reportErr !== void 0 ? _globalThis$reportErr : noop } = options;\n\tconst started = shallowRef(!lazy);\n\tconst current = shallow ? shallowRef(initialState) : ref(initialState);\n\tlet counter = 0;\n\twatchEffect(async (onInvalidate) => {\n\t\tif (!started.value) return;\n\t\tcounter++;\n\t\tconst counterAtBeginning = counter;\n\t\tlet hasFinished = false;\n\t\tif (evaluating) Promise.resolve().then(() => {\n\t\t\tevaluating.value = true;\n\t\t});\n\t\ttry {\n\t\t\tconst result = await evaluationCallback((cancelCallback) => {\n\t\t\t\tonInvalidate(() => {\n\t\t\t\t\tif (evaluating) evaluating.value = false;\n\t\t\t\t\tif (!hasFinished) cancelCallback();\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (counterAtBeginning === counter) current.value = result;\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t} finally {\n\t\t\tif (evaluating && counterAtBeginning === counter) evaluating.value = false;\n\t\t\thasFinished = true;\n\t\t}\n\t}, { flush });\n\tif (lazy) return computed(() => {\n\t\tstarted.value = true;\n\t\treturn current.value;\n\t});\n\telse return current;\n}\n/** @deprecated use `computedAsync` instead */\nconst asyncComputed = computedAsync;\n\n//#endregion\n//#region computedInject/index.ts\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n\tlet source = inject(key);\n\tif (defaultSource) source = inject(key, defaultSource);\n\tif (treatDefaultAsFactory) source = inject(key, defaultSource, treatDefaultAsFactory);\n\tif (typeof options === \"function\") return computed((oldValue) => options(source, oldValue));\n\telse return computed({\n\t\tget: (oldValue) => options.get(source, oldValue),\n\t\tset: options.set\n\t});\n}\n\n//#endregion\n//#region createReusableTemplate/index.ts\n/**\n* This function creates `define` and `reuse` components in pair,\n* It also allow to pass a generic to bind with type.\n*\n* @see https://vueuse.org/createReusableTemplate\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createReusableTemplate(options = {}) {\n\tconst { inheritAttrs = true } = options;\n\tconst render = shallowRef();\n\tconst define = defineComponent({ setup(_, { slots }) {\n\t\treturn () => {\n\t\t\trender.value = slots.default;\n\t\t};\n\t} });\n\tconst reuse = defineComponent({\n\t\tinheritAttrs,\n\t\tprops: options.props,\n\t\tsetup(props, { attrs, slots }) {\n\t\t\treturn () => {\n\t\t\t\tvar _render$value;\n\t\t\t\tif (!render.value && true) throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n\t\t\t\tconst vnode = (_render$value = render.value) === null || _render$value === void 0 ? void 0 : _render$value.call(render, {\n\t\t\t\t\t...options.props == null ? keysToCamelKebabCase(attrs) : props,\n\t\t\t\t\t$slots: slots\n\t\t\t\t});\n\t\t\t\treturn inheritAttrs && (vnode === null || vnode === void 0 ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n\t\t\t};\n\t\t}\n\t});\n\treturn makeDestructurable({\n\t\tdefine,\n\t\treuse\n\t}, [define, reuse]);\n}\nfunction keysToCamelKebabCase(obj) {\n\tconst newObj = {};\n\tfor (const key in obj) newObj[camelize(key)] = obj[key];\n\treturn newObj;\n}\n\n//#endregion\n//#region createTemplatePromise/index.ts\n/**\n* Creates a template promise component.\n*\n* @see https://vueuse.org/createTemplatePromise\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createTemplatePromise(options = {}) {\n\tlet index = 0;\n\tconst instances = ref([]);\n\tfunction create(...args) {\n\t\tconst props = shallowReactive({\n\t\t\tkey: index++,\n\t\t\targs,\n\t\t\tpromise: void 0,\n\t\t\tresolve: () => {},\n\t\t\treject: () => {},\n\t\t\tisResolving: false,\n\t\t\toptions\n\t\t});\n\t\tinstances.value.push(props);\n\t\tprops.promise = new Promise((_resolve, _reject) => {\n\t\t\tprops.resolve = (v) => {\n\t\t\t\tprops.isResolving = true;\n\t\t\t\treturn _resolve(v);\n\t\t\t};\n\t\t\tprops.reject = _reject;\n\t\t}).finally(() => {\n\t\t\tprops.promise = void 0;\n\t\t\tconst index$1 = instances.value.indexOf(props);\n\t\t\tif (index$1 !== -1) instances.value.splice(index$1, 1);\n\t\t});\n\t\treturn props.promise;\n\t}\n\tfunction start(...args) {\n\t\tif (options.singleton && instances.value.length > 0) return instances.value[0].promise;\n\t\treturn create(...args);\n\t}\n\tconst component = defineComponent((_, { slots }) => {\n\t\tconst renderList = () => instances.value.map((props) => {\n\t\t\tvar _slots$default;\n\t\t\treturn h(Fragment, { key: props.key }, (_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots, props));\n\t\t});\n\t\tif (options.transition) return () => h(TransitionGroup, options.transition, renderList);\n\t\treturn renderList;\n\t});\n\tcomponent.start = start;\n\treturn component;\n}\n\n//#endregion\n//#region createUnrefFn/index.ts\n/**\n* Make a plain function accepting ref and raw values as arguments.\n* Returns the same value the unconverted function returns, with proper typing.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createUnrefFn(fn) {\n\treturn function(...args) {\n\t\treturn fn.apply(this, args.map((i) => toValue(i)));\n\t};\n}\n\n//#endregion\n//#region _configurable.ts\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\n//#endregion\n//#region unrefElement/index.ts\n/**\n* Get the dom element of a ref of element or Vue component instance\n*\n* @param elRef\n*/\nfunction unrefElement(elRef) {\n\tvar _$el;\n\tconst plain = toValue(elRef);\n\treturn (_$el = plain === null || plain === void 0 ? void 0 : plain.$el) !== null && _$el !== void 0 ? _$el : plain;\n}\n\n//#endregion\n//#region useEventListener/index.ts\nfunction useEventListener(...args) {\n\tconst register = (el, event, listener, options) => {\n\t\tel.addEventListener(event, listener, options);\n\t\treturn () => el.removeEventListener(event, listener, options);\n\t};\n\tconst firstParamTargets = computed(() => {\n\t\tconst test = toArray(toValue(args[0])).filter((e) => e != null);\n\t\treturn test.every((e) => typeof e !== \"string\") ? test : void 0;\n\t});\n\treturn watchImmediate(() => {\n\t\tvar _firstParamTargets$va, _firstParamTargets$va2;\n\t\treturn [\n\t\t\t(_firstParamTargets$va = (_firstParamTargets$va2 = firstParamTargets.value) === null || _firstParamTargets$va2 === void 0 ? void 0 : _firstParamTargets$va2.map((e) => unrefElement(e))) !== null && _firstParamTargets$va !== void 0 ? _firstParamTargets$va : [defaultWindow].filter((e) => e != null),\n\t\t\ttoArray(toValue(firstParamTargets.value ? args[1] : args[0])),\n\t\t\ttoArray(unref(firstParamTargets.value ? args[2] : args[1])),\n\t\t\ttoValue(firstParamTargets.value ? args[3] : args[2])\n\t\t];\n\t}, ([raw_targets, raw_events, raw_listeners, raw_options], _, onCleanup) => {\n\t\tif (!(raw_targets === null || raw_targets === void 0 ? void 0 : raw_targets.length) || !(raw_events === null || raw_events === void 0 ? void 0 : raw_events.length) || !(raw_listeners === null || raw_listeners === void 0 ? void 0 : raw_listeners.length)) return;\n\t\tconst optionsClone = isObject(raw_options) ? { ...raw_options } : raw_options;\n\t\tconst cleanups = raw_targets.flatMap((el) => raw_events.flatMap((event) => raw_listeners.map((listener) => register(el, event, listener, optionsClone))));\n\t\tonCleanup(() => {\n\t\t\tcleanups.forEach((fn) => fn());\n\t\t});\n\t}, { flush: \"post\" });\n}\n\n//#endregion\n//#region onClickOutside/index.ts\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n\tconst { window: window$1 = defaultWindow, ignore = [], capture = true, detectIframe = false, controls = false } = options;\n\tif (!window$1) return controls ? {\n\t\tstop: noop,\n\t\tcancel: noop,\n\t\ttrigger: noop\n\t} : noop;\n\tif (isIOS && !_iOSWorkaround) {\n\t\t_iOSWorkaround = true;\n\t\tconst listenerOptions = { passive: true };\n\t\tArray.from(window$1.document.body.children).forEach((el) => el.addEventListener(\"click\", noop, listenerOptions));\n\t\twindow$1.document.documentElement.addEventListener(\"click\", noop, listenerOptions);\n\t}\n\tlet shouldListen = true;\n\tconst shouldIgnore = (event) => {\n\t\treturn toValue(ignore).some((target$1) => {\n\t\t\tif (typeof target$1 === \"string\") return Array.from(window$1.document.querySelectorAll(target$1)).some((el) => el === event.target || event.composedPath().includes(el));\n\t\t\telse {\n\t\t\t\tconst el = unrefElement(target$1);\n\t\t\t\treturn el && (event.target === el || event.composedPath().includes(el));\n\t\t\t}\n\t\t});\n\t};\n\t/**\n\t* Determines if the given target has multiple root elements.\n\t* Referenced from: https://github.com/vuejs/test-utils/blob/ccb460be55f9f6be05ab708500a41ec8adf6f4bc/src/vue-wrapper.ts#L21\n\t*/\n\tfunction hasMultipleRoots(target$1) {\n\t\tconst vm = toValue(target$1);\n\t\treturn vm && vm.$.subTree.shapeFlag === 16;\n\t}\n\tfunction checkMultipleRoots(target$1, event) {\n\t\tconst vm = toValue(target$1);\n\t\tconst children = vm.$.subTree && vm.$.subTree.children;\n\t\tif (children == null || !Array.isArray(children)) return false;\n\t\treturn children.some((child) => child.el === event.target || event.composedPath().includes(child.el));\n\t}\n\tconst listener = (event) => {\n\t\tconst el = unrefElement(target);\n\t\tif (event.target == null) return;\n\t\tif (!(el instanceof Element) && hasMultipleRoots(target) && checkMultipleRoots(target, event)) return;\n\t\tif (!el || el === event.target || event.composedPath().includes(el)) return;\n\t\tif (\"detail\" in event && event.detail === 0) shouldListen = !shouldIgnore(event);\n\t\tif (!shouldListen) {\n\t\t\tshouldListen = true;\n\t\t\treturn;\n\t\t}\n\t\thandler(event);\n\t};\n\tlet isProcessingClick = false;\n\tconst cleanup = [\n\t\tuseEventListener(window$1, \"click\", (event) => {\n\t\t\tif (!isProcessingClick) {\n\t\t\t\tisProcessingClick = true;\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tisProcessingClick = false;\n\t\t\t\t}, 0);\n\t\t\t\tlistener(event);\n\t\t\t}\n\t\t}, {\n\t\t\tpassive: true,\n\t\t\tcapture\n\t\t}),\n\t\tuseEventListener(window$1, \"pointerdown\", (e) => {\n\t\t\tconst el = unrefElement(target);\n\t\t\tshouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n\t\t}, { passive: true }),\n\t\tdetectIframe && useEventListener(window$1, \"blur\", (event) => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tvar _window$document$acti;\n\t\t\t\tconst el = unrefElement(target);\n\t\t\t\tif (((_window$document$acti = window$1.document.activeElement) === null || _window$document$acti === void 0 ? void 0 : _window$document$acti.tagName) === \"IFRAME\" && !(el === null || el === void 0 ? void 0 : el.contains(window$1.document.activeElement))) handler(event);\n\t\t\t}, 0);\n\t\t}, { passive: true })\n\t].filter(Boolean);\n\tconst stop = () => cleanup.forEach((fn) => fn());\n\tif (controls) return {\n\t\tstop,\n\t\tcancel: () => {\n\t\t\tshouldListen = false;\n\t\t},\n\t\ttrigger: (event) => {\n\t\t\tshouldListen = true;\n\t\t\tlistener(event);\n\t\t\tshouldListen = false;\n\t\t}\n\t};\n\treturn stop;\n}\n\n//#endregion\n//#region useMounted/index.ts\n/**\n* Mounted state in ref.\n*\n* @see https://vueuse.org/useMounted\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMounted() {\n\tconst isMounted = shallowRef(false);\n\tconst instance = getCurrentInstance();\n\tif (instance) onMounted(() => {\n\t\tisMounted.value = true;\n\t}, instance);\n\treturn isMounted;\n}\n\n//#endregion\n//#region useSupported/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useSupported(callback) {\n\tconst isMounted = useMounted();\n\treturn computed(() => {\n\t\tisMounted.value;\n\t\treturn Boolean(callback());\n\t});\n}\n\n//#endregion\n//#region useMutationObserver/index.ts\n/**\n* Watch for changes being made to the DOM tree.\n*\n* @see https://vueuse.org/useMutationObserver\n* @see https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver MutationObserver MDN\n* @param target\n* @param callback\n* @param options\n*/\nfunction useMutationObserver(target, callback, options = {}) {\n\tconst { window: window$1 = defaultWindow,...mutationOptions } = options;\n\tlet observer;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"MutationObserver\" in window$1);\n\tconst cleanup = () => {\n\t\tif (observer) {\n\t\t\tobserver.disconnect();\n\t\t\tobserver = void 0;\n\t\t}\n\t};\n\tconst stopWatch = watch(computed(() => {\n\t\tconst items = toArray(toValue(target)).map(unrefElement).filter(notNullish);\n\t\treturn new Set(items);\n\t}), (newTargets) => {\n\t\tcleanup();\n\t\tif (isSupported.value && newTargets.size) {\n\t\t\tobserver = new MutationObserver(callback);\n\t\t\tnewTargets.forEach((el) => observer.observe(el, mutationOptions));\n\t\t}\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\tconst takeRecords = () => {\n\t\treturn observer === null || observer === void 0 ? void 0 : observer.takeRecords();\n\t};\n\tconst stop = () => {\n\t\tstopWatch();\n\t\tcleanup();\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tstop,\n\t\ttakeRecords\n\t};\n}\n\n//#endregion\n//#region onElementRemoval/index.ts\n/**\n* Fires when the element or any element containing it is removed.\n*\n* @param target\n* @param callback\n* @param options\n*/\nfunction onElementRemoval(target, callback, options = {}) {\n\tconst { window: window$1 = defaultWindow, document: document$1 = window$1 === null || window$1 === void 0 ? void 0 : window$1.document, flush = \"sync\" } = options;\n\tif (!window$1 || !document$1) return noop;\n\tlet stopFn;\n\tconst cleanupAndUpdate = (fn) => {\n\t\tstopFn === null || stopFn === void 0 || stopFn();\n\t\tstopFn = fn;\n\t};\n\tconst stopWatch = watchEffect(() => {\n\t\tconst el = unrefElement(target);\n\t\tif (el) {\n\t\t\tconst { stop } = useMutationObserver(document$1, (mutationsList) => {\n\t\t\t\tif (mutationsList.map((mutation) => [...mutation.removedNodes]).flat().some((node) => node === el || node.contains(el))) callback(mutationsList);\n\t\t\t}, {\n\t\t\t\twindow: window$1,\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true\n\t\t\t});\n\t\t\tcleanupAndUpdate(stop);\n\t\t}\n\t}, { flush });\n\tconst stopHandle = () => {\n\t\tstopWatch();\n\t\tcleanupAndUpdate();\n\t};\n\ttryOnScopeDispose(stopHandle);\n\treturn stopHandle;\n}\n\n//#endregion\n//#region onKeyStroke/index.ts\nfunction createKeyPredicate(keyFilter) {\n\tif (typeof keyFilter === \"function\") return keyFilter;\n\telse if (typeof keyFilter === \"string\") return (event) => event.key === keyFilter;\n\telse if (Array.isArray(keyFilter)) return (event) => keyFilter.includes(event.key);\n\treturn () => true;\n}\nfunction onKeyStroke(...args) {\n\tlet key;\n\tlet handler;\n\tlet options = {};\n\tif (args.length === 3) {\n\t\tkey = args[0];\n\t\thandler = args[1];\n\t\toptions = args[2];\n\t} else if (args.length === 2) if (typeof args[1] === \"object\") {\n\t\tkey = true;\n\t\thandler = args[0];\n\t\toptions = args[1];\n\t} else {\n\t\tkey = args[0];\n\t\thandler = args[1];\n\t}\n\telse {\n\t\tkey = true;\n\t\thandler = args[0];\n\t}\n\tconst { target = defaultWindow, eventName = \"keydown\", passive = false, dedupe = false } = options;\n\tconst predicate = createKeyPredicate(key);\n\tconst listener = (e) => {\n\t\tif (e.repeat && toValue(dedupe)) return;\n\t\tif (predicate(e)) handler(e);\n\t};\n\treturn useEventListener(target, eventName, listener, passive);\n}\n/**\n* Listen to the keydown event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyDown(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keydown\"\n\t});\n}\n/**\n* Listen to the keypress event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyPressed(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keypress\"\n\t});\n}\n/**\n* Listen to the keyup event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyUp(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keyup\"\n\t});\n}\n\n//#endregion\n//#region onLongPress/index.ts\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n\tvar _options$modifiers10, _options$modifiers11;\n\tconst elementRef = computed(() => unrefElement(target));\n\tlet timeout;\n\tlet posStart;\n\tlet startTimestamp;\n\tlet hasLongPressed = false;\n\tfunction clear() {\n\t\tif (timeout) {\n\t\t\tclearTimeout(timeout);\n\t\t\ttimeout = void 0;\n\t\t}\n\t\tposStart = void 0;\n\t\tstartTimestamp = void 0;\n\t\thasLongPressed = false;\n\t}\n\tfunction getDelay(ev) {\n\t\tconst delay = options === null || options === void 0 ? void 0 : options.delay;\n\t\tif (typeof delay === \"function\") return delay(ev);\n\t\treturn delay !== null && delay !== void 0 ? delay : DEFAULT_DELAY;\n\t}\n\tfunction onRelease(ev) {\n\t\tvar _options$modifiers, _options$modifiers2, _options$modifiers3;\n\t\tconst [_startTimestamp, _posStart, _hasLongPressed] = [\n\t\t\tstartTimestamp,\n\t\t\tposStart,\n\t\t\thasLongPressed\n\t\t];\n\t\tclear();\n\t\tif (!(options === null || options === void 0 ? void 0 : options.onMouseUp) || !_posStart || !_startTimestamp) return;\n\t\tif ((options === null || options === void 0 || (_options$modifiers = options.modifiers) === null || _options$modifiers === void 0 ? void 0 : _options$modifiers.self) && ev.target !== elementRef.value) return;\n\t\tif (options === null || options === void 0 || (_options$modifiers2 = options.modifiers) === null || _options$modifiers2 === void 0 ? void 0 : _options$modifiers2.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers3 = options.modifiers) === null || _options$modifiers3 === void 0 ? void 0 : _options$modifiers3.stop) ev.stopPropagation();\n\t\tconst dx = ev.x - _posStart.x;\n\t\tconst dy = ev.y - _posStart.y;\n\t\tconst distance = Math.sqrt(dx * dx + dy * dy);\n\t\toptions.onMouseUp(ev.timeStamp - _startTimestamp, distance, _hasLongPressed);\n\t}\n\tfunction onDown(ev) {\n\t\tvar _options$modifiers4, _options$modifiers5, _options$modifiers6;\n\t\tif ((options === null || options === void 0 || (_options$modifiers4 = options.modifiers) === null || _options$modifiers4 === void 0 ? void 0 : _options$modifiers4.self) && ev.target !== elementRef.value) return;\n\t\tclear();\n\t\tif (options === null || options === void 0 || (_options$modifiers5 = options.modifiers) === null || _options$modifiers5 === void 0 ? void 0 : _options$modifiers5.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers6 = options.modifiers) === null || _options$modifiers6 === void 0 ? void 0 : _options$modifiers6.stop) ev.stopPropagation();\n\t\tposStart = {\n\t\t\tx: ev.x,\n\t\t\ty: ev.y\n\t\t};\n\t\tstartTimestamp = ev.timeStamp;\n\t\ttimeout = setTimeout(() => {\n\t\t\thasLongPressed = true;\n\t\t\thandler(ev);\n\t\t}, getDelay(ev));\n\t}\n\tfunction onMove(ev) {\n\t\tvar _options$modifiers7, _options$modifiers8, _options$modifiers9, _options$distanceThre;\n\t\tif ((options === null || options === void 0 || (_options$modifiers7 = options.modifiers) === null || _options$modifiers7 === void 0 ? void 0 : _options$modifiers7.self) && ev.target !== elementRef.value) return;\n\t\tif (!posStart || (options === null || options === void 0 ? void 0 : options.distanceThreshold) === false) return;\n\t\tif (options === null || options === void 0 || (_options$modifiers8 = options.modifiers) === null || _options$modifiers8 === void 0 ? void 0 : _options$modifiers8.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers9 = options.modifiers) === null || _options$modifiers9 === void 0 ? void 0 : _options$modifiers9.stop) ev.stopPropagation();\n\t\tconst dx = ev.x - posStart.x;\n\t\tconst dy = ev.y - posStart.y;\n\t\tif (Math.sqrt(dx * dx + dy * dy) >= ((_options$distanceThre = options === null || options === void 0 ? void 0 : options.distanceThreshold) !== null && _options$distanceThre !== void 0 ? _options$distanceThre : DEFAULT_THRESHOLD)) clear();\n\t}\n\tconst listenerOptions = {\n\t\tcapture: options === null || options === void 0 || (_options$modifiers10 = options.modifiers) === null || _options$modifiers10 === void 0 ? void 0 : _options$modifiers10.capture,\n\t\tonce: options === null || options === void 0 || (_options$modifiers11 = options.modifiers) === null || _options$modifiers11 === void 0 ? void 0 : _options$modifiers11.once\n\t};\n\tconst cleanup = [\n\t\tuseEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n\t\tuseEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n\t\tuseEventListener(elementRef, [\"pointerup\", \"pointerleave\"], onRelease, listenerOptions)\n\t];\n\tconst stop = () => cleanup.forEach((fn) => fn());\n\treturn stop;\n}\n\n//#endregion\n//#region onStartTyping/index.ts\nfunction isFocusedElementEditable() {\n\tconst { activeElement, body } = document;\n\tif (!activeElement) return false;\n\tif (activeElement === body) return false;\n\tswitch (activeElement.tagName) {\n\t\tcase \"INPUT\":\n\t\tcase \"TEXTAREA\": return true;\n\t}\n\treturn activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({ keyCode, metaKey, ctrlKey, altKey }) {\n\tif (metaKey || ctrlKey || altKey) return false;\n\tif (keyCode >= 48 && keyCode <= 57 || keyCode >= 96 && keyCode <= 105) return true;\n\tif (keyCode >= 65 && keyCode <= 90) return true;\n\treturn false;\n}\n/**\n* Fires when users start typing on non-editable elements.\n*\n* @see https://vueuse.org/onStartTyping\n* @param callback\n* @param options\n*/\nfunction onStartTyping(callback, options = {}) {\n\tconst { document: document$1 = defaultDocument } = options;\n\tconst keydown = (event) => {\n\t\tif (!isFocusedElementEditable() && isTypedCharValid(event)) callback(event);\n\t};\n\tif (document$1) useEventListener(document$1, \"keydown\", keydown, { passive: true });\n}\n\n//#endregion\n//#region templateRef/index.ts\n/**\n* @deprecated Use Vue's built-in `useTemplateRef` instead.\n*\n* Shorthand for binding ref to template element.\n*\n* @see https://vueuse.org/templateRef\n* @param key\n* @param initialValue\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction templateRef(key, initialValue = null) {\n\tconst instance = getCurrentInstance();\n\tlet _trigger = () => {};\n\tconst element = customRef((track, trigger) => {\n\t\t_trigger = trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\tvar _instance$proxy$$refs, _instance$proxy;\n\t\t\t\ttrack();\n\t\t\t\treturn (_instance$proxy$$refs = instance === null || instance === void 0 || (_instance$proxy = instance.proxy) === null || _instance$proxy === void 0 ? void 0 : _instance$proxy.$refs[key]) !== null && _instance$proxy$$refs !== void 0 ? _instance$proxy$$refs : initialValue;\n\t\t\t},\n\t\t\tset() {}\n\t\t};\n\t});\n\ttryOnMounted(_trigger);\n\tonUpdated(_trigger);\n\treturn element;\n}\n\n//#endregion\n//#region useActiveElement/index.ts\n/**\n* Reactive `document.activeElement`\n*\n* @see https://vueuse.org/useActiveElement\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useActiveElement(options = {}) {\n\tvar _options$document;\n\tconst { window: window$1 = defaultWindow, deep = true, triggerOnRemoval = false } = options;\n\tconst document$1 = (_options$document = options.document) !== null && _options$document !== void 0 ? _options$document : window$1 === null || window$1 === void 0 ? void 0 : window$1.document;\n\tconst getDeepActiveElement = () => {\n\t\tlet element = document$1 === null || document$1 === void 0 ? void 0 : document$1.activeElement;\n\t\tif (deep) {\n\t\t\tvar _element$shadowRoot;\n\t\t\twhile (element === null || element === void 0 ? void 0 : element.shadowRoot) element = element === null || element === void 0 || (_element$shadowRoot = element.shadowRoot) === null || _element$shadowRoot === void 0 ? void 0 : _element$shadowRoot.activeElement;\n\t\t}\n\t\treturn element;\n\t};\n\tconst activeElement = shallowRef();\n\tconst trigger = () => {\n\t\tactiveElement.value = getDeepActiveElement();\n\t};\n\tif (window$1) {\n\t\tconst listenerOptions = {\n\t\t\tcapture: true,\n\t\t\tpassive: true\n\t\t};\n\t\tuseEventListener(window$1, \"blur\", (event) => {\n\t\t\tif (event.relatedTarget !== null) return;\n\t\t\ttrigger();\n\t\t}, listenerOptions);\n\t\tuseEventListener(window$1, \"focus\", trigger, listenerOptions);\n\t}\n\tif (triggerOnRemoval) onElementRemoval(activeElement, trigger, { document: document$1 });\n\ttrigger();\n\treturn activeElement;\n}\n\n//#endregion\n//#region useRafFn/index.ts\n/**\n* Call function on every `requestAnimationFrame`. With controls of pausing and resuming.\n*\n* @see https://vueuse.org/useRafFn\n* @param fn\n* @param options\n*/\nfunction useRafFn(fn, options = {}) {\n\tconst { immediate = true, fpsLimit = void 0, window: window$1 = defaultWindow, once = false } = options;\n\tconst isActive = shallowRef(false);\n\tconst intervalLimit = computed(() => {\n\t\treturn fpsLimit ? 1e3 / toValue(fpsLimit) : null;\n\t});\n\tlet previousFrameTimestamp = 0;\n\tlet rafId = null;\n\tfunction loop(timestamp$1) {\n\t\tif (!isActive.value || !window$1) return;\n\t\tif (!previousFrameTimestamp) previousFrameTimestamp = timestamp$1;\n\t\tconst delta = timestamp$1 - previousFrameTimestamp;\n\t\tif (intervalLimit.value && delta < intervalLimit.value) {\n\t\t\trafId = window$1.requestAnimationFrame(loop);\n\t\t\treturn;\n\t\t}\n\t\tpreviousFrameTimestamp = timestamp$1;\n\t\tfn({\n\t\t\tdelta,\n\t\t\ttimestamp: timestamp$1\n\t\t});\n\t\tif (once) {\n\t\t\tisActive.value = false;\n\t\t\trafId = null;\n\t\t\treturn;\n\t\t}\n\t\trafId = window$1.requestAnimationFrame(loop);\n\t}\n\tfunction resume() {\n\t\tif (!isActive.value && window$1) {\n\t\t\tisActive.value = true;\n\t\t\tpreviousFrameTimestamp = 0;\n\t\t\trafId = window$1.requestAnimationFrame(loop);\n\t\t}\n\t}\n\tfunction pause() {\n\t\tisActive.value = false;\n\t\tif (rafId != null && window$1) {\n\t\t\twindow$1.cancelAnimationFrame(rafId);\n\t\t\trafId = null;\n\t\t}\n\t}\n\tif (immediate) resume();\n\ttryOnScopeDispose(pause);\n\treturn {\n\t\tisActive: readonly(isActive),\n\t\tpause,\n\t\tresume\n\t};\n}\n\n//#endregion\n//#region useAnimate/index.ts\n/**\n* Reactive Web Animations API\n*\n* @see https://vueuse.org/useAnimate\n* @param target\n* @param keyframes\n* @param options\n*/\nfunction useAnimate(target, keyframes, options) {\n\tlet config;\n\tlet animateOptions;\n\tif (isObject(options)) {\n\t\tconfig = options;\n\t\tanimateOptions = objectOmit(options, [\n\t\t\t\"window\",\n\t\t\t\"immediate\",\n\t\t\t\"commitStyles\",\n\t\t\t\"persist\",\n\t\t\t\"onReady\",\n\t\t\t\"onError\"\n\t\t]);\n\t} else {\n\t\tconfig = { duration: options };\n\t\tanimateOptions = options;\n\t}\n\tconst { window: window$1 = defaultWindow, immediate = true, commitStyles, persist, playbackRate: _playbackRate = 1, onReady, onError = (e) => {\n\t\tconsole.error(e);\n\t} } = config;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && HTMLElement && \"animate\" in HTMLElement.prototype);\n\tconst animate = shallowRef(void 0);\n\tconst store = shallowReactive({\n\t\tstartTime: null,\n\t\tcurrentTime: null,\n\t\ttimeline: null,\n\t\tplaybackRate: _playbackRate,\n\t\tpending: false,\n\t\tplayState: immediate ? \"idle\" : \"paused\",\n\t\treplaceState: \"active\"\n\t});\n\tconst pending = computed(() => store.pending);\n\tconst playState = computed(() => store.playState);\n\tconst replaceState = computed(() => store.replaceState);\n\tconst startTime = computed({\n\t\tget() {\n\t\t\treturn store.startTime;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.startTime = value;\n\t\t\tif (animate.value) animate.value.startTime = value;\n\t\t}\n\t});\n\tconst currentTime = computed({\n\t\tget() {\n\t\t\treturn store.currentTime;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.currentTime = value;\n\t\t\tif (animate.value) {\n\t\t\t\tanimate.value.currentTime = value;\n\t\t\t\tsyncResume();\n\t\t\t}\n\t\t}\n\t});\n\tconst timeline = computed({\n\t\tget() {\n\t\t\treturn store.timeline;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.timeline = value;\n\t\t\tif (animate.value) animate.value.timeline = value;\n\t\t}\n\t});\n\tconst playbackRate = computed({\n\t\tget() {\n\t\t\treturn store.playbackRate;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.playbackRate = value;\n\t\t\tif (animate.value) animate.value.playbackRate = value;\n\t\t}\n\t});\n\tconst play = () => {\n\t\tif (animate.value) try {\n\t\t\tanimate.value.play();\n\t\t\tsyncResume();\n\t\t} catch (e) {\n\t\t\tsyncPause();\n\t\t\tonError(e);\n\t\t}\n\t\telse update();\n\t};\n\tconst pause = () => {\n\t\ttry {\n\t\t\tvar _animate$value;\n\t\t\t(_animate$value = animate.value) === null || _animate$value === void 0 || _animate$value.pause();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst reverse = () => {\n\t\tif (!animate.value) update();\n\t\ttry {\n\t\t\tvar _animate$value2;\n\t\t\t(_animate$value2 = animate.value) === null || _animate$value2 === void 0 || _animate$value2.reverse();\n\t\t\tsyncResume();\n\t\t} catch (e) {\n\t\t\tsyncPause();\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst finish = () => {\n\t\ttry {\n\t\t\tvar _animate$value3;\n\t\t\t(_animate$value3 = animate.value) === null || _animate$value3 === void 0 || _animate$value3.finish();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst cancel = () => {\n\t\ttry {\n\t\t\tvar _animate$value4;\n\t\t\t(_animate$value4 = animate.value) === null || _animate$value4 === void 0 || _animate$value4.cancel();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\twatch(() => unrefElement(target), (el) => {\n\t\tif (el) update(true);\n\t\telse animate.value = void 0;\n\t});\n\twatch(() => keyframes, (value) => {\n\t\tif (animate.value) {\n\t\t\tupdate();\n\t\t\tconst targetEl = unrefElement(target);\n\t\t\tif (targetEl) animate.value.effect = new KeyframeEffect(targetEl, toValue(value), animateOptions);\n\t\t}\n\t}, { deep: true });\n\ttryOnMounted(() => update(true), false);\n\ttryOnScopeDispose(cancel);\n\tfunction update(init) {\n\t\tconst el = unrefElement(target);\n\t\tif (!isSupported.value || !el) return;\n\t\tif (!animate.value) animate.value = el.animate(toValue(keyframes), animateOptions);\n\t\tif (persist) animate.value.persist();\n\t\tif (_playbackRate !== 1) animate.value.playbackRate = _playbackRate;\n\t\tif (init && !immediate) animate.value.pause();\n\t\telse syncResume();\n\t\tonReady === null || onReady === void 0 || onReady(animate.value);\n\t}\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(animate, [\n\t\t\"cancel\",\n\t\t\"finish\",\n\t\t\"remove\"\n\t], syncPause, listenerOptions);\n\tuseEventListener(animate, \"finish\", () => {\n\t\tvar _animate$value5;\n\t\tif (commitStyles) (_animate$value5 = animate.value) === null || _animate$value5 === void 0 || _animate$value5.commitStyles();\n\t}, listenerOptions);\n\tconst { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n\t\tif (!animate.value) return;\n\t\tstore.pending = animate.value.pending;\n\t\tstore.playState = animate.value.playState;\n\t\tstore.replaceState = animate.value.replaceState;\n\t\tstore.startTime = animate.value.startTime;\n\t\tstore.currentTime = animate.value.currentTime;\n\t\tstore.timeline = animate.value.timeline;\n\t\tstore.playbackRate = animate.value.playbackRate;\n\t}, { immediate: false });\n\tfunction syncResume() {\n\t\tif (isSupported.value) resumeRef();\n\t}\n\tfunction syncPause() {\n\t\tif (isSupported.value && window$1) window$1.requestAnimationFrame(pauseRef);\n\t}\n\treturn {\n\t\tisSupported,\n\t\tanimate,\n\t\tplay,\n\t\tpause,\n\t\treverse,\n\t\tfinish,\n\t\tcancel,\n\t\tpending,\n\t\tplayState,\n\t\treplaceState,\n\t\tstartTime,\n\t\tcurrentTime,\n\t\ttimeline,\n\t\tplaybackRate\n\t};\n}\n\n//#endregion\n//#region useAsyncQueue/index.ts\n/**\n* Asynchronous queue task controller.\n*\n* @see https://vueuse.org/useAsyncQueue\n* @param tasks\n* @param options\n*/\nfunction useAsyncQueue(tasks, options) {\n\tconst { interrupt = true, onError = noop, onFinished = noop, signal } = options || {};\n\tconst promiseState = {\n\t\taborted: \"aborted\",\n\t\tfulfilled: \"fulfilled\",\n\t\tpending: \"pending\",\n\t\trejected: \"rejected\"\n\t};\n\tconst result = reactive(Array.from(Array.from({ length: tasks.length }), () => ({\n\t\tstate: promiseState.pending,\n\t\tdata: null\n\t})));\n\tconst activeIndex = shallowRef(-1);\n\tif (!tasks || tasks.length === 0) {\n\t\tonFinished();\n\t\treturn {\n\t\t\tactiveIndex,\n\t\t\tresult\n\t\t};\n\t}\n\tfunction updateResult(state, res) {\n\t\tactiveIndex.value++;\n\t\tresult[activeIndex.value].data = res;\n\t\tresult[activeIndex.value].state = state;\n\t}\n\ttasks.reduce((prev, curr) => {\n\t\treturn prev.then((prevRes) => {\n\t\t\tvar _result$activeIndex$v;\n\t\t\tif (signal === null || signal === void 0 ? void 0 : signal.aborted) {\n\t\t\t\tupdateResult(promiseState.aborted, /* @__PURE__ */ new Error(\"aborted\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (((_result$activeIndex$v = result[activeIndex.value]) === null || _result$activeIndex$v === void 0 ? void 0 : _result$activeIndex$v.state) === promiseState.rejected && interrupt) {\n\t\t\t\tonFinished();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst done = curr(prevRes).then((currentRes) => {\n\t\t\t\tupdateResult(promiseState.fulfilled, currentRes);\n\t\t\t\tif (activeIndex.value === tasks.length - 1) onFinished();\n\t\t\t\treturn currentRes;\n\t\t\t});\n\t\t\tif (!signal) return done;\n\t\t\treturn Promise.race([done, whenAborted(signal)]);\n\t\t}).catch((e) => {\n\t\t\tif (signal === null || signal === void 0 ? void 0 : signal.aborted) {\n\t\t\t\tupdateResult(promiseState.aborted, e);\n\t\t\t\treturn e;\n\t\t\t}\n\t\t\tupdateResult(promiseState.rejected, e);\n\t\t\tonError();\n\t\t\tif (activeIndex.value === tasks.length - 1) onFinished();\n\t\t\treturn e;\n\t\t});\n\t}, Promise.resolve());\n\treturn {\n\t\tactiveIndex,\n\t\tresult\n\t};\n}\nfunction whenAborted(signal) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst error = /* @__PURE__ */ new Error(\"aborted\");\n\t\tif (signal.aborted) reject(error);\n\t\telse signal.addEventListener(\"abort\", () => reject(error), { once: true });\n\t});\n}\n\n//#endregion\n//#region useAsyncState/index.ts\n/**\n* Reactive async state. Will not block your setup function and will trigger changes once\n* the promise is ready.\n*\n* @see https://vueuse.org/useAsyncState\n* @param promise The promise / async function to be resolved\n* @param initialState The initial state, used until the first evaluation finishes\n* @param options\n*/\nfunction useAsyncState(promise, initialState, options) {\n\tvar _globalThis$reportErr;\n\tconst { immediate = true, delay = 0, onError = (_globalThis$reportErr = globalThis.reportError) !== null && _globalThis$reportErr !== void 0 ? _globalThis$reportErr : noop, onSuccess = noop, resetOnExecute = true, shallow = true, throwError } = options !== null && options !== void 0 ? options : {};\n\tconst state = shallow ? shallowRef(initialState) : ref(initialState);\n\tconst isReady = shallowRef(false);\n\tconst isLoading = shallowRef(false);\n\tconst error = shallowRef(void 0);\n\tlet executionsCount = 0;\n\tasync function execute(delay$1 = 0, ...args) {\n\t\tconst executionId = executionsCount += 1;\n\t\tif (resetOnExecute) state.value = toValue(initialState);\n\t\terror.value = void 0;\n\t\tisReady.value = false;\n\t\tisLoading.value = true;\n\t\tif (delay$1 > 0) await promiseTimeout(delay$1);\n\t\tconst _promise = typeof promise === \"function\" ? promise(...args) : promise;\n\t\ttry {\n\t\t\tconst data = await _promise;\n\t\t\tif (executionId === executionsCount) {\n\t\t\t\tstate.value = data;\n\t\t\t\tisReady.value = true;\n\t\t\t}\n\t\t\tonSuccess(data);\n\t\t} catch (e) {\n\t\t\tif (executionId === executionsCount) error.value = e;\n\t\t\tonError(e);\n\t\t\tif (throwError) throw e;\n\t\t} finally {\n\t\t\tif (executionId === executionsCount) isLoading.value = false;\n\t\t}\n\t\treturn state.value;\n\t}\n\tif (immediate) execute(delay);\n\tconst shell = {\n\t\tstate,\n\t\tisReady,\n\t\tisLoading,\n\t\terror,\n\t\texecute,\n\t\texecuteImmediate: (...args) => execute(0, ...args)\n\t};\n\tfunction waitUntilIsLoaded() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuntil(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n\t\t});\n\t}\n\treturn {\n\t\t...shell,\n\t\tthen(onFulfilled, onRejected) {\n\t\t\treturn waitUntilIsLoaded().then(onFulfilled, onRejected);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region useBase64/serialization.ts\nconst defaults = {\n\tarray: (v) => JSON.stringify(v),\n\tobject: (v) => JSON.stringify(v),\n\tset: (v) => JSON.stringify(Array.from(v)),\n\tmap: (v) => JSON.stringify(Object.fromEntries(v)),\n\tnull: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n\tif (!target) return defaults.null;\n\tif (target instanceof Map) return defaults.map;\n\telse if (target instanceof Set) return defaults.set;\n\telse if (Array.isArray(target)) return defaults.array;\n\telse return defaults.object;\n}\n\n//#endregion\n//#region useBase64/index.ts\nfunction useBase64(target, options) {\n\tconst base64 = shallowRef(\"\");\n\tconst promise = shallowRef();\n\tfunction execute() {\n\t\tif (!isClient) return;\n\t\tpromise.value = new Promise((resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tconst _target = toValue(target);\n\t\t\t\tif (_target == null) resolve(\"\");\n\t\t\t\telse if (typeof _target === \"string\") resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n\t\t\t\telse if (_target instanceof Blob) resolve(blobToBase64(_target));\n\t\t\t\telse if (_target instanceof ArrayBuffer) resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n\t\t\t\telse if (_target instanceof HTMLCanvasElement) resolve(_target.toDataURL(options === null || options === void 0 ? void 0 : options.type, options === null || options === void 0 ? void 0 : options.quality));\n\t\t\t\telse if (_target instanceof HTMLImageElement) {\n\t\t\t\t\tconst img = _target.cloneNode(false);\n\t\t\t\t\timg.crossOrigin = \"Anonymous\";\n\t\t\t\t\timgLoaded(img).then(() => {\n\t\t\t\t\t\tconst canvas = document.createElement(\"canvas\");\n\t\t\t\t\t\tconst ctx = canvas.getContext(\"2d\");\n\t\t\t\t\t\tcanvas.width = img.width;\n\t\t\t\t\t\tcanvas.height = img.height;\n\t\t\t\t\t\tctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n\t\t\t\t\t\tresolve(canvas.toDataURL(options === null || options === void 0 ? void 0 : options.type, options === null || options === void 0 ? void 0 : options.quality));\n\t\t\t\t\t}).catch(reject);\n\t\t\t\t} else if (typeof _target === \"object\") {\n\t\t\t\t\tconst serialized = ((options === null || options === void 0 ? void 0 : options.serializer) || getDefaultSerialization(_target))(_target);\n\t\t\t\t\treturn resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n\t\t\t\t} else reject(/* @__PURE__ */ new Error(\"target is unsupported types\"));\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t});\n\t\tpromise.value.then((res) => {\n\t\t\tbase64.value = (options === null || options === void 0 ? void 0 : options.dataUrl) === false ? res.replace(/^data:.*?;base64,/, \"\") : res;\n\t\t});\n\t\treturn promise.value;\n\t}\n\tif (isRef(target) || typeof target === \"function\") watch(target, execute, { immediate: true });\n\telse execute();\n\treturn {\n\t\tbase64,\n\t\tpromise,\n\t\texecute\n\t};\n}\nfunction imgLoaded(img) {\n\treturn new Promise((resolve, reject) => {\n\t\tif (!img.complete) {\n\t\t\timg.onload = () => {\n\t\t\t\tresolve();\n\t\t\t};\n\t\t\timg.onerror = reject;\n\t\t} else resolve();\n\t});\n}\nfunction blobToBase64(blob) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst fr = new FileReader();\n\t\tfr.onload = (e) => {\n\t\t\tresolve(e.target.result);\n\t\t};\n\t\tfr.onerror = reject;\n\t\tfr.readAsDataURL(blob);\n\t});\n}\n\n//#endregion\n//#region useBattery/index.ts\n/**\n* Reactive Battery Status API.\n*\n* @see https://vueuse.org/useBattery\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBattery(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator } = options;\n\tconst events$1 = [\n\t\t\"chargingchange\",\n\t\t\"chargingtimechange\",\n\t\t\"dischargingtimechange\",\n\t\t\"levelchange\"\n\t];\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"getBattery\" in navigator$1 && typeof navigator$1.getBattery === \"function\");\n\tconst charging = shallowRef(false);\n\tconst chargingTime = shallowRef(0);\n\tconst dischargingTime = shallowRef(0);\n\tconst level = shallowRef(1);\n\tlet battery;\n\tfunction updateBatteryInfo() {\n\t\tcharging.value = this.charging;\n\t\tchargingTime.value = this.chargingTime || 0;\n\t\tdischargingTime.value = this.dischargingTime || 0;\n\t\tlevel.value = this.level;\n\t}\n\tif (isSupported.value) navigator$1.getBattery().then((_battery) => {\n\t\tbattery = _battery;\n\t\tupdateBatteryInfo.call(battery);\n\t\tuseEventListener(battery, events$1, updateBatteryInfo, { passive: true });\n\t});\n\treturn {\n\t\tisSupported,\n\t\tcharging,\n\t\tchargingTime,\n\t\tdischargingTime,\n\t\tlevel\n\t};\n}\n\n//#endregion\n//#region useBluetooth/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useBluetooth(options) {\n\tlet { acceptAllDevices = false } = options || {};\n\tconst { filters = void 0, optionalServices = void 0, navigator: navigator$1 = defaultNavigator } = options || {};\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"bluetooth\" in navigator$1);\n\tconst device = shallowRef();\n\tconst error = shallowRef(null);\n\twatch(device, () => {\n\t\tconnectToBluetoothGATTServer();\n\t});\n\tasync function requestDevice() {\n\t\tif (!isSupported.value) return;\n\t\terror.value = null;\n\t\tif (filters && filters.length > 0) acceptAllDevices = false;\n\t\ttry {\n\t\t\tdevice.value = await (navigator$1 === null || navigator$1 === void 0 ? void 0 : navigator$1.bluetooth.requestDevice({\n\t\t\t\tacceptAllDevices,\n\t\t\t\tfilters,\n\t\t\t\toptionalServices\n\t\t\t}));\n\t\t} catch (err) {\n\t\t\terror.value = err;\n\t\t}\n\t}\n\tconst server = shallowRef();\n\tconst isConnected = shallowRef(false);\n\tfunction reset() {\n\t\tisConnected.value = false;\n\t\tdevice.value = void 0;\n\t\tserver.value = void 0;\n\t}\n\tasync function connectToBluetoothGATTServer() {\n\t\terror.value = null;\n\t\tif (device.value && device.value.gatt) {\n\t\t\tuseEventListener(device, \"gattserverdisconnected\", reset, { passive: true });\n\t\t\ttry {\n\t\t\t\tserver.value = await device.value.gatt.connect();\n\t\t\t\tisConnected.value = server.value.connected;\n\t\t\t} catch (err) {\n\t\t\t\terror.value = err;\n\t\t\t}\n\t\t}\n\t}\n\ttryOnMounted(() => {\n\t\tvar _device$value$gatt;\n\t\tif (device.value) (_device$value$gatt = device.value.gatt) === null || _device$value$gatt === void 0 || _device$value$gatt.connect();\n\t});\n\ttryOnScopeDispose(() => {\n\t\tvar _device$value$gatt2;\n\t\tif (device.value) (_device$value$gatt2 = device.value.gatt) === null || _device$value$gatt2 === void 0 || _device$value$gatt2.disconnect();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tisConnected: readonly(isConnected),\n\t\tdevice,\n\t\trequestDevice,\n\t\tserver,\n\t\terror\n\t};\n}\n\n//#endregion\n//#region useSSRWidth/index.ts\nconst ssrWidthSymbol = Symbol(\"vueuse-ssr-width\");\n/* @__NO_SIDE_EFFECTS__ */\nfunction useSSRWidth() {\n\tconst ssrWidth = hasInjectionContext() ? injectLocal(ssrWidthSymbol, null) : null;\n\treturn typeof ssrWidth === \"number\" ? ssrWidth : void 0;\n}\nfunction provideSSRWidth(width, app) {\n\tif (app !== void 0) app.provide(ssrWidthSymbol, width);\n\telse provideLocal(ssrWidthSymbol, width);\n}\n\n//#endregion\n//#region useMediaQuery/index.ts\n/**\n* Reactive Media Query.\n*\n* @see https://vueuse.org/useMediaQuery\n* @param query\n* @param options\n*/\nfunction useMediaQuery(query, options = {}) {\n\tconst { window: window$1 = defaultWindow, ssrWidth = /* @__PURE__ */ useSSRWidth() } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"matchMedia\" in window$1 && typeof window$1.matchMedia === \"function\");\n\tconst ssrSupport = shallowRef(typeof ssrWidth === \"number\");\n\tconst mediaQuery = shallowRef();\n\tconst matches = shallowRef(false);\n\tconst handler = (event) => {\n\t\tmatches.value = event.matches;\n\t};\n\twatchEffect(() => {\n\t\tif (ssrSupport.value) {\n\t\t\tssrSupport.value = !isSupported.value;\n\t\t\tmatches.value = toValue(query).split(\",\").some((queryString) => {\n\t\t\t\tconst not = queryString.includes(\"not all\");\n\t\t\t\tconst minWidth = queryString.match(/\\(\\s*min-width:\\s*(-?\\d+(?:\\.\\d*)?[a-z]+\\s*)\\)/);\n\t\t\t\tconst maxWidth = queryString.match(/\\(\\s*max-width:\\s*(-?\\d+(?:\\.\\d*)?[a-z]+\\s*)\\)/);\n\t\t\t\tlet res = Boolean(minWidth || maxWidth);\n\t\t\t\tif (minWidth && res) res = ssrWidth >= pxValue(minWidth[1]);\n\t\t\t\tif (maxWidth && res) res = ssrWidth <= pxValue(maxWidth[1]);\n\t\t\t\treturn not ? !res : res;\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (!isSupported.value) return;\n\t\tmediaQuery.value = window$1.matchMedia(toValue(query));\n\t\tmatches.value = mediaQuery.value.matches;\n\t});\n\tuseEventListener(mediaQuery, \"change\", handler, { passive: true });\n\treturn computed(() => matches.value);\n}\n\n//#endregion\n//#region useBreakpoints/breakpoints.ts\n/**\n* Breakpoints from Tailwind V2\n*\n* @see https://tailwindcss.com/docs/breakpoints\n*/\nconst breakpointsTailwind = {\n\t\"sm\": 640,\n\t\"md\": 768,\n\t\"lg\": 1024,\n\t\"xl\": 1280,\n\t\"2xl\": 1536\n};\n/**\n* Breakpoints from Bootstrap V5\n*\n* @see https://getbootstrap.com/docs/5.0/layout/breakpoints\n*/\nconst breakpointsBootstrapV5 = {\n\txs: 0,\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200,\n\txxl: 1400\n};\n/**\n* Breakpoints from Vuetify V2\n*\n* @see https://v2.vuetifyjs.com/en/features/breakpoints/\n*/\nconst breakpointsVuetifyV2 = {\n\txs: 0,\n\tsm: 600,\n\tmd: 960,\n\tlg: 1264,\n\txl: 1904\n};\n/**\n* Breakpoints from Vuetify V3\n*\n* @see https://vuetifyjs.com/en/styles/float/#overview\n*/\nconst breakpointsVuetifyV3 = {\n\txs: 0,\n\tsm: 600,\n\tmd: 960,\n\tlg: 1280,\n\txl: 1920,\n\txxl: 2560\n};\n/**\n* Alias to `breakpointsVuetifyV2`\n*\n* @deprecated explictly use `breakpointsVuetifyV2` or `breakpointsVuetifyV3` instead\n*/\nconst breakpointsVuetify = breakpointsVuetifyV2;\n/**\n* Breakpoints from Ant Design\n*\n* @see https://ant.design/components/layout/#breakpoint-width\n*/\nconst breakpointsAntDesign = {\n\txs: 480,\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200,\n\txxl: 1600\n};\n/**\n* Breakpoints from Quasar V2\n*\n* @see https://quasar.dev/style/breakpoints\n*/\nconst breakpointsQuasar = {\n\txs: 0,\n\tsm: 600,\n\tmd: 1024,\n\tlg: 1440,\n\txl: 1920\n};\n/**\n* Sematic Breakpoints\n*/\nconst breakpointsSematic = {\n\tmobileS: 320,\n\tmobileM: 375,\n\tmobileL: 425,\n\ttablet: 768,\n\tlaptop: 1024,\n\tlaptopL: 1440,\n\tdesktop4K: 2560\n};\n/**\n* Breakpoints from Master CSS\n*\n* @see https://docs.master.co/css/breakpoints\n*/\nconst breakpointsMasterCss = {\n\t\"3xs\": 360,\n\t\"2xs\": 480,\n\t\"xs\": 600,\n\t\"sm\": 768,\n\t\"md\": 1024,\n\t\"lg\": 1280,\n\t\"xl\": 1440,\n\t\"2xl\": 1600,\n\t\"3xl\": 1920,\n\t\"4xl\": 2560\n};\n/**\n* Breakpoints from PrimeFlex\n*\n* @see https://primeflex.org/installation\n*/\nconst breakpointsPrimeFlex = {\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200\n};\n/**\n* Breakpoints from ElementUI/ElementPlus\n*\n* @see https://element.eleme.io/#/en-US/component/layout\n* @see https://element-plus.org/en-US/component/layout.html\n*/\nconst breakpointsElement = {\n\txs: 0,\n\tsm: 768,\n\tmd: 992,\n\tlg: 1200,\n\txl: 1920\n};\n\n//#endregion\n//#region useBreakpoints/index.ts\n/**\n* Reactively viewport breakpoints\n*\n* @see https://vueuse.org/useBreakpoints\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBreakpoints(breakpoints, options = {}) {\n\tfunction getValue$1(k, delta) {\n\t\tlet v = toValue(breakpoints[toValue(k)]);\n\t\tif (delta != null) v = increaseWithUnit(v, delta);\n\t\tif (typeof v === \"number\") v = `${v}px`;\n\t\treturn v;\n\t}\n\tconst { window: window$1 = defaultWindow, strategy = \"min-width\", ssrWidth = /* @__PURE__ */ useSSRWidth() } = options;\n\tconst ssrSupport = typeof ssrWidth === \"number\";\n\tconst mounted = ssrSupport ? shallowRef(false) : { value: true };\n\tif (ssrSupport) tryOnMounted(() => mounted.value = !!window$1);\n\tfunction match(query, size) {\n\t\tif (!mounted.value && ssrSupport) return query === \"min\" ? ssrWidth >= pxValue(size) : ssrWidth <= pxValue(size);\n\t\tif (!window$1) return false;\n\t\treturn window$1.matchMedia(`(${query}-width: ${size})`).matches;\n\t}\n\tconst greaterOrEqual = (k) => {\n\t\treturn useMediaQuery(() => `(min-width: ${getValue$1(k)})`, options);\n\t};\n\tconst smallerOrEqual = (k) => {\n\t\treturn useMediaQuery(() => `(max-width: ${getValue$1(k)})`, options);\n\t};\n\tconst shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n\t\tObject.defineProperty(shortcuts, k, {\n\t\t\tget: () => strategy === \"min-width\" ? greaterOrEqual(k) : smallerOrEqual(k),\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true\n\t\t});\n\t\treturn shortcuts;\n\t}, {});\n\tfunction current() {\n\t\tconst points = Object.keys(breakpoints).map((k) => [\n\t\t\tk,\n\t\t\tshortcutMethods[k],\n\t\t\tpxValue(getValue$1(k))\n\t\t]).sort((a, b) => a[2] - b[2]);\n\t\treturn computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n\t}\n\treturn Object.assign(shortcutMethods, {\n\t\tgreaterOrEqual,\n\t\tsmallerOrEqual,\n\t\tgreater(k) {\n\t\t\treturn useMediaQuery(() => `(min-width: ${getValue$1(k, .1)})`, options);\n\t\t},\n\t\tsmaller(k) {\n\t\t\treturn useMediaQuery(() => `(max-width: ${getValue$1(k, -.1)})`, options);\n\t\t},\n\t\tbetween(a, b) {\n\t\t\treturn useMediaQuery(() => `(min-width: ${getValue$1(a)}) and (max-width: ${getValue$1(b, -.1)})`, options);\n\t\t},\n\t\tisGreater(k) {\n\t\t\treturn match(\"min\", getValue$1(k, .1));\n\t\t},\n\t\tisGreaterOrEqual(k) {\n\t\t\treturn match(\"min\", getValue$1(k));\n\t\t},\n\t\tisSmaller(k) {\n\t\t\treturn match(\"max\", getValue$1(k, -.1));\n\t\t},\n\t\tisSmallerOrEqual(k) {\n\t\t\treturn match(\"max\", getValue$1(k));\n\t\t},\n\t\tisInBetween(a, b) {\n\t\t\treturn match(\"min\", getValue$1(a)) && match(\"max\", getValue$1(b, -.1));\n\t\t},\n\t\tcurrent,\n\t\tactive() {\n\t\t\tconst bps = current();\n\t\t\treturn computed(() => bps.value.length === 0 ? \"\" : bps.value.at(strategy === \"min-width\" ? -1 : 0));\n\t\t}\n\t});\n}\n\n//#endregion\n//#region useBroadcastChannel/index.ts\n/**\n* Reactive BroadcastChannel\n*\n* @see https://vueuse.org/useBroadcastChannel\n* @see https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel\n* @param options\n*\n*/\nfunction useBroadcastChannel(options) {\n\tconst { name, window: window$1 = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"BroadcastChannel\" in window$1);\n\tconst isClosed = shallowRef(false);\n\tconst channel = ref();\n\tconst data = ref();\n\tconst error = shallowRef(null);\n\tconst post = (data$1) => {\n\t\tif (channel.value) channel.value.postMessage(data$1);\n\t};\n\tconst close = () => {\n\t\tif (channel.value) channel.value.close();\n\t\tisClosed.value = true;\n\t};\n\tif (isSupported.value) tryOnMounted(() => {\n\t\terror.value = null;\n\t\tchannel.value = new BroadcastChannel(name);\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(channel, \"message\", (e) => {\n\t\t\tdata.value = e.data;\n\t\t}, listenerOptions);\n\t\tuseEventListener(channel, \"messageerror\", (e) => {\n\t\t\terror.value = e;\n\t\t}, listenerOptions);\n\t\tuseEventListener(channel, \"close\", () => {\n\t\t\tisClosed.value = true;\n\t\t}, listenerOptions);\n\t});\n\ttryOnScopeDispose(() => {\n\t\tclose();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tchannel,\n\t\tdata,\n\t\tpost,\n\t\tclose,\n\t\terror,\n\t\tisClosed\n\t};\n}\n\n//#endregion\n//#region useBrowserLocation/index.ts\nconst WRITABLE_PROPERTIES = [\n\t\"hash\",\n\t\"host\",\n\t\"hostname\",\n\t\"href\",\n\t\"pathname\",\n\t\"port\",\n\t\"protocol\",\n\t\"search\"\n];\n/**\n* Reactive browser location.\n*\n* @see https://vueuse.org/useBrowserLocation\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBrowserLocation(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst refs = Object.fromEntries(WRITABLE_PROPERTIES.map((key) => [key, ref()]));\n\tfor (const [key, ref$1] of objectEntries(refs)) watch(ref$1, (value) => {\n\t\tif (!(window$1 === null || window$1 === void 0 ? void 0 : window$1.location) || window$1.location[key] === value) return;\n\t\twindow$1.location[key] = value;\n\t});\n\tconst buildState = (trigger) => {\n\t\tvar _window$location;\n\t\tconst { state: state$1, length } = (window$1 === null || window$1 === void 0 ? void 0 : window$1.history) || {};\n\t\tconst { origin } = (window$1 === null || window$1 === void 0 ? void 0 : window$1.location) || {};\n\t\tfor (const key of WRITABLE_PROPERTIES) refs[key].value = window$1 === null || window$1 === void 0 || (_window$location = window$1.location) === null || _window$location === void 0 ? void 0 : _window$location[key];\n\t\treturn reactive({\n\t\t\ttrigger,\n\t\t\tstate: state$1,\n\t\t\tlength,\n\t\t\torigin,\n\t\t\t...refs\n\t\t});\n\t};\n\tconst state = ref(buildState(\"load\"));\n\tif (window$1) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(window$1, \"popstate\", () => state.value = buildState(\"popstate\"), listenerOptions);\n\t\tuseEventListener(window$1, \"hashchange\", () => state.value = buildState(\"hashchange\"), listenerOptions);\n\t}\n\treturn state;\n}\n\n//#endregion\n//#region useCached/index.ts\nfunction useCached(refValue, comparator = (a, b) => a === b, options) {\n\tconst { deepRefs = true,...watchOptions } = options || {};\n\tconst cachedValue = createRef(refValue.value, deepRefs);\n\twatch(() => refValue.value, (value) => {\n\t\tif (!comparator(value, cachedValue.value)) cachedValue.value = value;\n\t}, watchOptions);\n\treturn cachedValue;\n}\n\n//#endregion\n//#region usePermission/index.ts\n/**\n* Reactive Permissions API.\n*\n* @see https://vueuse.org/usePermission\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePermission(permissionDesc, options = {}) {\n\tconst { controls = false, navigator: navigator$1 = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"permissions\" in navigator$1);\n\tconst permissionStatus = shallowRef();\n\tconst desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n\tconst state = shallowRef();\n\tconst update = () => {\n\t\tvar _permissionStatus$val, _permissionStatus$val2;\n\t\tstate.value = (_permissionStatus$val = (_permissionStatus$val2 = permissionStatus.value) === null || _permissionStatus$val2 === void 0 ? void 0 : _permissionStatus$val2.state) !== null && _permissionStatus$val !== void 0 ? _permissionStatus$val : \"prompt\";\n\t};\n\tuseEventListener(permissionStatus, \"change\", update, { passive: true });\n\tconst query = createSingletonPromise(async () => {\n\t\tif (!isSupported.value) return;\n\t\tif (!permissionStatus.value) try {\n\t\t\tpermissionStatus.value = await navigator$1.permissions.query(desc);\n\t\t} catch (_unused) {\n\t\t\tpermissionStatus.value = void 0;\n\t\t} finally {\n\t\t\tupdate();\n\t\t}\n\t\tif (controls) return toRaw(permissionStatus.value);\n\t});\n\tquery();\n\tif (controls) return {\n\t\tstate,\n\t\tisSupported,\n\t\tquery\n\t};\n\telse return state;\n}\n\n//#endregion\n//#region useClipboard/index.ts\nfunction useClipboard(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator, read = false, source, copiedDuring = 1500, legacy = false } = options;\n\tconst isClipboardApiSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"clipboard\" in navigator$1);\n\tconst permissionRead = usePermission(\"clipboard-read\");\n\tconst permissionWrite = usePermission(\"clipboard-write\");\n\tconst isSupported = computed(() => isClipboardApiSupported.value || legacy);\n\tconst text = shallowRef(\"\");\n\tconst copied = shallowRef(false);\n\tconst timeout = useTimeoutFn(() => copied.value = false, copiedDuring, { immediate: false });\n\tasync function updateText() {\n\t\tlet useLegacy = !(isClipboardApiSupported.value && isAllowed(permissionRead.value));\n\t\tif (!useLegacy) try {\n\t\t\ttext.value = await navigator$1.clipboard.readText();\n\t\t} catch (_unused) {\n\t\t\tuseLegacy = true;\n\t\t}\n\t\tif (useLegacy) text.value = legacyRead();\n\t}\n\tif (isSupported.value && read) useEventListener([\"copy\", \"cut\"], updateText, { passive: true });\n\tasync function copy(value = toValue(source)) {\n\t\tif (isSupported.value && value != null) {\n\t\t\tlet useLegacy = !(isClipboardApiSupported.value && isAllowed(permissionWrite.value));\n\t\t\tif (!useLegacy) try {\n\t\t\t\tawait navigator$1.clipboard.writeText(value);\n\t\t\t} catch (_unused2) {\n\t\t\t\tuseLegacy = true;\n\t\t\t}\n\t\t\tif (useLegacy) legacyCopy(value);\n\t\t\ttext.value = value;\n\t\t\tcopied.value = true;\n\t\t\ttimeout.start();\n\t\t}\n\t}\n\tfunction legacyCopy(value) {\n\t\tconst ta = document.createElement(\"textarea\");\n\t\tta.value = value;\n\t\tta.style.position = \"absolute\";\n\t\tta.style.opacity = \"0\";\n\t\tta.setAttribute(\"readonly\", \"\");\n\t\tdocument.body.appendChild(ta);\n\t\tta.select();\n\t\tdocument.execCommand(\"copy\");\n\t\tta.remove();\n\t}\n\tfunction legacyRead() {\n\t\tvar _document$getSelectio, _document, _document$getSelectio2;\n\t\treturn (_document$getSelectio = (_document = document) === null || _document === void 0 || (_document$getSelectio2 = _document.getSelection) === null || _document$getSelectio2 === void 0 || (_document$getSelectio2 = _document$getSelectio2.call(_document)) === null || _document$getSelectio2 === void 0 ? void 0 : _document$getSelectio2.toString()) !== null && _document$getSelectio !== void 0 ? _document$getSelectio : \"\";\n\t}\n\tfunction isAllowed(status) {\n\t\treturn status === \"granted\" || status === \"prompt\";\n\t}\n\treturn {\n\t\tisSupported,\n\t\ttext: readonly(text),\n\t\tcopied: readonly(copied),\n\t\tcopy\n\t};\n}\n\n//#endregion\n//#region useClipboardItems/index.ts\nfunction useClipboardItems(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator, read = false, source, copiedDuring = 1500 } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"clipboard\" in navigator$1);\n\tconst content = ref([]);\n\tconst copied = shallowRef(false);\n\tconst timeout = useTimeoutFn(() => copied.value = false, copiedDuring, { immediate: false });\n\tfunction updateContent() {\n\t\tif (isSupported.value) navigator$1.clipboard.read().then((items) => {\n\t\t\tcontent.value = items;\n\t\t});\n\t}\n\tif (isSupported.value && read) useEventListener([\"copy\", \"cut\"], updateContent, { passive: true });\n\tasync function copy(value = toValue(source)) {\n\t\tif (isSupported.value && value != null) {\n\t\t\tawait navigator$1.clipboard.write(value);\n\t\t\tcontent.value = value;\n\t\t\tcopied.value = true;\n\t\t\ttimeout.start();\n\t\t}\n\t}\n\treturn {\n\t\tisSupported,\n\t\tcontent: shallowReadonly(content),\n\t\tcopied: readonly(copied),\n\t\tcopy,\n\t\tread: updateContent\n\t};\n}\n\n//#endregion\n//#region useCloned/index.ts\nfunction cloneFnJSON(source) {\n\treturn JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n\tconst cloned = ref({});\n\tconst isModified = shallowRef(false);\n\tlet _lastSync = false;\n\tconst { manual, clone = cloneFnJSON, deep = true, immediate = true } = options;\n\twatch(cloned, () => {\n\t\tif (_lastSync) {\n\t\t\t_lastSync = false;\n\t\t\treturn;\n\t\t}\n\t\tisModified.value = true;\n\t}, {\n\t\tdeep: true,\n\t\tflush: \"sync\"\n\t});\n\tfunction sync() {\n\t\t_lastSync = true;\n\t\tisModified.value = false;\n\t\tcloned.value = clone(toValue(source));\n\t}\n\tif (!manual && (isRef(source) || typeof source === \"function\")) watch(source, sync, {\n\t\t...options,\n\t\tdeep,\n\t\timmediate\n\t});\n\telse sync();\n\treturn {\n\t\tcloned,\n\t\tisModified,\n\t\tsync\n\t};\n}\n\n//#endregion\n//#region ssr-handlers.ts\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n\tif (!(globalKey in _global)) _global[globalKey] = _global[globalKey] || {};\n\treturn _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n\treturn handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n\thandlers[key] = fn;\n}\n\n//#endregion\n//#region usePreferredDark/index.ts\n/**\n* Reactive dark theme preference.\n*\n* @see https://vueuse.org/usePreferredDark\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredDark(options) {\n\treturn useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\n//#endregion\n//#region useStorage/guess.ts\nfunction guessSerializerType(rawInit) {\n\treturn rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\n//#endregion\n//#region useStorage/index.ts\nconst StorageSerializers = {\n\tboolean: {\n\t\tread: (v) => v === \"true\",\n\t\twrite: (v) => String(v)\n\t},\n\tobject: {\n\t\tread: (v) => JSON.parse(v),\n\t\twrite: (v) => JSON.stringify(v)\n\t},\n\tnumber: {\n\t\tread: (v) => Number.parseFloat(v),\n\t\twrite: (v) => String(v)\n\t},\n\tany: {\n\t\tread: (v) => v,\n\t\twrite: (v) => String(v)\n\t},\n\tstring: {\n\t\tread: (v) => v,\n\t\twrite: (v) => String(v)\n\t},\n\tmap: {\n\t\tread: (v) => new Map(JSON.parse(v)),\n\t\twrite: (v) => JSON.stringify(Array.from(v.entries()))\n\t},\n\tset: {\n\t\tread: (v) => new Set(JSON.parse(v)),\n\t\twrite: (v) => JSON.stringify(Array.from(v))\n\t},\n\tdate: {\n\t\tread: (v) => new Date(v),\n\t\twrite: (v) => v.toISOString()\n\t}\n};\nconst customStorageEventName = \"vueuse-storage\";\n/**\n* Reactive LocalStorage/SessionStorage.\n*\n* @see https://vueuse.org/useStorage\n*/\nfunction useStorage(key, defaults$1, storage, options = {}) {\n\tvar _options$serializer;\n\tconst { flush = \"pre\", deep = true, listenToStorageChanges = true, writeDefaults = true, mergeDefaults = false, shallow, window: window$1 = defaultWindow, eventFilter, onError = (e) => {\n\t\tconsole.error(e);\n\t}, initOnMounted } = options;\n\tconst data = (shallow ? shallowRef : ref)(typeof defaults$1 === \"function\" ? defaults$1() : defaults$1);\n\tconst keyComputed = computed(() => toValue(key));\n\tif (!storage) try {\n\t\tstorage = getSSRHandler(\"getDefaultStorage\", () => defaultWindow === null || defaultWindow === void 0 ? void 0 : defaultWindow.localStorage)();\n\t} catch (e) {\n\t\tonError(e);\n\t}\n\tif (!storage) return data;\n\tconst rawInit = toValue(defaults$1);\n\tconst type = guessSerializerType(rawInit);\n\tconst serializer = (_options$serializer = options.serializer) !== null && _options$serializer !== void 0 ? _options$serializer : StorageSerializers[type];\n\tconst { pause: pauseWatch, resume: resumeWatch } = pausableWatch(data, (newValue) => write(newValue), {\n\t\tflush,\n\t\tdeep,\n\t\teventFilter\n\t});\n\twatch(keyComputed, () => update(), { flush });\n\tlet firstMounted = false;\n\tconst onStorageEvent = (ev) => {\n\t\tif (initOnMounted && !firstMounted) return;\n\t\tupdate(ev);\n\t};\n\tconst onStorageCustomEvent = (ev) => {\n\t\tif (initOnMounted && !firstMounted) return;\n\t\tupdateFromCustomEvent(ev);\n\t};\n\t/**\n\t* The custom event is needed for same-document syncing when using custom\n\t* storage backends, but it doesn't work across different documents.\n\t*\n\t* TODO: Consider implementing a BroadcastChannel-based solution that fixes this.\n\t*/\n\tif (window$1 && listenToStorageChanges) if (storage instanceof Storage) useEventListener(window$1, \"storage\", onStorageEvent, { passive: true });\n\telse useEventListener(window$1, customStorageEventName, onStorageCustomEvent);\n\tif (initOnMounted) tryOnMounted(() => {\n\t\tfirstMounted = true;\n\t\tupdate();\n\t});\n\telse update();\n\tfunction dispatchWriteEvent(oldValue, newValue) {\n\t\tif (window$1) {\n\t\t\tconst payload = {\n\t\t\t\tkey: keyComputed.value,\n\t\t\t\toldValue,\n\t\t\t\tnewValue,\n\t\t\t\tstorageArea: storage\n\t\t\t};\n\t\t\twindow$1.dispatchEvent(storage instanceof Storage ? new StorageEvent(\"storage\", payload) : new CustomEvent(customStorageEventName, { detail: payload }));\n\t\t}\n\t}\n\tfunction write(v) {\n\t\ttry {\n\t\t\tconst oldValue = storage.getItem(keyComputed.value);\n\t\t\tif (v == null) {\n\t\t\t\tdispatchWriteEvent(oldValue, null);\n\t\t\t\tstorage.removeItem(keyComputed.value);\n\t\t\t} else {\n\t\t\t\tconst serialized = serializer.write(v);\n\t\t\t\tif (oldValue !== serialized) {\n\t\t\t\t\tstorage.setItem(keyComputed.value, serialized);\n\t\t\t\t\tdispatchWriteEvent(oldValue, serialized);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t}\n\tfunction read(event) {\n\t\tconst rawValue = event ? event.newValue : storage.getItem(keyComputed.value);\n\t\tif (rawValue == null) {\n\t\t\tif (writeDefaults && rawInit != null) storage.setItem(keyComputed.value, serializer.write(rawInit));\n\t\t\treturn rawInit;\n\t\t} else if (!event && mergeDefaults) {\n\t\t\tconst value = serializer.read(rawValue);\n\t\t\tif (typeof mergeDefaults === \"function\") return mergeDefaults(value, rawInit);\n\t\t\telse if (type === \"object\" && !Array.isArray(value)) return {\n\t\t\t\t...rawInit,\n\t\t\t\t...value\n\t\t\t};\n\t\t\treturn value;\n\t\t} else if (typeof rawValue !== \"string\") return rawValue;\n\t\telse return serializer.read(rawValue);\n\t}\n\tfunction update(event) {\n\t\tif (event && event.storageArea !== storage) return;\n\t\tif (event && event.key == null) {\n\t\t\tdata.value = rawInit;\n\t\t\treturn;\n\t\t}\n\t\tif (event && event.key !== keyComputed.value) return;\n\t\tpauseWatch();\n\t\ttry {\n\t\t\tconst serializedData = serializer.write(data.value);\n\t\t\tif (event === void 0 || (event === null || event === void 0 ? void 0 : event.newValue) !== serializedData) data.value = read(event);\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t} finally {\n\t\t\tif (event) nextTick(resumeWatch);\n\t\t\telse resumeWatch();\n\t\t}\n\t}\n\tfunction updateFromCustomEvent(event) {\n\t\tupdate(event.detail);\n\t}\n\treturn data;\n}\n\n//#endregion\n//#region useColorMode/index.ts\nconst CSS_DISABLE_TRANS = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\n/**\n* Reactive color mode with auto data persistence.\n*\n* @see https://vueuse.org/useColorMode\n* @param options\n*/\nfunction useColorMode(options = {}) {\n\tconst { selector = \"html\", attribute = \"class\", initialValue = \"auto\", window: window$1 = defaultWindow, storage, storageKey = \"vueuse-color-scheme\", listenToStorageChanges = true, storageRef, emitAuto, disableTransition = true } = options;\n\tconst modes = {\n\t\tauto: \"\",\n\t\tlight: \"light\",\n\t\tdark: \"dark\",\n\t\t...options.modes || {}\n\t};\n\tconst preferredDark = usePreferredDark({ window: window$1 });\n\tconst system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n\tconst store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, {\n\t\twindow: window$1,\n\t\tlistenToStorageChanges\n\t}));\n\tconst state = computed(() => store.value === \"auto\" ? system.value : store.value);\n\tconst updateHTMLAttrs = getSSRHandler(\"updateHTMLAttrs\", (selector$1, attribute$1, value) => {\n\t\tconst el = typeof selector$1 === \"string\" ? window$1 === null || window$1 === void 0 ? void 0 : window$1.document.querySelector(selector$1) : unrefElement(selector$1);\n\t\tif (!el) return;\n\t\tconst classesToAdd = /* @__PURE__ */ new Set();\n\t\tconst classesToRemove = /* @__PURE__ */ new Set();\n\t\tlet attributeToChange = null;\n\t\tif (attribute$1 === \"class\") {\n\t\t\tconst current = value.split(/\\s/g);\n\t\t\tObject.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n\t\t\t\tif (current.includes(v)) classesToAdd.add(v);\n\t\t\t\telse classesToRemove.add(v);\n\t\t\t});\n\t\t} else attributeToChange = {\n\t\t\tkey: attribute$1,\n\t\t\tvalue\n\t\t};\n\t\tif (classesToAdd.size === 0 && classesToRemove.size === 0 && attributeToChange === null) return;\n\t\tlet style;\n\t\tif (disableTransition) {\n\t\t\tstyle = window$1.document.createElement(\"style\");\n\t\t\tstyle.appendChild(document.createTextNode(CSS_DISABLE_TRANS));\n\t\t\twindow$1.document.head.appendChild(style);\n\t\t}\n\t\tfor (const c of classesToAdd) el.classList.add(c);\n\t\tfor (const c of classesToRemove) el.classList.remove(c);\n\t\tif (attributeToChange) el.setAttribute(attributeToChange.key, attributeToChange.value);\n\t\tif (disableTransition) {\n\t\t\twindow$1.getComputedStyle(style).opacity;\n\t\t\tdocument.head.removeChild(style);\n\t\t}\n\t});\n\tfunction defaultOnChanged(mode) {\n\t\tvar _modes$mode;\n\t\tupdateHTMLAttrs(selector, attribute, (_modes$mode = modes[mode]) !== null && _modes$mode !== void 0 ? _modes$mode : mode);\n\t}\n\tfunction onChanged(mode) {\n\t\tif (options.onChanged) options.onChanged(mode, defaultOnChanged);\n\t\telse defaultOnChanged(mode);\n\t}\n\twatch(state, onChanged, {\n\t\tflush: \"post\",\n\t\timmediate: true\n\t});\n\ttryOnMounted(() => onChanged(state.value));\n\tconst auto = computed({\n\t\tget() {\n\t\t\treturn emitAuto ? store.value : state.value;\n\t\t},\n\t\tset(v) {\n\t\t\tstore.value = v;\n\t\t}\n\t});\n\treturn Object.assign(auto, {\n\t\tstore,\n\t\tsystem,\n\t\tstate\n\t});\n}\n\n//#endregion\n//#region useConfirmDialog/index.ts\n/**\n* Hooks for creating confirm dialogs. Useful for modal windows, popups and logins.\n*\n* @see https://vueuse.org/useConfirmDialog/\n* @param revealed `boolean` `ref` that handles a modal window\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useConfirmDialog(revealed = shallowRef(false)) {\n\tconst confirmHook = createEventHook();\n\tconst cancelHook = createEventHook();\n\tconst revealHook = createEventHook();\n\tlet _resolve = noop;\n\tconst reveal = (data) => {\n\t\trevealHook.trigger(data);\n\t\trevealed.value = true;\n\t\treturn new Promise((resolve) => {\n\t\t\t_resolve = resolve;\n\t\t});\n\t};\n\tconst confirm = (data) => {\n\t\trevealed.value = false;\n\t\tconfirmHook.trigger(data);\n\t\t_resolve({\n\t\t\tdata,\n\t\t\tisCanceled: false\n\t\t});\n\t};\n\tconst cancel = (data) => {\n\t\trevealed.value = false;\n\t\tcancelHook.trigger(data);\n\t\t_resolve({\n\t\t\tdata,\n\t\t\tisCanceled: true\n\t\t});\n\t};\n\treturn {\n\t\tisRevealed: computed(() => revealed.value),\n\t\treveal,\n\t\tconfirm,\n\t\tcancel,\n\t\tonReveal: revealHook.on,\n\t\tonConfirm: confirmHook.on,\n\t\tonCancel: cancelHook.on\n\t};\n}\n\n//#endregion\n//#region useCountdown/index.ts\n/**\n* Wrapper for `useIntervalFn` that provides a countdown timer in seconds.\n*\n* @param initialCountdown\n* @param options\n*\n* @see https://vueuse.org/useCountdown\n*/\nfunction useCountdown(initialCountdown, options) {\n\tvar _options$interval, _options$immediate;\n\tconst remaining = shallowRef(toValue(initialCountdown));\n\tconst intervalController = useIntervalFn(() => {\n\t\tvar _options$onTick;\n\t\tconst value = remaining.value - 1;\n\t\tremaining.value = value < 0 ? 0 : value;\n\t\toptions === null || options === void 0 || (_options$onTick = options.onTick) === null || _options$onTick === void 0 || _options$onTick.call(options);\n\t\tif (remaining.value <= 0) {\n\t\t\tvar _options$onComplete;\n\t\t\tintervalController.pause();\n\t\t\toptions === null || options === void 0 || (_options$onComplete = options.onComplete) === null || _options$onComplete === void 0 || _options$onComplete.call(options);\n\t\t}\n\t}, (_options$interval = options === null || options === void 0 ? void 0 : options.interval) !== null && _options$interval !== void 0 ? _options$interval : 1e3, { immediate: (_options$immediate = options === null || options === void 0 ? void 0 : options.immediate) !== null && _options$immediate !== void 0 ? _options$immediate : false });\n\tconst reset = (countdown) => {\n\t\tvar _toValue;\n\t\tremaining.value = (_toValue = toValue(countdown)) !== null && _toValue !== void 0 ? _toValue : toValue(initialCountdown);\n\t};\n\tconst stop = () => {\n\t\tintervalController.pause();\n\t\treset();\n\t};\n\tconst resume = () => {\n\t\tif (!intervalController.isActive.value) {\n\t\t\tif (remaining.value > 0) intervalController.resume();\n\t\t}\n\t};\n\tconst start = (countdown) => {\n\t\treset(countdown);\n\t\tintervalController.resume();\n\t};\n\treturn {\n\t\tremaining,\n\t\treset,\n\t\tstop,\n\t\tstart,\n\t\tpause: intervalController.pause,\n\t\tresume,\n\t\tisActive: intervalController.isActive\n\t};\n}\n\n//#endregion\n//#region useCssVar/index.ts\n/**\n* Manipulate CSS variables.\n*\n* @see https://vueuse.org/useCssVar\n* @param prop\n* @param target\n* @param options\n*/\nfunction useCssVar(prop, target, options = {}) {\n\tconst { window: window$1 = defaultWindow, initialValue, observe = false } = options;\n\tconst variable = shallowRef(initialValue);\n\tconst elRef = computed(() => {\n\t\tvar _window$document;\n\t\treturn unrefElement(target) || (window$1 === null || window$1 === void 0 || (_window$document = window$1.document) === null || _window$document === void 0 ? void 0 : _window$document.documentElement);\n\t});\n\tfunction updateCssVar() {\n\t\tconst key = toValue(prop);\n\t\tconst el = toValue(elRef);\n\t\tif (el && window$1 && key) {\n\t\t\tvar _window$getComputedSt;\n\t\t\tvariable.value = ((_window$getComputedSt = window$1.getComputedStyle(el).getPropertyValue(key)) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.trim()) || variable.value || initialValue;\n\t\t}\n\t}\n\tif (observe) useMutationObserver(elRef, updateCssVar, {\n\t\tattributeFilter: [\"style\", \"class\"],\n\t\twindow: window$1\n\t});\n\twatch([elRef, () => toValue(prop)], (_, old) => {\n\t\tif (old[0] && old[1]) old[0].style.removeProperty(old[1]);\n\t\tupdateCssVar();\n\t}, { immediate: true });\n\twatch([variable, elRef], ([val, el]) => {\n\t\tconst raw_prop = toValue(prop);\n\t\tif ((el === null || el === void 0 ? void 0 : el.style) && raw_prop) if (val == null) el.style.removeProperty(raw_prop);\n\t\telse el.style.setProperty(raw_prop, val);\n\t}, { immediate: true });\n\treturn variable;\n}\n\n//#endregion\n//#region useCurrentElement/index.ts\nfunction useCurrentElement(rootComponent) {\n\tconst vm = getCurrentInstance();\n\tconst currentElement = computedWithControl(() => null, () => rootComponent ? unrefElement(rootComponent) : vm.proxy.$el);\n\tonUpdated(currentElement.trigger);\n\tonMounted(currentElement.trigger);\n\treturn currentElement;\n}\n\n//#endregion\n//#region useCycleList/index.ts\n/**\n* Cycle through a list of items\n*\n* @see https://vueuse.org/useCycleList\n*/\nfunction useCycleList(list, options) {\n\tconst state = shallowRef(getInitialValue());\n\tconst listRef = toRef(list);\n\tconst index = computed({\n\t\tget() {\n\t\t\tvar _options$fallbackInde;\n\t\t\tconst targetList = listRef.value;\n\t\t\tlet index$1 = (options === null || options === void 0 ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n\t\t\tif (index$1 < 0) index$1 = (_options$fallbackInde = options === null || options === void 0 ? void 0 : options.fallbackIndex) !== null && _options$fallbackInde !== void 0 ? _options$fallbackInde : 0;\n\t\t\treturn index$1;\n\t\t},\n\t\tset(v) {\n\t\t\tset(v);\n\t\t}\n\t});\n\tfunction set(i) {\n\t\tconst targetList = listRef.value;\n\t\tconst length = targetList.length;\n\t\tconst value = targetList[(i % length + length) % length];\n\t\tstate.value = value;\n\t\treturn value;\n\t}\n\tfunction shift(delta = 1) {\n\t\treturn set(index.value + delta);\n\t}\n\tfunction next(n = 1) {\n\t\treturn shift(n);\n\t}\n\tfunction prev(n = 1) {\n\t\treturn shift(-n);\n\t}\n\tfunction getInitialValue() {\n\t\tvar _toValue, _options$initialValue;\n\t\treturn (_toValue = toValue((_options$initialValue = options === null || options === void 0 ? void 0 : options.initialValue) !== null && _options$initialValue !== void 0 ? _options$initialValue : toValue(list)[0])) !== null && _toValue !== void 0 ? _toValue : void 0;\n\t}\n\twatch(listRef, () => set(index.value));\n\treturn {\n\t\tstate,\n\t\tindex,\n\t\tnext,\n\t\tprev,\n\t\tgo: set\n\t};\n}\n\n//#endregion\n//#region useDark/index.ts\n/**\n* Reactive dark mode with auto data persistence.\n*\n* @see https://vueuse.org/useDark\n* @param options\n*/\nfunction useDark(options = {}) {\n\tconst { valueDark = \"dark\", valueLight = \"\" } = options;\n\tconst mode = useColorMode({\n\t\t...options,\n\t\tonChanged: (mode$1, defaultHandler) => {\n\t\t\tvar _options$onChanged;\n\t\t\tif (options.onChanged) (_options$onChanged = options.onChanged) === null || _options$onChanged === void 0 || _options$onChanged.call(options, mode$1 === \"dark\", defaultHandler, mode$1);\n\t\t\telse defaultHandler(mode$1);\n\t\t},\n\t\tmodes: {\n\t\t\tdark: valueDark,\n\t\t\tlight: valueLight\n\t\t}\n\t});\n\tconst system = computed(() => mode.system.value);\n\treturn computed({\n\t\tget() {\n\t\t\treturn mode.value === \"dark\";\n\t\t},\n\t\tset(v) {\n\t\t\tconst modeVal = v ? \"dark\" : \"light\";\n\t\t\tif (system.value === modeVal) mode.value = \"auto\";\n\t\t\telse mode.value = modeVal;\n\t\t}\n\t});\n}\n\n//#endregion\n//#region useManualRefHistory/index.ts\nfunction fnBypass(v) {\n\treturn v;\n}\nfunction fnSetSource(source, value) {\n\treturn source.value = value;\n}\nfunction defaultDump(clone) {\n\treturn clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n\treturn clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\n/**\n* Track the change history of a ref, also provides undo and redo functionality.\n*\n* @see https://vueuse.org/useManualRefHistory\n* @param source\n* @param options\n*/\nfunction useManualRefHistory(source, options = {}) {\n\tconst { clone = false, dump = defaultDump(clone), parse = defaultParse(clone), setSource = fnSetSource } = options;\n\tfunction _createHistoryRecord() {\n\t\treturn markRaw({\n\t\t\tsnapshot: dump(source.value),\n\t\t\ttimestamp: timestamp()\n\t\t});\n\t}\n\tconst last = ref(_createHistoryRecord());\n\tconst undoStack = ref([]);\n\tconst redoStack = ref([]);\n\tconst _setSource = (record) => {\n\t\tsetSource(source, parse(record.snapshot));\n\t\tlast.value = record;\n\t};\n\tconst commit = () => {\n\t\tundoStack.value.unshift(last.value);\n\t\tlast.value = _createHistoryRecord();\n\t\tif (options.capacity && undoStack.value.length > options.capacity) undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n\t\tif (redoStack.value.length) redoStack.value.splice(0, redoStack.value.length);\n\t};\n\tconst clear = () => {\n\t\tundoStack.value.splice(0, undoStack.value.length);\n\t\tredoStack.value.splice(0, redoStack.value.length);\n\t};\n\tconst undo = () => {\n\t\tconst state = undoStack.value.shift();\n\t\tif (state) {\n\t\t\tredoStack.value.unshift(last.value);\n\t\t\t_setSource(state);\n\t\t}\n\t};\n\tconst redo = () => {\n\t\tconst state = redoStack.value.shift();\n\t\tif (state) {\n\t\t\tundoStack.value.unshift(last.value);\n\t\t\t_setSource(state);\n\t\t}\n\t};\n\tconst reset = () => {\n\t\t_setSource(last.value);\n\t};\n\treturn {\n\t\tsource,\n\t\tundoStack,\n\t\tredoStack,\n\t\tlast,\n\t\thistory: computed(() => [last.value, ...undoStack.value]),\n\t\tcanUndo: computed(() => undoStack.value.length > 0),\n\t\tcanRedo: computed(() => redoStack.value.length > 0),\n\t\tclear,\n\t\tcommit,\n\t\treset,\n\t\tundo,\n\t\tredo\n\t};\n}\n\n//#endregion\n//#region useRefHistory/index.ts\n/**\n* Track the change history of a ref, also provides undo and redo functionality.\n*\n* @see https://vueuse.org/useRefHistory\n* @param source\n* @param options\n*/\nfunction useRefHistory(source, options = {}) {\n\tconst { deep = false, flush = \"pre\", eventFilter, shouldCommit = () => true } = options;\n\tconst { eventFilter: composedFilter, pause, resume: resumeTracking, isActive: isTracking } = pausableFilter(eventFilter);\n\tlet lastRawValue = source.value;\n\tconst { ignoreUpdates, ignorePrevAsyncUpdates, stop } = watchIgnorable(source, commit, {\n\t\tdeep,\n\t\tflush,\n\t\teventFilter: composedFilter\n\t});\n\tfunction setSource(source$1, value) {\n\t\tignorePrevAsyncUpdates();\n\t\tignoreUpdates(() => {\n\t\t\tsource$1.value = value;\n\t\t\tlastRawValue = value;\n\t\t});\n\t}\n\tconst manualHistory = useManualRefHistory(source, {\n\t\t...options,\n\t\tclone: options.clone || deep,\n\t\tsetSource\n\t});\n\tconst { clear, commit: manualCommit } = manualHistory;\n\tfunction commit() {\n\t\tignorePrevAsyncUpdates();\n\t\tif (!shouldCommit(lastRawValue, source.value)) return;\n\t\tlastRawValue = source.value;\n\t\tmanualCommit();\n\t}\n\tfunction resume(commitNow) {\n\t\tresumeTracking();\n\t\tif (commitNow) commit();\n\t}\n\tfunction batch(fn) {\n\t\tlet canceled = false;\n\t\tconst cancel = () => canceled = true;\n\t\tignoreUpdates(() => {\n\t\t\tfn(cancel);\n\t\t});\n\t\tif (!canceled) commit();\n\t}\n\tfunction dispose() {\n\t\tstop();\n\t\tclear();\n\t}\n\treturn {\n\t\t...manualHistory,\n\t\tisTracking,\n\t\tpause,\n\t\tresume,\n\t\tcommit,\n\t\tbatch,\n\t\tdispose\n\t};\n}\n\n//#endregion\n//#region useDebouncedRefHistory/index.ts\n/**\n* Shorthand for [useRefHistory](https://vueuse.org/useRefHistory) with debounce filter.\n*\n* @see https://vueuse.org/useDebouncedRefHistory\n* @param source\n* @param options\n*/\nfunction useDebouncedRefHistory(source, options = {}) {\n\tconst filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n\treturn { ...useRefHistory(source, {\n\t\t...options,\n\t\teventFilter: filter\n\t}) };\n}\n\n//#endregion\n//#region useDeviceMotion/index.ts\n/**\n* Reactive DeviceMotionEvent.\n*\n* @see https://vueuse.org/useDeviceMotion\n* @param options\n*/\nfunction useDeviceMotion(options = {}) {\n\tconst { window: window$1 = defaultWindow, requestPermissions = false, eventFilter = bypassFilter } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof DeviceMotionEvent !== \"undefined\");\n\tconst requirePermissions = /* @__PURE__ */ useSupported(() => isSupported.value && \"requestPermission\" in DeviceMotionEvent && typeof DeviceMotionEvent.requestPermission === \"function\");\n\tconst permissionGranted = shallowRef(false);\n\tconst acceleration = ref({\n\t\tx: null,\n\t\ty: null,\n\t\tz: null\n\t});\n\tconst rotationRate = ref({\n\t\talpha: null,\n\t\tbeta: null,\n\t\tgamma: null\n\t});\n\tconst interval = shallowRef(0);\n\tconst accelerationIncludingGravity = ref({\n\t\tx: null,\n\t\ty: null,\n\t\tz: null\n\t});\n\tfunction init() {\n\t\tif (window$1) useEventListener(window$1, \"devicemotion\", createFilterWrapper(eventFilter, (event) => {\n\t\t\tvar _event$acceleration, _event$acceleration2, _event$acceleration3, _event$accelerationIn, _event$accelerationIn2, _event$accelerationIn3, _event$rotationRate, _event$rotationRate2, _event$rotationRate3;\n\t\t\tacceleration.value = {\n\t\t\t\tx: ((_event$acceleration = event.acceleration) === null || _event$acceleration === void 0 ? void 0 : _event$acceleration.x) || null,\n\t\t\t\ty: ((_event$acceleration2 = event.acceleration) === null || _event$acceleration2 === void 0 ? void 0 : _event$acceleration2.y) || null,\n\t\t\t\tz: ((_event$acceleration3 = event.acceleration) === null || _event$acceleration3 === void 0 ? void 0 : _event$acceleration3.z) || null\n\t\t\t};\n\t\t\taccelerationIncludingGravity.value = {\n\t\t\t\tx: ((_event$accelerationIn = event.accelerationIncludingGravity) === null || _event$accelerationIn === void 0 ? void 0 : _event$accelerationIn.x) || null,\n\t\t\t\ty: ((_event$accelerationIn2 = event.accelerationIncludingGravity) === null || _event$accelerationIn2 === void 0 ? void 0 : _event$accelerationIn2.y) || null,\n\t\t\t\tz: ((_event$accelerationIn3 = event.accelerationIncludingGravity) === null || _event$accelerationIn3 === void 0 ? void 0 : _event$accelerationIn3.z) || null\n\t\t\t};\n\t\t\trotationRate.value = {\n\t\t\t\talpha: ((_event$rotationRate = event.rotationRate) === null || _event$rotationRate === void 0 ? void 0 : _event$rotationRate.alpha) || null,\n\t\t\t\tbeta: ((_event$rotationRate2 = event.rotationRate) === null || _event$rotationRate2 === void 0 ? void 0 : _event$rotationRate2.beta) || null,\n\t\t\t\tgamma: ((_event$rotationRate3 = event.rotationRate) === null || _event$rotationRate3 === void 0 ? void 0 : _event$rotationRate3.gamma) || null\n\t\t\t};\n\t\t\tinterval.value = event.interval;\n\t\t}), { passive: true });\n\t}\n\tconst ensurePermissions = async () => {\n\t\tif (!requirePermissions.value) permissionGranted.value = true;\n\t\tif (permissionGranted.value) return;\n\t\tif (requirePermissions.value) {\n\t\t\tconst requestPermission = DeviceMotionEvent.requestPermission;\n\t\t\ttry {\n\t\t\t\tif (await requestPermission() === \"granted\") {\n\t\t\t\t\tpermissionGranted.value = true;\n\t\t\t\t\tinit();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t}\n\t};\n\tif (isSupported.value) if (requestPermissions && requirePermissions.value) ensurePermissions().then(() => init());\n\telse init();\n\treturn {\n\t\tacceleration,\n\t\taccelerationIncludingGravity,\n\t\trotationRate,\n\t\tinterval,\n\t\tisSupported,\n\t\trequirePermissions,\n\t\tensurePermissions,\n\t\tpermissionGranted\n\t};\n}\n\n//#endregion\n//#region useDeviceOrientation/index.ts\n/**\n* Reactive DeviceOrientationEvent.\n*\n* @see https://vueuse.org/useDeviceOrientation\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDeviceOrientation(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"DeviceOrientationEvent\" in window$1);\n\tconst isAbsolute = shallowRef(false);\n\tconst alpha = shallowRef(null);\n\tconst beta = shallowRef(null);\n\tconst gamma = shallowRef(null);\n\tif (window$1 && isSupported.value) useEventListener(window$1, \"deviceorientation\", (event) => {\n\t\tisAbsolute.value = event.absolute;\n\t\talpha.value = event.alpha;\n\t\tbeta.value = event.beta;\n\t\tgamma.value = event.gamma;\n\t}, { passive: true });\n\treturn {\n\t\tisSupported,\n\t\tisAbsolute,\n\t\talpha,\n\t\tbeta,\n\t\tgamma\n\t};\n}\n\n//#endregion\n//#region useDevicePixelRatio/index.ts\n/**\n* Reactively track `window.devicePixelRatio`.\n*\n* @see https://vueuse.org/useDevicePixelRatio\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDevicePixelRatio(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst pixelRatio = shallowRef(1);\n\tconst query = useMediaQuery(() => `(resolution: ${pixelRatio.value}dppx)`, options);\n\tlet stop = noop;\n\tif (window$1) stop = watchImmediate(query, () => pixelRatio.value = window$1.devicePixelRatio);\n\treturn {\n\t\tpixelRatio: readonly(pixelRatio),\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useDevicesList/index.ts\n/**\n* Reactive `enumerateDevices` listing available input/output devices\n*\n* @see https://vueuse.org/useDevicesList\n* @param options\n*/\nfunction useDevicesList(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator, requestPermissions = false, constraints = {\n\t\taudio: true,\n\t\tvideo: true\n\t}, onUpdated: onUpdated$1 } = options;\n\tconst devices = ref([]);\n\tconst videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n\tconst audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n\tconst audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && navigator$1.mediaDevices && navigator$1.mediaDevices.enumerateDevices);\n\tconst permissionGranted = shallowRef(false);\n\tlet stream;\n\tasync function update() {\n\t\tif (!isSupported.value) return;\n\t\tdevices.value = await navigator$1.mediaDevices.enumerateDevices();\n\t\tonUpdated$1 === null || onUpdated$1 === void 0 || onUpdated$1(devices.value);\n\t\tif (stream) {\n\t\t\tstream.getTracks().forEach((t) => t.stop());\n\t\t\tstream = null;\n\t\t}\n\t}\n\tasync function ensurePermissions() {\n\t\tconst deviceName = constraints.video ? \"camera\" : \"microphone\";\n\t\tif (!isSupported.value) return false;\n\t\tif (permissionGranted.value) return true;\n\t\tconst { state, query } = usePermission(deviceName, { controls: true });\n\t\tawait query();\n\t\tif (state.value !== \"granted\") {\n\t\t\tlet granted = true;\n\t\t\ttry {\n\t\t\t\tconst allDevices = await navigator$1.mediaDevices.enumerateDevices();\n\t\t\t\tconst hasCamera = allDevices.some((device) => device.kind === \"videoinput\");\n\t\t\t\tconst hasMicrophone = allDevices.some((device) => device.kind === \"audioinput\" || device.kind === \"audiooutput\");\n\t\t\t\tconstraints.video = hasCamera ? constraints.video : false;\n\t\t\t\tconstraints.audio = hasMicrophone ? constraints.audio : false;\n\t\t\t\tstream = await navigator$1.mediaDevices.getUserMedia(constraints);\n\t\t\t} catch (_unused) {\n\t\t\t\tstream = null;\n\t\t\t\tgranted = false;\n\t\t\t}\n\t\t\tupdate();\n\t\t\tpermissionGranted.value = granted;\n\t\t} else permissionGranted.value = true;\n\t\treturn permissionGranted.value;\n\t}\n\tif (isSupported.value) {\n\t\tif (requestPermissions) ensurePermissions();\n\t\tuseEventListener(navigator$1.mediaDevices, \"devicechange\", update, { passive: true });\n\t\tupdate();\n\t}\n\treturn {\n\t\tdevices,\n\t\tensurePermissions,\n\t\tpermissionGranted,\n\t\tvideoInputs,\n\t\taudioInputs,\n\t\taudioOutputs,\n\t\tisSupported\n\t};\n}\n\n//#endregion\n//#region useDisplayMedia/index.ts\n/**\n* Reactive `mediaDevices.getDisplayMedia` streaming\n*\n* @see https://vueuse.org/useDisplayMedia\n* @param options\n*/\nfunction useDisplayMedia(options = {}) {\n\tvar _options$enabled;\n\tconst enabled = shallowRef((_options$enabled = options.enabled) !== null && _options$enabled !== void 0 ? _options$enabled : false);\n\tconst video = options.video;\n\tconst audio = options.audio;\n\tconst { navigator: navigator$1 = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tvar _navigator$mediaDevic;\n\t\treturn navigator$1 === null || navigator$1 === void 0 || (_navigator$mediaDevic = navigator$1.mediaDevices) === null || _navigator$mediaDevic === void 0 ? void 0 : _navigator$mediaDevic.getDisplayMedia;\n\t});\n\tconst constraint = {\n\t\taudio,\n\t\tvideo\n\t};\n\tconst stream = shallowRef();\n\tasync function _start() {\n\t\tvar _stream$value;\n\t\tif (!isSupported.value || stream.value) return;\n\t\tstream.value = await navigator$1.mediaDevices.getDisplayMedia(constraint);\n\t\t(_stream$value = stream.value) === null || _stream$value === void 0 || _stream$value.getTracks().forEach((t) => useEventListener(t, \"ended\", stop, { passive: true }));\n\t\treturn stream.value;\n\t}\n\tasync function _stop() {\n\t\tvar _stream$value2;\n\t\t(_stream$value2 = stream.value) === null || _stream$value2 === void 0 || _stream$value2.getTracks().forEach((t) => t.stop());\n\t\tstream.value = void 0;\n\t}\n\tfunction stop() {\n\t\t_stop();\n\t\tenabled.value = false;\n\t}\n\tasync function start() {\n\t\tawait _start();\n\t\tif (stream.value) enabled.value = true;\n\t\treturn stream.value;\n\t}\n\twatch(enabled, (v) => {\n\t\tif (v) _start();\n\t\telse _stop();\n\t}, { immediate: true });\n\treturn {\n\t\tisSupported,\n\t\tstream,\n\t\tstart,\n\t\tstop,\n\t\tenabled\n\t};\n}\n\n//#endregion\n//#region useDocumentVisibility/index.ts\n/**\n* Reactively track `document.visibilityState`.\n*\n* @see https://vueuse.org/useDocumentVisibility\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDocumentVisibility(options = {}) {\n\tconst { document: document$1 = defaultDocument } = options;\n\tif (!document$1) return shallowRef(\"visible\");\n\tconst visibility = shallowRef(document$1.visibilityState);\n\tuseEventListener(document$1, \"visibilitychange\", () => {\n\t\tvisibility.value = document$1.visibilityState;\n\t}, { passive: true });\n\treturn visibility;\n}\n\n//#endregion\n//#region useDraggable/index.ts\n/**\n* Make elements draggable.\n*\n* @see https://vueuse.org/useDraggable\n* @param target\n* @param options\n*/\nfunction useDraggable(target, options = {}) {\n\tvar _toValue;\n\tconst { pointerTypes, preventDefault: preventDefault$1, stopPropagation, exact, onMove, onEnd, onStart, initialValue, axis = \"both\", draggingElement = defaultWindow, containerElement, handle: draggingHandle = target, buttons = [0] } = options;\n\tconst position = ref((_toValue = toValue(initialValue)) !== null && _toValue !== void 0 ? _toValue : {\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst pressedDelta = ref();\n\tconst filterEvent = (e) => {\n\t\tif (pointerTypes) return pointerTypes.includes(e.pointerType);\n\t\treturn true;\n\t};\n\tconst handleEvent = (e) => {\n\t\tif (toValue(preventDefault$1)) e.preventDefault();\n\t\tif (toValue(stopPropagation)) e.stopPropagation();\n\t};\n\tconst start = (e) => {\n\t\tvar _container$getBoundin;\n\t\tif (!toValue(buttons).includes(e.button)) return;\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (toValue(exact) && e.target !== toValue(target)) return;\n\t\tconst container = toValue(containerElement);\n\t\tconst containerRect = container === null || container === void 0 || (_container$getBoundin = container.getBoundingClientRect) === null || _container$getBoundin === void 0 ? void 0 : _container$getBoundin.call(container);\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tconst pos = {\n\t\t\tx: e.clientX - (container ? targetRect.left - containerRect.left + container.scrollLeft : targetRect.left),\n\t\t\ty: e.clientY - (container ? targetRect.top - containerRect.top + container.scrollTop : targetRect.top)\n\t\t};\n\t\tif ((onStart === null || onStart === void 0 ? void 0 : onStart(pos, e)) === false) return;\n\t\tpressedDelta.value = pos;\n\t\thandleEvent(e);\n\t};\n\tconst move = (e) => {\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (!pressedDelta.value) return;\n\t\tconst container = toValue(containerElement);\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tlet { x, y } = position.value;\n\t\tif (axis === \"x\" || axis === \"both\") {\n\t\t\tx = e.clientX - pressedDelta.value.x;\n\t\t\tif (container) x = Math.min(Math.max(0, x), container.scrollWidth - targetRect.width);\n\t\t}\n\t\tif (axis === \"y\" || axis === \"both\") {\n\t\t\ty = e.clientY - pressedDelta.value.y;\n\t\t\tif (container) y = Math.min(Math.max(0, y), container.scrollHeight - targetRect.height);\n\t\t}\n\t\tposition.value = {\n\t\t\tx,\n\t\t\ty\n\t\t};\n\t\tonMove === null || onMove === void 0 || onMove(position.value, e);\n\t\thandleEvent(e);\n\t};\n\tconst end = (e) => {\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (!pressedDelta.value) return;\n\t\tpressedDelta.value = void 0;\n\t\tonEnd === null || onEnd === void 0 || onEnd(position.value, e);\n\t\thandleEvent(e);\n\t};\n\tif (isClient) {\n\t\tconst config = () => {\n\t\t\tvar _options$capture;\n\t\t\treturn {\n\t\t\t\tcapture: (_options$capture = options.capture) !== null && _options$capture !== void 0 ? _options$capture : true,\n\t\t\t\tpassive: !toValue(preventDefault$1)\n\t\t\t};\n\t\t};\n\t\tuseEventListener(draggingHandle, \"pointerdown\", start, config);\n\t\tuseEventListener(draggingElement, \"pointermove\", move, config);\n\t\tuseEventListener(draggingElement, \"pointerup\", end, config);\n\t}\n\treturn {\n\t\t...toRefs(position),\n\t\tposition,\n\t\tisDragging: computed(() => !!pressedDelta.value),\n\t\tstyle: computed(() => `left:${position.value.x}px;top:${position.value.y}px;`)\n\t};\n}\n\n//#endregion\n//#region useDropZone/index.ts\nfunction useDropZone(target, options = {}) {\n\tconst isOverDropZone = shallowRef(false);\n\tconst files = shallowRef(null);\n\tlet counter = 0;\n\tlet isValid = true;\n\tif (isClient) {\n\t\tvar _options$multiple, _options$preventDefau;\n\t\tconst _options = typeof options === \"function\" ? { onDrop: options } : options;\n\t\tconst multiple = (_options$multiple = _options.multiple) !== null && _options$multiple !== void 0 ? _options$multiple : true;\n\t\tconst preventDefaultForUnhandled = (_options$preventDefau = _options.preventDefaultForUnhandled) !== null && _options$preventDefau !== void 0 ? _options$preventDefau : false;\n\t\tconst getFiles = (event) => {\n\t\t\tvar _event$dataTransfer$f, _event$dataTransfer;\n\t\t\tconst list = Array.from((_event$dataTransfer$f = (_event$dataTransfer = event.dataTransfer) === null || _event$dataTransfer === void 0 ? void 0 : _event$dataTransfer.files) !== null && _event$dataTransfer$f !== void 0 ? _event$dataTransfer$f : []);\n\t\t\treturn list.length === 0 ? null : multiple ? list : [list[0]];\n\t\t};\n\t\tconst checkDataTypes = (types) => {\n\t\t\tconst dataTypes = unref(_options.dataTypes);\n\t\t\tif (typeof dataTypes === \"function\") return dataTypes(types);\n\t\t\tif (!(dataTypes === null || dataTypes === void 0 ? void 0 : dataTypes.length)) return true;\n\t\t\tif (types.length === 0) return false;\n\t\t\treturn types.every((type) => dataTypes.some((allowedType) => type.includes(allowedType)));\n\t\t};\n\t\tconst checkValidity = (items) => {\n\t\t\tif (_options.checkValidity) return _options.checkValidity(items);\n\t\t\tconst dataTypesValid = checkDataTypes(Array.from(items !== null && items !== void 0 ? items : []).map((item) => item.type));\n\t\t\tconst multipleFilesValid = multiple || items.length <= 1;\n\t\t\treturn dataTypesValid && multipleFilesValid;\n\t\t};\n\t\tconst isSafari = () => /^(?:(?!chrome|android).)*safari/i.test(navigator.userAgent) && !(\"chrome\" in window);\n\t\tconst handleDragEvent = (event, eventType) => {\n\t\t\tvar _event$dataTransfer2, _ref;\n\t\t\tconst dataTransferItemList = (_event$dataTransfer2 = event.dataTransfer) === null || _event$dataTransfer2 === void 0 ? void 0 : _event$dataTransfer2.items;\n\t\t\tisValid = (_ref = dataTransferItemList && checkValidity(dataTransferItemList)) !== null && _ref !== void 0 ? _ref : false;\n\t\t\tif (preventDefaultForUnhandled) event.preventDefault();\n\t\t\tif (!isSafari() && !isValid) {\n\t\t\t\tif (event.dataTransfer) event.dataTransfer.dropEffect = \"none\";\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\tif (event.dataTransfer) event.dataTransfer.dropEffect = \"copy\";\n\t\t\tconst currentFiles = getFiles(event);\n\t\t\tswitch (eventType) {\n\t\t\t\tcase \"enter\":\n\t\t\t\t\tvar _options$onEnter;\n\t\t\t\t\tcounter += 1;\n\t\t\t\t\tisOverDropZone.value = true;\n\t\t\t\t\t(_options$onEnter = _options.onEnter) === null || _options$onEnter === void 0 || _options$onEnter.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"over\":\n\t\t\t\t\tvar _options$onOver;\n\t\t\t\t\t(_options$onOver = _options.onOver) === null || _options$onOver === void 0 || _options$onOver.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"leave\":\n\t\t\t\t\tvar _options$onLeave;\n\t\t\t\t\tcounter -= 1;\n\t\t\t\t\tif (counter === 0) isOverDropZone.value = false;\n\t\t\t\t\t(_options$onLeave = _options.onLeave) === null || _options$onLeave === void 0 || _options$onLeave.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"drop\":\n\t\t\t\t\tcounter = 0;\n\t\t\t\t\tisOverDropZone.value = false;\n\t\t\t\t\tif (isValid) {\n\t\t\t\t\t\tvar _options$onDrop;\n\t\t\t\t\t\tfiles.value = currentFiles;\n\t\t\t\t\t\t(_options$onDrop = _options.onDrop) === null || _options$onDrop === void 0 || _options$onDrop.call(_options, currentFiles, event);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\tuseEventListener(target, \"dragenter\", (event) => handleDragEvent(event, \"enter\"));\n\t\tuseEventListener(target, \"dragover\", (event) => handleDragEvent(event, \"over\"));\n\t\tuseEventListener(target, \"dragleave\", (event) => handleDragEvent(event, \"leave\"));\n\t\tuseEventListener(target, \"drop\", (event) => handleDragEvent(event, \"drop\"));\n\t}\n\treturn {\n\t\tfiles,\n\t\tisOverDropZone\n\t};\n}\n\n//#endregion\n//#region useResizeObserver/index.ts\n/**\n* Reports changes to the dimensions of an Element's content or the border-box\n*\n* @see https://vueuse.org/useResizeObserver\n* @param target\n* @param callback\n* @param options\n*/\nfunction useResizeObserver(target, callback, options = {}) {\n\tconst { window: window$1 = defaultWindow,...observerOptions } = options;\n\tlet observer;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"ResizeObserver\" in window$1);\n\tconst cleanup = () => {\n\t\tif (observer) {\n\t\t\tobserver.disconnect();\n\t\t\tobserver = void 0;\n\t\t}\n\t};\n\tconst stopWatch = watch(computed(() => {\n\t\tconst _targets = toValue(target);\n\t\treturn Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];\n\t}), (els) => {\n\t\tcleanup();\n\t\tif (isSupported.value && window$1) {\n\t\t\tobserver = new ResizeObserver(callback);\n\t\t\tfor (const _el of els) if (_el) observer.observe(_el, observerOptions);\n\t\t}\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\tconst stop = () => {\n\t\tcleanup();\n\t\tstopWatch();\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useElementBounding/index.ts\n/**\n* Reactive bounding box of an HTML element.\n*\n* @see https://vueuse.org/useElementBounding\n* @param target\n*/\nfunction useElementBounding(target, options = {}) {\n\tconst { reset = true, windowResize = true, windowScroll = true, immediate = true, updateTiming = \"sync\" } = options;\n\tconst height = shallowRef(0);\n\tconst bottom = shallowRef(0);\n\tconst left = shallowRef(0);\n\tconst right = shallowRef(0);\n\tconst top = shallowRef(0);\n\tconst width = shallowRef(0);\n\tconst x = shallowRef(0);\n\tconst y = shallowRef(0);\n\tfunction recalculate() {\n\t\tconst el = unrefElement(target);\n\t\tif (!el) {\n\t\t\tif (reset) {\n\t\t\t\theight.value = 0;\n\t\t\t\tbottom.value = 0;\n\t\t\t\tleft.value = 0;\n\t\t\t\tright.value = 0;\n\t\t\t\ttop.value = 0;\n\t\t\t\twidth.value = 0;\n\t\t\t\tx.value = 0;\n\t\t\t\ty.value = 0;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst rect = el.getBoundingClientRect();\n\t\theight.value = rect.height;\n\t\tbottom.value = rect.bottom;\n\t\tleft.value = rect.left;\n\t\tright.value = rect.right;\n\t\ttop.value = rect.top;\n\t\twidth.value = rect.width;\n\t\tx.value = rect.x;\n\t\ty.value = rect.y;\n\t}\n\tfunction update() {\n\t\tif (updateTiming === \"sync\") recalculate();\n\t\telse if (updateTiming === \"next-frame\") requestAnimationFrame(() => recalculate());\n\t}\n\tuseResizeObserver(target, update);\n\twatch(() => unrefElement(target), (ele) => !ele && update());\n\tuseMutationObserver(target, update, { attributeFilter: [\"style\", \"class\"] });\n\tif (windowScroll) useEventListener(\"scroll\", update, {\n\t\tcapture: true,\n\t\tpassive: true\n\t});\n\tif (windowResize) useEventListener(\"resize\", update, { passive: true });\n\ttryOnMounted(() => {\n\t\tif (immediate) update();\n\t});\n\treturn {\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty,\n\t\tupdate\n\t};\n}\n\n//#endregion\n//#region useElementByPoint/index.ts\n/**\n* Reactive element by point.\n*\n* @see https://vueuse.org/useElementByPoint\n* @param options - UseElementByPointOptions\n*/\nfunction useElementByPoint(options) {\n\tconst { x, y, document: document$1 = defaultDocument, multiple, interval = \"requestAnimationFrame\", immediate = true } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tif (toValue(multiple)) return document$1 && \"elementsFromPoint\" in document$1;\n\t\treturn document$1 && \"elementFromPoint\" in document$1;\n\t});\n\tconst element = shallowRef(null);\n\tconst cb = () => {\n\t\tvar _document$elementsFro, _document$elementFrom;\n\t\telement.value = toValue(multiple) ? (_document$elementsFro = document$1 === null || document$1 === void 0 ? void 0 : document$1.elementsFromPoint(toValue(x), toValue(y))) !== null && _document$elementsFro !== void 0 ? _document$elementsFro : [] : (_document$elementFrom = document$1 === null || document$1 === void 0 ? void 0 : document$1.elementFromPoint(toValue(x), toValue(y))) !== null && _document$elementFrom !== void 0 ? _document$elementFrom : null;\n\t};\n\treturn {\n\t\tisSupported,\n\t\telement,\n\t\t...interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate })\n\t};\n}\n\n//#endregion\n//#region useElementHover/index.ts\nfunction useElementHover(el, options = {}) {\n\tconst { delayEnter = 0, delayLeave = 0, triggerOnRemoval = false, window: window$1 = defaultWindow } = options;\n\tconst isHovered = shallowRef(false);\n\tlet timer;\n\tconst toggle = (entering) => {\n\t\tconst delay = entering ? delayEnter : delayLeave;\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t}\n\t\tif (delay) timer = setTimeout(() => isHovered.value = entering, delay);\n\t\telse isHovered.value = entering;\n\t};\n\tif (!window$1) return isHovered;\n\tuseEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n\tuseEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n\tif (triggerOnRemoval) onElementRemoval(computed(() => unrefElement(el)), () => toggle(false));\n\treturn isHovered;\n}\n\n//#endregion\n//#region useElementSize/index.ts\n/**\n* Reactive size of an HTML element.\n*\n* @see https://vueuse.org/useElementSize\n*/\nfunction useElementSize(target, initialSize = {\n\twidth: 0,\n\theight: 0\n}, options = {}) {\n\tconst { window: window$1 = defaultWindow, box = \"content-box\" } = options;\n\tconst isSVG = computed(() => {\n\t\tvar _unrefElement;\n\t\treturn (_unrefElement = unrefElement(target)) === null || _unrefElement === void 0 || (_unrefElement = _unrefElement.namespaceURI) === null || _unrefElement === void 0 ? void 0 : _unrefElement.includes(\"svg\");\n\t});\n\tconst width = shallowRef(initialSize.width);\n\tconst height = shallowRef(initialSize.height);\n\tconst { stop: stop1 } = useResizeObserver(target, ([entry]) => {\n\t\tconst boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n\t\tif (window$1 && isSVG.value) {\n\t\t\tconst $elem = unrefElement(target);\n\t\t\tif ($elem) {\n\t\t\t\tconst rect = $elem.getBoundingClientRect();\n\t\t\t\twidth.value = rect.width;\n\t\t\t\theight.value = rect.height;\n\t\t\t}\n\t\t} else if (boxSize) {\n\t\t\tconst formatBoxSize = toArray(boxSize);\n\t\t\twidth.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n\t\t\theight.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n\t\t} else {\n\t\t\twidth.value = entry.contentRect.width;\n\t\t\theight.value = entry.contentRect.height;\n\t\t}\n\t}, options);\n\ttryOnMounted(() => {\n\t\tconst ele = unrefElement(target);\n\t\tif (ele) {\n\t\t\twidth.value = \"offsetWidth\" in ele ? ele.offsetWidth : initialSize.width;\n\t\t\theight.value = \"offsetHeight\" in ele ? ele.offsetHeight : initialSize.height;\n\t\t}\n\t});\n\tconst stop2 = watch(() => unrefElement(target), (ele) => {\n\t\twidth.value = ele ? initialSize.width : 0;\n\t\theight.value = ele ? initialSize.height : 0;\n\t});\n\tfunction stop() {\n\t\tstop1();\n\t\tstop2();\n\t}\n\treturn {\n\t\twidth,\n\t\theight,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useIntersectionObserver/index.ts\n/**\n* Detects that a target element's visibility.\n*\n* @see https://vueuse.org/useIntersectionObserver\n* @param target\n* @param callback\n* @param options\n*/\nfunction useIntersectionObserver(target, callback, options = {}) {\n\tconst { root, rootMargin = \"0px\", threshold = 0, window: window$1 = defaultWindow, immediate = true } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"IntersectionObserver\" in window$1);\n\tconst targets = computed(() => {\n\t\treturn toArray(toValue(target)).map(unrefElement).filter(notNullish);\n\t});\n\tlet cleanup = noop;\n\tconst isActive = shallowRef(immediate);\n\tconst stopWatch = isSupported.value ? watch(() => [\n\t\ttargets.value,\n\t\tunrefElement(root),\n\t\tisActive.value\n\t], ([targets$1, root$1]) => {\n\t\tcleanup();\n\t\tif (!isActive.value) return;\n\t\tif (!targets$1.length) return;\n\t\tconst observer = new IntersectionObserver(callback, {\n\t\t\troot: unrefElement(root$1),\n\t\t\trootMargin,\n\t\t\tthreshold\n\t\t});\n\t\ttargets$1.forEach((el) => el && observer.observe(el));\n\t\tcleanup = () => {\n\t\t\tobserver.disconnect();\n\t\t\tcleanup = noop;\n\t\t};\n\t}, {\n\t\timmediate,\n\t\tflush: \"post\"\n\t}) : noop;\n\tconst stop = () => {\n\t\tcleanup();\n\t\tstopWatch();\n\t\tisActive.value = false;\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tisActive,\n\t\tpause() {\n\t\t\tcleanup();\n\t\t\tisActive.value = false;\n\t\t},\n\t\tresume() {\n\t\t\tisActive.value = true;\n\t\t},\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useElementVisibility/index.ts\n/**\n* Tracks the visibility of an element within the viewport.\n*\n* @see https://vueuse.org/useElementVisibility\n*/\nfunction useElementVisibility(element, options = {}) {\n\tconst { window: window$1 = defaultWindow, scrollTarget, threshold = 0, rootMargin, once = false, initialValue = false } = options;\n\tconst elementIsVisible = shallowRef(initialValue);\n\tconst { stop } = useIntersectionObserver(element, (intersectionObserverEntries) => {\n\t\tlet isIntersecting = elementIsVisible.value;\n\t\tlet latestTime = 0;\n\t\tfor (const entry of intersectionObserverEntries) if (entry.time >= latestTime) {\n\t\t\tlatestTime = entry.time;\n\t\t\tisIntersecting = entry.isIntersecting;\n\t\t}\n\t\telementIsVisible.value = isIntersecting;\n\t\tif (once) watchOnce(elementIsVisible, () => {\n\t\t\tstop();\n\t\t});\n\t}, {\n\t\troot: scrollTarget,\n\t\twindow: window$1,\n\t\tthreshold,\n\t\trootMargin: toValue(rootMargin)\n\t});\n\treturn elementIsVisible;\n}\n\n//#endregion\n//#region useEventBus/internal.ts\nconst events = /* @__PURE__ */ new Map();\n\n//#endregion\n//#region useEventBus/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useEventBus(key) {\n\tconst scope = getCurrentScope();\n\tfunction on(listener) {\n\t\tvar _scope$cleanups;\n\t\tconst listeners = events.get(key) || /* @__PURE__ */ new Set();\n\t\tlisteners.add(listener);\n\t\tevents.set(key, listeners);\n\t\tconst _off = () => off(listener);\n\t\tscope === null || scope === void 0 || (_scope$cleanups = scope.cleanups) === null || _scope$cleanups === void 0 || _scope$cleanups.push(_off);\n\t\treturn _off;\n\t}\n\tfunction once(listener) {\n\t\tfunction _listener(...args) {\n\t\t\toff(_listener);\n\t\t\tlistener(...args);\n\t\t}\n\t\treturn on(_listener);\n\t}\n\tfunction off(listener) {\n\t\tconst listeners = events.get(key);\n\t\tif (!listeners) return;\n\t\tlisteners.delete(listener);\n\t\tif (!listeners.size) reset();\n\t}\n\tfunction reset() {\n\t\tevents.delete(key);\n\t}\n\tfunction emit(event, payload) {\n\t\tvar _events$get;\n\t\t(_events$get = events.get(key)) === null || _events$get === void 0 || _events$get.forEach((v) => v(event, payload));\n\t}\n\treturn {\n\t\ton,\n\t\tonce,\n\t\toff,\n\t\temit,\n\t\treset\n\t};\n}\n\n//#endregion\n//#region useEventSource/index.ts\nfunction resolveNestedOptions$1(options) {\n\tif (options === true) return {};\n\treturn options;\n}\n/**\n* Reactive wrapper for EventSource.\n*\n* @see https://vueuse.org/useEventSource\n* @see https://developer.mozilla.org/en-US/docs/Web/API/EventSource/EventSource EventSource\n* @param url\n* @param events\n* @param options\n*/\nfunction useEventSource(url, events$1 = [], options = {}) {\n\tconst event = shallowRef(null);\n\tconst data = shallowRef(null);\n\tconst status = shallowRef(\"CONNECTING\");\n\tconst eventSource = ref(null);\n\tconst error = shallowRef(null);\n\tconst urlRef = toRef(url);\n\tconst lastEventId = shallowRef(null);\n\tlet explicitlyClosed = false;\n\tlet retried = 0;\n\tconst { withCredentials = false, immediate = true, autoConnect = true, autoReconnect, serializer = { read: (v) => v } } = options;\n\tconst close = () => {\n\t\tif (isClient && eventSource.value) {\n\t\t\teventSource.value.close();\n\t\t\teventSource.value = null;\n\t\t\tstatus.value = \"CLOSED\";\n\t\t\texplicitlyClosed = true;\n\t\t}\n\t};\n\tconst _init = () => {\n\t\tif (explicitlyClosed || typeof urlRef.value === \"undefined\") return;\n\t\tconst es = new EventSource(urlRef.value, { withCredentials });\n\t\tstatus.value = \"CONNECTING\";\n\t\teventSource.value = es;\n\t\tes.onopen = () => {\n\t\t\tstatus.value = \"OPEN\";\n\t\t\terror.value = null;\n\t\t};\n\t\tes.onerror = (e) => {\n\t\t\tstatus.value = \"CLOSED\";\n\t\t\terror.value = e;\n\t\t\tif (es.readyState === 2 && !explicitlyClosed && autoReconnect) {\n\t\t\t\tes.close();\n\t\t\t\tconst { retries = -1, delay = 1e3, onFailed } = resolveNestedOptions$1(autoReconnect);\n\t\t\t\tretried += 1;\n\t\t\t\tif (typeof retries === \"number\" && (retries < 0 || retried < retries)) setTimeout(_init, delay);\n\t\t\t\telse if (typeof retries === \"function\" && retries()) setTimeout(_init, delay);\n\t\t\t\telse onFailed === null || onFailed === void 0 || onFailed();\n\t\t\t}\n\t\t};\n\t\tes.onmessage = (e) => {\n\t\t\tvar _serializer$read;\n\t\t\tevent.value = null;\n\t\t\tdata.value = (_serializer$read = serializer.read(e.data)) !== null && _serializer$read !== void 0 ? _serializer$read : null;\n\t\t\tlastEventId.value = e.lastEventId;\n\t\t};\n\t\tfor (const event_name of events$1) useEventListener(es, event_name, (e) => {\n\t\t\tvar _serializer$read2, _e$lastEventId;\n\t\t\tevent.value = event_name;\n\t\t\tdata.value = (_serializer$read2 = serializer.read(e.data)) !== null && _serializer$read2 !== void 0 ? _serializer$read2 : null;\n\t\t\tlastEventId.value = (_e$lastEventId = e.lastEventId) !== null && _e$lastEventId !== void 0 ? _e$lastEventId : null;\n\t\t}, { passive: true });\n\t};\n\tconst open = () => {\n\t\tif (!isClient) return;\n\t\tclose();\n\t\texplicitlyClosed = false;\n\t\tretried = 0;\n\t\t_init();\n\t};\n\tif (immediate) open();\n\tif (autoConnect) watch(urlRef, open);\n\ttryOnScopeDispose(close);\n\treturn {\n\t\teventSource,\n\t\tevent,\n\t\tdata,\n\t\tstatus,\n\t\terror,\n\t\topen,\n\t\tclose,\n\t\tlastEventId\n\t};\n}\n\n//#endregion\n//#region useEyeDropper/index.ts\n/**\n* Reactive [EyeDropper API](https://developer.mozilla.org/en-US/docs/Web/API/EyeDropper_API)\n*\n* @see https://vueuse.org/useEyeDropper\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useEyeDropper(options = {}) {\n\tconst { initialValue = \"\" } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n\tconst sRGBHex = shallowRef(initialValue);\n\tasync function open(openOptions) {\n\t\tif (!isSupported.value) return;\n\t\tconst result = await new window.EyeDropper().open(openOptions);\n\t\tsRGBHex.value = result.sRGBHex;\n\t\treturn result;\n\t}\n\treturn {\n\t\tisSupported,\n\t\tsRGBHex,\n\t\topen\n\t};\n}\n\n//#endregion\n//#region useFavicon/index.ts\nfunction useFavicon(newIcon = null, options = {}) {\n\tconst { baseUrl = \"\", rel = \"icon\", document: document$1 = defaultDocument } = options;\n\tconst favicon = toRef(newIcon);\n\tconst applyIcon = (icon) => {\n\t\tconst elements = document$1 === null || document$1 === void 0 ? void 0 : document$1.head.querySelectorAll(`link[rel*=\"${rel}\"]`);\n\t\tif (!elements || elements.length === 0) {\n\t\t\tconst link = document$1 === null || document$1 === void 0 ? void 0 : document$1.createElement(\"link\");\n\t\t\tif (link) {\n\t\t\t\tlink.rel = rel;\n\t\t\t\tlink.href = `${baseUrl}${icon}`;\n\t\t\t\tlink.type = `image/${icon.split(\".\").pop()}`;\n\t\t\t\tdocument$1 === null || document$1 === void 0 || document$1.head.append(link);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\telements === null || elements === void 0 || elements.forEach((el) => el.href = `${baseUrl}${icon}`);\n\t};\n\twatch(favicon, (i, o) => {\n\t\tif (typeof i === \"string\" && i !== o) applyIcon(i);\n\t}, { immediate: true });\n\treturn favicon;\n}\n\n//#endregion\n//#region useFetch/index.ts\nconst payloadMapping = {\n\tjson: \"application/json\",\n\ttext: \"text/plain\"\n};\n/**\n* !!!IMPORTANT!!!\n*\n* If you update the UseFetchOptions interface, be sure to update this object\n* to include the new options\n*/\nfunction isFetchOptions(obj) {\n\treturn obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\", \"updateDataOnError\");\n}\nconst reAbsolute = /^(?:[a-z][a-z\\d+\\-.]*:)?\\/\\//i;\nfunction isAbsoluteURL(url) {\n\treturn reAbsolute.test(url);\n}\nfunction headersToObject(headers) {\n\tif (typeof Headers !== \"undefined\" && headers instanceof Headers) return Object.fromEntries(headers.entries());\n\treturn headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n\tif (combination === \"overwrite\") return async (ctx) => {\n\t\tlet callback;\n\t\tfor (let i = callbacks.length - 1; i >= 0; i--) if (callbacks[i] != null) {\n\t\t\tcallback = callbacks[i];\n\t\t\tbreak;\n\t\t}\n\t\tif (callback) return {\n\t\t\t...ctx,\n\t\t\t...await callback(ctx)\n\t\t};\n\t\treturn ctx;\n\t};\n\telse return async (ctx) => {\n\t\tfor (const callback of callbacks) if (callback) ctx = {\n\t\t\t...ctx,\n\t\t\t...await callback(ctx)\n\t\t};\n\t\treturn ctx;\n\t};\n}\nfunction createFetch(config = {}) {\n\tconst _combination = config.combination || \"chain\";\n\tconst _options = config.options || {};\n\tconst _fetchOptions = config.fetchOptions || {};\n\tfunction useFactoryFetch(url, ...args) {\n\t\tconst computedUrl = computed(() => {\n\t\t\tconst baseUrl = toValue(config.baseUrl);\n\t\t\tconst targetUrl = toValue(url);\n\t\t\treturn baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n\t\t});\n\t\tlet options = _options;\n\t\tlet fetchOptions = _fetchOptions;\n\t\tif (args.length > 0) if (isFetchOptions(args[0])) options = {\n\t\t\t...options,\n\t\t\t...args[0],\n\t\t\tbeforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n\t\t\tafterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n\t\t\tonFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n\t\t};\n\t\telse fetchOptions = {\n\t\t\t...fetchOptions,\n\t\t\t...args[0],\n\t\t\theaders: {\n\t\t\t\t...headersToObject(fetchOptions.headers) || {},\n\t\t\t\t...headersToObject(args[0].headers) || {}\n\t\t\t}\n\t\t};\n\t\tif (args.length > 1 && isFetchOptions(args[1])) options = {\n\t\t\t...options,\n\t\t\t...args[1],\n\t\t\tbeforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n\t\t\tafterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n\t\t\tonFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n\t\t};\n\t\treturn useFetch(computedUrl, fetchOptions, options);\n\t}\n\treturn useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n\tvar _defaultWindow$fetch, _globalThis;\n\tconst supportsAbort = typeof AbortController === \"function\";\n\tlet fetchOptions = {};\n\tlet options = {\n\t\timmediate: true,\n\t\trefetch: false,\n\t\ttimeout: 0,\n\t\tupdateDataOnError: false\n\t};\n\tconst config = {\n\t\tmethod: \"GET\",\n\t\ttype: \"text\",\n\t\tpayload: void 0\n\t};\n\tif (args.length > 0) if (isFetchOptions(args[0])) options = {\n\t\t...options,\n\t\t...args[0]\n\t};\n\telse fetchOptions = args[0];\n\tif (args.length > 1) {\n\t\tif (isFetchOptions(args[1])) options = {\n\t\t\t...options,\n\t\t\t...args[1]\n\t\t};\n\t}\n\tconst { fetch = (_defaultWindow$fetch = defaultWindow === null || defaultWindow === void 0 ? void 0 : defaultWindow.fetch) !== null && _defaultWindow$fetch !== void 0 ? _defaultWindow$fetch : (_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : _globalThis.fetch, initialData, timeout } = options;\n\tconst responseEvent = createEventHook();\n\tconst errorEvent = createEventHook();\n\tconst finallyEvent = createEventHook();\n\tconst isFinished = shallowRef(false);\n\tconst isFetching = shallowRef(false);\n\tconst aborted = shallowRef(false);\n\tconst statusCode = shallowRef(null);\n\tconst response = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst data = shallowRef(initialData || null);\n\tconst canAbort = computed(() => supportsAbort && isFetching.value);\n\tlet controller;\n\tlet timer;\n\tconst abort = (reason) => {\n\t\tif (supportsAbort) {\n\t\t\tcontroller === null || controller === void 0 || controller.abort(reason);\n\t\t\tcontroller = new AbortController();\n\t\t\tcontroller.signal.onabort = () => aborted.value = true;\n\t\t\tfetchOptions = {\n\t\t\t\t...fetchOptions,\n\t\t\t\tsignal: controller.signal\n\t\t\t};\n\t\t}\n\t};\n\tconst loading = (isLoading) => {\n\t\tisFetching.value = isLoading;\n\t\tisFinished.value = !isLoading;\n\t};\n\tif (timeout) timer = useTimeoutFn(abort, timeout, { immediate: false });\n\tlet executeCounter = 0;\n\tconst execute = async (throwOnFailed = false) => {\n\t\tvar _context$options;\n\t\tabort();\n\t\tloading(true);\n\t\terror.value = null;\n\t\tstatusCode.value = null;\n\t\taborted.value = false;\n\t\texecuteCounter += 1;\n\t\tconst currentExecuteCounter = executeCounter;\n\t\tconst defaultFetchOptions = {\n\t\t\tmethod: config.method,\n\t\t\theaders: {}\n\t\t};\n\t\tconst payload = toValue(config.payload);\n\t\tif (payload) {\n\t\t\tvar _payloadMapping$confi;\n\t\t\tconst headers = headersToObject(defaultFetchOptions.headers);\n\t\t\tconst proto = Object.getPrototypeOf(payload);\n\t\t\tif (!config.payloadType && payload && (proto === Object.prototype || Array.isArray(proto)) && !(payload instanceof FormData)) config.payloadType = \"json\";\n\t\t\tif (config.payloadType) headers[\"Content-Type\"] = (_payloadMapping$confi = payloadMapping[config.payloadType]) !== null && _payloadMapping$confi !== void 0 ? _payloadMapping$confi : config.payloadType;\n\t\t\tdefaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n\t\t}\n\t\tlet isCanceled = false;\n\t\tconst context = {\n\t\t\turl: toValue(url),\n\t\t\toptions: {\n\t\t\t\t...defaultFetchOptions,\n\t\t\t\t...fetchOptions\n\t\t\t},\n\t\t\tcancel: () => {\n\t\t\t\tisCanceled = true;\n\t\t\t}\n\t\t};\n\t\tif (options.beforeFetch) Object.assign(context, await options.beforeFetch(context));\n\t\tif (isCanceled || !fetch) {\n\t\t\tloading(false);\n\t\t\treturn Promise.resolve(null);\n\t\t}\n\t\tlet responseData = null;\n\t\tif (timer) timer.start();\n\t\treturn fetch(context.url, {\n\t\t\t...defaultFetchOptions,\n\t\t\t...context.options,\n\t\t\theaders: {\n\t\t\t\t...headersToObject(defaultFetchOptions.headers),\n\t\t\t\t...headersToObject((_context$options = context.options) === null || _context$options === void 0 ? void 0 : _context$options.headers)\n\t\t\t}\n\t\t}).then(async (fetchResponse) => {\n\t\t\tresponse.value = fetchResponse;\n\t\t\tstatusCode.value = fetchResponse.status;\n\t\t\tresponseData = await fetchResponse.clone()[config.type]();\n\t\t\tif (!fetchResponse.ok) {\n\t\t\t\tdata.value = initialData || null;\n\t\t\t\tthrow new Error(fetchResponse.statusText);\n\t\t\t}\n\t\t\tif (options.afterFetch) ({data: responseData} = await options.afterFetch({\n\t\t\t\tdata: responseData,\n\t\t\t\tresponse: fetchResponse,\n\t\t\t\tcontext,\n\t\t\t\texecute\n\t\t\t}));\n\t\t\tdata.value = responseData;\n\t\t\tresponseEvent.trigger(fetchResponse);\n\t\t\treturn fetchResponse;\n\t\t}).catch(async (fetchError) => {\n\t\t\tlet errorData = fetchError.message || fetchError.name;\n\t\t\tif (options.onFetchError) ({error: errorData, data: responseData} = await options.onFetchError({\n\t\t\t\tdata: responseData,\n\t\t\t\terror: fetchError,\n\t\t\t\tresponse: response.value,\n\t\t\t\tcontext,\n\t\t\t\texecute\n\t\t\t}));\n\t\t\terror.value = errorData;\n\t\t\tif (options.updateDataOnError) data.value = responseData;\n\t\t\terrorEvent.trigger(fetchError);\n\t\t\tif (throwOnFailed) throw fetchError;\n\t\t\treturn null;\n\t\t}).finally(() => {\n\t\t\tif (currentExecuteCounter === executeCounter) loading(false);\n\t\t\tif (timer) timer.stop();\n\t\t\tfinallyEvent.trigger(null);\n\t\t});\n\t};\n\tconst refetch = toRef(options.refetch);\n\twatch([refetch, toRef(url)], ([refetch$1]) => refetch$1 && execute(), { deep: true });\n\tconst shell = {\n\t\tisFinished: readonly(isFinished),\n\t\tisFetching: readonly(isFetching),\n\t\tstatusCode,\n\t\tresponse,\n\t\terror,\n\t\tdata,\n\t\tcanAbort,\n\t\taborted,\n\t\tabort,\n\t\texecute,\n\t\tonFetchResponse: responseEvent.on,\n\t\tonFetchError: errorEvent.on,\n\t\tonFetchFinally: finallyEvent.on,\n\t\tget: setMethod(\"GET\"),\n\t\tput: setMethod(\"PUT\"),\n\t\tpost: setMethod(\"POST\"),\n\t\tdelete: setMethod(\"DELETE\"),\n\t\tpatch: setMethod(\"PATCH\"),\n\t\thead: setMethod(\"HEAD\"),\n\t\toptions: setMethod(\"OPTIONS\"),\n\t\tjson: setType(\"json\"),\n\t\ttext: setType(\"text\"),\n\t\tblob: setType(\"blob\"),\n\t\tarrayBuffer: setType(\"arrayBuffer\"),\n\t\tformData: setType(\"formData\")\n\t};\n\tfunction setMethod(method) {\n\t\treturn (payload, payloadType) => {\n\t\t\tif (!isFetching.value) {\n\t\t\t\tconfig.method = method;\n\t\t\t\tconfig.payload = payload;\n\t\t\t\tconfig.payloadType = payloadType;\n\t\t\t\tif (isRef(config.payload)) watch([refetch, toRef(config.payload)], ([refetch$1]) => refetch$1 && execute(), { deep: true });\n\t\t\t\treturn {\n\t\t\t\t\t...shell,\n\t\t\t\t\tthen(onFulfilled, onRejected) {\n\t\t\t\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tfunction waitUntilFinished() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuntil(isFinished).toBe(true).then(() => resolve(shell)).catch(reject);\n\t\t});\n\t}\n\tfunction setType(type) {\n\t\treturn () => {\n\t\t\tif (!isFetching.value) {\n\t\t\t\tconfig.type = type;\n\t\t\t\treturn {\n\t\t\t\t\t...shell,\n\t\t\t\t\tthen(onFulfilled, onRejected) {\n\t\t\t\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tif (options.immediate) Promise.resolve().then(() => execute());\n\treturn {\n\t\t...shell,\n\t\tthen(onFulfilled, onRejected) {\n\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t}\n\t};\n}\nfunction joinPaths(start, end) {\n\tif (!start.endsWith(\"/\") && !end.startsWith(\"/\")) return `${start}/${end}`;\n\tif (start.endsWith(\"/\") && end.startsWith(\"/\")) return `${start.slice(0, -1)}${end}`;\n\treturn `${start}${end}`;\n}\n\n//#endregion\n//#region useFileDialog/index.ts\nconst DEFAULT_OPTIONS = {\n\tmultiple: true,\n\taccept: \"*\",\n\treset: false,\n\tdirectory: false\n};\nfunction prepareInitialFiles(files) {\n\tif (!files) return null;\n\tif (files instanceof FileList) return files;\n\tconst dt = new DataTransfer();\n\tfor (const file of files) dt.items.add(file);\n\treturn dt.files;\n}\n/**\n* Open file dialog with ease.\n*\n* @see https://vueuse.org/useFileDialog\n* @param options\n*/\nfunction useFileDialog(options = {}) {\n\tconst { document: document$1 = defaultDocument } = options;\n\tconst files = ref(prepareInitialFiles(options.initialFiles));\n\tconst { on: onChange, trigger: changeTrigger } = createEventHook();\n\tconst { on: onCancel, trigger: cancelTrigger } = createEventHook();\n\tconst inputRef = computed(() => {\n\t\tvar _unrefElement;\n\t\tconst input = (_unrefElement = unrefElement(options.input)) !== null && _unrefElement !== void 0 ? _unrefElement : document$1 ? document$1.createElement(\"input\") : void 0;\n\t\tif (input) {\n\t\t\tinput.type = \"file\";\n\t\t\tinput.onchange = (event) => {\n\t\t\t\tfiles.value = event.target.files;\n\t\t\t\tchangeTrigger(files.value);\n\t\t\t};\n\t\t\tinput.oncancel = () => {\n\t\t\t\tcancelTrigger();\n\t\t\t};\n\t\t}\n\t\treturn input;\n\t});\n\tconst reset = () => {\n\t\tfiles.value = null;\n\t\tif (inputRef.value && inputRef.value.value) {\n\t\t\tinputRef.value.value = \"\";\n\t\t\tchangeTrigger(null);\n\t\t}\n\t};\n\tconst applyOptions = (options$1) => {\n\t\tconst el = inputRef.value;\n\t\tif (!el) return;\n\t\tel.multiple = toValue(options$1.multiple);\n\t\tel.accept = toValue(options$1.accept);\n\t\tel.webkitdirectory = toValue(options$1.directory);\n\t\tif (hasOwn(options$1, \"capture\")) el.capture = toValue(options$1.capture);\n\t};\n\tconst open = (localOptions) => {\n\t\tconst el = inputRef.value;\n\t\tif (!el) return;\n\t\tconst mergedOptions = {\n\t\t\t...DEFAULT_OPTIONS,\n\t\t\t...options,\n\t\t\t...localOptions\n\t\t};\n\t\tapplyOptions(mergedOptions);\n\t\tif (toValue(mergedOptions.reset)) reset();\n\t\tel.click();\n\t};\n\twatchEffect(() => {\n\t\tapplyOptions(options);\n\t});\n\treturn {\n\t\tfiles: readonly(files),\n\t\topen,\n\t\treset,\n\t\tonCancel,\n\t\tonChange\n\t};\n}\n\n//#endregion\n//#region useFileSystemAccess/index.ts\nfunction useFileSystemAccess(options = {}) {\n\tconst { window: _window = defaultWindow, dataType = \"Text\" } = options;\n\tconst window$1 = _window;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"showSaveFilePicker\" in window$1 && \"showOpenFilePicker\" in window$1);\n\tconst fileHandle = shallowRef();\n\tconst data = shallowRef();\n\tconst file = shallowRef();\n\tconst fileName = computed(() => {\n\t\tvar _file$value$name, _file$value;\n\t\treturn (_file$value$name = (_file$value = file.value) === null || _file$value === void 0 ? void 0 : _file$value.name) !== null && _file$value$name !== void 0 ? _file$value$name : \"\";\n\t});\n\tconst fileMIME = computed(() => {\n\t\tvar _file$value$type, _file$value2;\n\t\treturn (_file$value$type = (_file$value2 = file.value) === null || _file$value2 === void 0 ? void 0 : _file$value2.type) !== null && _file$value$type !== void 0 ? _file$value$type : \"\";\n\t});\n\tconst fileSize = computed(() => {\n\t\tvar _file$value$size, _file$value3;\n\t\treturn (_file$value$size = (_file$value3 = file.value) === null || _file$value3 === void 0 ? void 0 : _file$value3.size) !== null && _file$value$size !== void 0 ? _file$value$size : 0;\n\t});\n\tconst fileLastModified = computed(() => {\n\t\tvar _file$value$lastModif, _file$value4;\n\t\treturn (_file$value$lastModif = (_file$value4 = file.value) === null || _file$value4 === void 0 ? void 0 : _file$value4.lastModified) !== null && _file$value$lastModif !== void 0 ? _file$value$lastModif : 0;\n\t});\n\tasync function open(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tconst [handle] = await window$1.showOpenFilePicker({\n\t\t\t...toValue(options),\n\t\t\t..._options\n\t\t});\n\t\tfileHandle.value = handle;\n\t\tawait updateData();\n\t}\n\tasync function create(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tfileHandle.value = await window$1.showSaveFilePicker({\n\t\t\t...options,\n\t\t\t..._options\n\t\t});\n\t\tdata.value = void 0;\n\t\tawait updateData();\n\t}\n\tasync function save(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tif (!fileHandle.value) return saveAs(_options);\n\t\tif (data.value) {\n\t\t\tconst writableStream = await fileHandle.value.createWritable();\n\t\t\tawait writableStream.write(data.value);\n\t\t\tawait writableStream.close();\n\t\t}\n\t\tawait updateFile();\n\t}\n\tasync function saveAs(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tfileHandle.value = await window$1.showSaveFilePicker({\n\t\t\t...options,\n\t\t\t..._options\n\t\t});\n\t\tif (data.value) {\n\t\t\tconst writableStream = await fileHandle.value.createWritable();\n\t\t\tawait writableStream.write(data.value);\n\t\t\tawait writableStream.close();\n\t\t}\n\t\tawait updateFile();\n\t}\n\tasync function updateFile() {\n\t\tvar _fileHandle$value;\n\t\tfile.value = await ((_fileHandle$value = fileHandle.value) === null || _fileHandle$value === void 0 ? void 0 : _fileHandle$value.getFile());\n\t}\n\tasync function updateData() {\n\t\tvar _file$value5, _file$value6;\n\t\tawait updateFile();\n\t\tconst type = toValue(dataType);\n\t\tif (type === \"Text\") data.value = await ((_file$value5 = file.value) === null || _file$value5 === void 0 ? void 0 : _file$value5.text());\n\t\telse if (type === \"ArrayBuffer\") data.value = await ((_file$value6 = file.value) === null || _file$value6 === void 0 ? void 0 : _file$value6.arrayBuffer());\n\t\telse if (type === \"Blob\") data.value = file.value;\n\t}\n\twatch(() => toValue(dataType), updateData);\n\treturn {\n\t\tisSupported,\n\t\tdata,\n\t\tfile,\n\t\tfileName,\n\t\tfileMIME,\n\t\tfileSize,\n\t\tfileLastModified,\n\t\topen,\n\t\tcreate,\n\t\tsave,\n\t\tsaveAs,\n\t\tupdateData\n\t};\n}\n\n//#endregion\n//#region useFocus/index.ts\n/**\n* Track or set the focus state of a DOM element.\n*\n* @see https://vueuse.org/useFocus\n* @param target The target element for the focus and blur events.\n* @param options\n*/\nfunction useFocus(target, options = {}) {\n\tconst { initialValue = false, focusVisible = false, preventScroll = false } = options;\n\tconst innerFocused = shallowRef(false);\n\tconst targetElement = computed(() => unrefElement(target));\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(targetElement, \"focus\", (event) => {\n\t\tvar _matches, _ref;\n\t\tif (!focusVisible || ((_matches = (_ref = event.target).matches) === null || _matches === void 0 ? void 0 : _matches.call(_ref, \":focus-visible\"))) innerFocused.value = true;\n\t}, listenerOptions);\n\tuseEventListener(targetElement, \"blur\", () => innerFocused.value = false, listenerOptions);\n\tconst focused = computed({\n\t\tget: () => innerFocused.value,\n\t\tset(value) {\n\t\t\tvar _targetElement$value, _targetElement$value2;\n\t\t\tif (!value && innerFocused.value) (_targetElement$value = targetElement.value) === null || _targetElement$value === void 0 || _targetElement$value.blur();\n\t\t\telse if (value && !innerFocused.value) (_targetElement$value2 = targetElement.value) === null || _targetElement$value2 === void 0 || _targetElement$value2.focus({ preventScroll });\n\t\t}\n\t});\n\twatch(targetElement, () => {\n\t\tfocused.value = initialValue;\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\treturn { focused };\n}\n\n//#endregion\n//#region useFocusWithin/index.ts\nconst EVENT_FOCUS_IN = \"focusin\";\nconst EVENT_FOCUS_OUT = \"focusout\";\nconst PSEUDO_CLASS_FOCUS_WITHIN = \":focus-within\";\n/**\n* Track if focus is contained within the target element\n*\n* @see https://vueuse.org/useFocusWithin\n* @param target The target element to track\n* @param options Focus within options\n*/\nfunction useFocusWithin(target, options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst targetElement = computed(() => unrefElement(target));\n\tconst _focused = shallowRef(false);\n\tconst focused = computed(() => _focused.value);\n\tconst activeElement = useActiveElement(options);\n\tif (!window$1 || !activeElement.value) return { focused };\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(targetElement, EVENT_FOCUS_IN, () => _focused.value = true, listenerOptions);\n\tuseEventListener(targetElement, EVENT_FOCUS_OUT, () => {\n\t\tvar _targetElement$value$, _targetElement$value, _targetElement$value$2;\n\t\treturn _focused.value = (_targetElement$value$ = (_targetElement$value = targetElement.value) === null || _targetElement$value === void 0 || (_targetElement$value$2 = _targetElement$value.matches) === null || _targetElement$value$2 === void 0 ? void 0 : _targetElement$value$2.call(_targetElement$value, PSEUDO_CLASS_FOCUS_WITHIN)) !== null && _targetElement$value$ !== void 0 ? _targetElement$value$ : false;\n\t}, listenerOptions);\n\treturn { focused };\n}\n\n//#endregion\n//#region useFps/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useFps(options) {\n\tvar _options$every;\n\tconst fps = shallowRef(0);\n\tif (typeof performance === \"undefined\") return fps;\n\tconst every = (_options$every = options === null || options === void 0 ? void 0 : options.every) !== null && _options$every !== void 0 ? _options$every : 10;\n\tlet last = performance.now();\n\tlet ticks = 0;\n\tuseRafFn(() => {\n\t\tticks += 1;\n\t\tif (ticks >= every) {\n\t\t\tconst now = performance.now();\n\t\t\tconst diff = now - last;\n\t\t\tfps.value = Math.round(1e3 / (diff / ticks));\n\t\t\tlast = now;\n\t\t\tticks = 0;\n\t\t}\n\t});\n\treturn fps;\n}\n\n//#endregion\n//#region useFullscreen/index.ts\nconst eventHandlers = [\n\t\"fullscreenchange\",\n\t\"webkitfullscreenchange\",\n\t\"webkitendfullscreen\",\n\t\"mozfullscreenchange\",\n\t\"MSFullscreenChange\"\n];\n/**\n* Reactive Fullscreen API.\n*\n* @see https://vueuse.org/useFullscreen\n* @param target\n* @param options\n*/\nfunction useFullscreen(target, options = {}) {\n\tconst { document: document$1 = defaultDocument, autoExit = false } = options;\n\tconst targetRef = computed(() => {\n\t\tvar _unrefElement;\n\t\treturn (_unrefElement = unrefElement(target)) !== null && _unrefElement !== void 0 ? _unrefElement : document$1 === null || document$1 === void 0 ? void 0 : document$1.documentElement;\n\t});\n\tconst isFullscreen = shallowRef(false);\n\tconst requestMethod = computed(() => {\n\t\treturn [\n\t\t\t\"requestFullscreen\",\n\t\t\t\"webkitRequestFullscreen\",\n\t\t\t\"webkitEnterFullscreen\",\n\t\t\t\"webkitEnterFullScreen\",\n\t\t\t\"webkitRequestFullScreen\",\n\t\t\t\"mozRequestFullScreen\",\n\t\t\t\"msRequestFullscreen\"\n\t\t].find((m) => document$1 && m in document$1 || targetRef.value && m in targetRef.value);\n\t});\n\tconst exitMethod = computed(() => {\n\t\treturn [\n\t\t\t\"exitFullscreen\",\n\t\t\t\"webkitExitFullscreen\",\n\t\t\t\"webkitExitFullScreen\",\n\t\t\t\"webkitCancelFullScreen\",\n\t\t\t\"mozCancelFullScreen\",\n\t\t\t\"msExitFullscreen\"\n\t\t].find((m) => document$1 && m in document$1 || targetRef.value && m in targetRef.value);\n\t});\n\tconst fullscreenEnabled = computed(() => {\n\t\treturn [\n\t\t\t\"fullScreen\",\n\t\t\t\"webkitIsFullScreen\",\n\t\t\t\"webkitDisplayingFullscreen\",\n\t\t\t\"mozFullScreen\",\n\t\t\t\"msFullscreenElement\"\n\t\t].find((m) => document$1 && m in document$1 || targetRef.value && m in targetRef.value);\n\t});\n\tconst fullscreenElementMethod = [\n\t\t\"fullscreenElement\",\n\t\t\"webkitFullscreenElement\",\n\t\t\"mozFullScreenElement\",\n\t\t\"msFullscreenElement\"\n\t].find((m) => document$1 && m in document$1);\n\tconst isSupported = /* @__PURE__ */ useSupported(() => targetRef.value && document$1 && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);\n\tconst isCurrentElementFullScreen = () => {\n\t\tif (fullscreenElementMethod) return (document$1 === null || document$1 === void 0 ? void 0 : document$1[fullscreenElementMethod]) === targetRef.value;\n\t\treturn false;\n\t};\n\tconst isElementFullScreen = () => {\n\t\tif (fullscreenEnabled.value) if (document$1 && document$1[fullscreenEnabled.value] != null) return document$1[fullscreenEnabled.value];\n\t\telse {\n\t\t\tconst target$1 = targetRef.value;\n\t\t\tif ((target$1 === null || target$1 === void 0 ? void 0 : target$1[fullscreenEnabled.value]) != null) return Boolean(target$1[fullscreenEnabled.value]);\n\t\t}\n\t\treturn false;\n\t};\n\tasync function exit() {\n\t\tif (!isSupported.value || !isFullscreen.value) return;\n\t\tif (exitMethod.value) if ((document$1 === null || document$1 === void 0 ? void 0 : document$1[exitMethod.value]) != null) await document$1[exitMethod.value]();\n\t\telse {\n\t\t\tconst target$1 = targetRef.value;\n\t\t\tif ((target$1 === null || target$1 === void 0 ? void 0 : target$1[exitMethod.value]) != null) await target$1[exitMethod.value]();\n\t\t}\n\t\tisFullscreen.value = false;\n\t}\n\tasync function enter() {\n\t\tif (!isSupported.value || isFullscreen.value) return;\n\t\tif (isElementFullScreen()) await exit();\n\t\tconst target$1 = targetRef.value;\n\t\tif (requestMethod.value && (target$1 === null || target$1 === void 0 ? void 0 : target$1[requestMethod.value]) != null) {\n\t\t\tawait target$1[requestMethod.value]();\n\t\t\tisFullscreen.value = true;\n\t\t}\n\t}\n\tasync function toggle() {\n\t\tawait (isFullscreen.value ? exit() : enter());\n\t}\n\tconst handlerCallback = () => {\n\t\tconst isElementFullScreenValue = isElementFullScreen();\n\t\tif (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen()) isFullscreen.value = isElementFullScreenValue;\n\t};\n\tconst listenerOptions = {\n\t\tcapture: false,\n\t\tpassive: true\n\t};\n\tuseEventListener(document$1, eventHandlers, handlerCallback, listenerOptions);\n\tuseEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, listenerOptions);\n\ttryOnMounted(handlerCallback, false);\n\tif (autoExit) tryOnScopeDispose(exit);\n\treturn {\n\t\tisSupported,\n\t\tisFullscreen,\n\t\tenter,\n\t\texit,\n\t\ttoggle\n\t};\n}\n\n//#endregion\n//#region useGamepad/index.ts\n/**\n* Maps a standard standard gamepad to an Xbox 360 Controller.\n*/\nfunction mapGamepadToXbox360Controller(gamepad) {\n\treturn computed(() => {\n\t\tif (gamepad.value) return {\n\t\t\tbuttons: {\n\t\t\t\ta: gamepad.value.buttons[0],\n\t\t\t\tb: gamepad.value.buttons[1],\n\t\t\t\tx: gamepad.value.buttons[2],\n\t\t\t\ty: gamepad.value.buttons[3]\n\t\t\t},\n\t\t\tbumper: {\n\t\t\t\tleft: gamepad.value.buttons[4],\n\t\t\t\tright: gamepad.value.buttons[5]\n\t\t\t},\n\t\t\ttriggers: {\n\t\t\t\tleft: gamepad.value.buttons[6],\n\t\t\t\tright: gamepad.value.buttons[7]\n\t\t\t},\n\t\t\tstick: {\n\t\t\t\tleft: {\n\t\t\t\t\thorizontal: gamepad.value.axes[0],\n\t\t\t\t\tvertical: gamepad.value.axes[1],\n\t\t\t\t\tbutton: gamepad.value.buttons[10]\n\t\t\t\t},\n\t\t\t\tright: {\n\t\t\t\t\thorizontal: gamepad.value.axes[2],\n\t\t\t\t\tvertical: gamepad.value.axes[3],\n\t\t\t\t\tbutton: gamepad.value.buttons[11]\n\t\t\t\t}\n\t\t\t},\n\t\t\tdpad: {\n\t\t\t\tup: gamepad.value.buttons[12],\n\t\t\t\tdown: gamepad.value.buttons[13],\n\t\t\t\tleft: gamepad.value.buttons[14],\n\t\t\t\tright: gamepad.value.buttons[15]\n\t\t\t},\n\t\t\tback: gamepad.value.buttons[8],\n\t\t\tstart: gamepad.value.buttons[9]\n\t\t};\n\t\treturn null;\n\t});\n}\n/* @__NO_SIDE_EFFECTS__ */\nfunction useGamepad(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"getGamepads\" in navigator$1);\n\tconst gamepads = ref([]);\n\tconst onConnectedHook = createEventHook();\n\tconst onDisconnectedHook = createEventHook();\n\tconst stateFromGamepad = (gamepad) => {\n\t\tconst hapticActuators = [];\n\t\tconst vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n\t\tif (vibrationActuator) hapticActuators.push(vibrationActuator);\n\t\tif (gamepad.hapticActuators) hapticActuators.push(...gamepad.hapticActuators);\n\t\treturn {\n\t\t\tid: gamepad.id,\n\t\t\tindex: gamepad.index,\n\t\t\tconnected: gamepad.connected,\n\t\t\tmapping: gamepad.mapping,\n\t\t\ttimestamp: gamepad.timestamp,\n\t\t\tvibrationActuator: gamepad.vibrationActuator,\n\t\t\thapticActuators,\n\t\t\taxes: gamepad.axes.map((axes) => axes),\n\t\t\tbuttons: gamepad.buttons.map((button) => ({\n\t\t\t\tpressed: button.pressed,\n\t\t\t\ttouched: button.touched,\n\t\t\t\tvalue: button.value\n\t\t\t}))\n\t\t};\n\t};\n\tconst updateGamepadState = () => {\n\t\tconst _gamepads = (navigator$1 === null || navigator$1 === void 0 ? void 0 : navigator$1.getGamepads()) || [];\n\t\tfor (const gamepad of _gamepads) if (gamepad && gamepads.value[gamepad.index]) gamepads.value[gamepad.index] = stateFromGamepad(gamepad);\n\t};\n\tconst { isActive, pause, resume } = useRafFn(updateGamepadState);\n\tconst onGamepadConnected = (gamepad) => {\n\t\tif (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n\t\t\tgamepads.value.push(stateFromGamepad(gamepad));\n\t\t\tonConnectedHook.trigger(gamepad.index);\n\t\t}\n\t\tresume();\n\t};\n\tconst onGamepadDisconnected = (gamepad) => {\n\t\tgamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n\t\tonDisconnectedHook.trigger(gamepad.index);\n\t};\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad), listenerOptions);\n\tuseEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad), listenerOptions);\n\ttryOnMounted(() => {\n\t\tconst _gamepads = (navigator$1 === null || navigator$1 === void 0 ? void 0 : navigator$1.getGamepads()) || [];\n\t\tfor (const gamepad of _gamepads) if (gamepad && gamepads.value[gamepad.index]) onGamepadConnected(gamepad);\n\t});\n\tpause();\n\treturn {\n\t\tisSupported,\n\t\tonConnected: onConnectedHook.on,\n\t\tonDisconnected: onDisconnectedHook.on,\n\t\tgamepads,\n\t\tpause,\n\t\tresume,\n\t\tisActive\n\t};\n}\n\n//#endregion\n//#region useGeolocation/index.ts\n/**\n* Reactive Geolocation API.\n*\n* @see https://vueuse.org/useGeolocation\n* @param options\n*/\nfunction useGeolocation(options = {}) {\n\tconst { enableHighAccuracy = true, maximumAge = 3e4, timeout = 27e3, navigator: navigator$1 = defaultNavigator, immediate = true } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"geolocation\" in navigator$1);\n\tconst locatedAt = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst coords = ref({\n\t\taccuracy: 0,\n\t\tlatitude: Number.POSITIVE_INFINITY,\n\t\tlongitude: Number.POSITIVE_INFINITY,\n\t\taltitude: null,\n\t\taltitudeAccuracy: null,\n\t\theading: null,\n\t\tspeed: null\n\t});\n\tfunction updatePosition(position) {\n\t\tlocatedAt.value = position.timestamp;\n\t\tcoords.value = position.coords;\n\t\terror.value = null;\n\t}\n\tlet watcher;\n\tfunction resume() {\n\t\tif (isSupported.value) watcher = navigator$1.geolocation.watchPosition(updatePosition, (err) => error.value = err, {\n\t\t\tenableHighAccuracy,\n\t\t\tmaximumAge,\n\t\t\ttimeout\n\t\t});\n\t}\n\tif (immediate) resume();\n\tfunction pause() {\n\t\tif (watcher && navigator$1) navigator$1.geolocation.clearWatch(watcher);\n\t}\n\ttryOnScopeDispose(() => {\n\t\tpause();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tcoords,\n\t\tlocatedAt,\n\t\terror,\n\t\tresume,\n\t\tpause\n\t};\n}\n\n//#endregion\n//#region useIdle/index.ts\nconst defaultEvents$1 = [\n\t\"mousemove\",\n\t\"mousedown\",\n\t\"resize\",\n\t\"keydown\",\n\t\"touchstart\",\n\t\"wheel\"\n];\nconst oneMinute = 6e4;\n/**\n* Tracks whether the user is being inactive.\n*\n* @see https://vueuse.org/useIdle\n* @param timeout default to 1 minute\n* @param options IdleOptions\n*/\nfunction useIdle(timeout = oneMinute, options = {}) {\n\tconst { initialState = false, listenForVisibilityChange = true, events: events$1 = defaultEvents$1, window: window$1 = defaultWindow, eventFilter = throttleFilter(50) } = options;\n\tconst idle = shallowRef(initialState);\n\tconst lastActive = shallowRef(timestamp());\n\tconst isPending = shallowRef(false);\n\tlet timer;\n\tconst reset = () => {\n\t\tidle.value = false;\n\t\tclearTimeout(timer);\n\t\ttimer = setTimeout(() => idle.value = true, timeout);\n\t};\n\tconst onEvent = createFilterWrapper(eventFilter, () => {\n\t\tlastActive.value = timestamp();\n\t\treset();\n\t});\n\tif (window$1) {\n\t\tconst document$1 = window$1.document;\n\t\tconst listenerOptions = { passive: true };\n\t\tfor (const event of events$1) useEventListener(window$1, event, () => {\n\t\t\tif (!isPending.value) return;\n\t\t\tonEvent();\n\t\t}, listenerOptions);\n\t\tif (listenForVisibilityChange) useEventListener(document$1, \"visibilitychange\", () => {\n\t\t\tif (document$1.hidden || !isPending.value) return;\n\t\t\tonEvent();\n\t\t}, listenerOptions);\n\t\tstart();\n\t}\n\tfunction start() {\n\t\tif (isPending.value) return;\n\t\tisPending.value = true;\n\t\tif (!initialState) reset();\n\t}\n\tfunction stop() {\n\t\tidle.value = initialState;\n\t\tclearTimeout(timer);\n\t\tisPending.value = false;\n\t}\n\treturn {\n\t\tidle,\n\t\tlastActive,\n\t\treset,\n\t\tstop,\n\t\tstart,\n\t\tisPending: shallowReadonly(isPending)\n\t};\n}\n\n//#endregion\n//#region useImage/index.ts\nasync function loadImage(options) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst img = new Image();\n\t\tconst { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy, width, height, decoding, fetchPriority, ismap, usemap } = options;\n\t\timg.src = src;\n\t\tif (srcset != null) img.srcset = srcset;\n\t\tif (sizes != null) img.sizes = sizes;\n\t\tif (clazz != null) img.className = clazz;\n\t\tif (loading != null) img.loading = loading;\n\t\tif (crossorigin != null) img.crossOrigin = crossorigin;\n\t\tif (referrerPolicy != null) img.referrerPolicy = referrerPolicy;\n\t\tif (width != null) img.width = width;\n\t\tif (height != null) img.height = height;\n\t\tif (decoding != null) img.decoding = decoding;\n\t\tif (fetchPriority != null) img.fetchPriority = fetchPriority;\n\t\tif (ismap != null) img.isMap = ismap;\n\t\tif (usemap != null) img.useMap = usemap;\n\t\timg.onload = () => resolve(img);\n\t\timg.onerror = reject;\n\t});\n}\n/**\n* Reactive load an image in the browser, you can wait the result to display it or show a fallback.\n*\n* @see https://vueuse.org/useImage\n* @param options Image attributes, as used in the <img> tag\n* @param asyncStateOptions\n*/\nfunction useImage(options, asyncStateOptions = {}) {\n\tconst state = useAsyncState(() => loadImage(toValue(options)), void 0, {\n\t\tresetOnExecute: true,\n\t\t...asyncStateOptions\n\t});\n\twatch(() => toValue(options), () => state.execute(asyncStateOptions.delay), { deep: true });\n\treturn state;\n}\n\n//#endregion\n//#region _resolve-element.ts\n/**\n* Resolves an element from a given element, window, or document.\n*\n* @internal\n*/\nfunction resolveElement(el) {\n\tif (typeof Window !== \"undefined\" && el instanceof Window) return el.document.documentElement;\n\tif (typeof Document !== \"undefined\" && el instanceof Document) return el.documentElement;\n\treturn el;\n}\n\n//#endregion\n//#region useScroll/index.ts\n/**\n* We have to check if the scroll amount is close enough to some threshold in order to\n* more accurately calculate arrivedState. This is because scrollTop/scrollLeft are non-rounded\n* numbers, while scrollHeight/scrollWidth and clientHeight/clientWidth are rounded.\n* https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#determine_if_an_element_has_been_totally_scrolled\n*/\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\n/**\n* Reactive scroll.\n*\n* @see https://vueuse.org/useScroll\n* @param element\n* @param options\n*/\nfunction useScroll(element, options = {}) {\n\tconst { throttle = 0, idle = 200, onStop = noop, onScroll = noop, offset = {\n\t\tleft: 0,\n\t\tright: 0,\n\t\ttop: 0,\n\t\tbottom: 0\n\t}, observe: _observe = { mutation: false }, eventListenerOptions = {\n\t\tcapture: false,\n\t\tpassive: true\n\t}, behavior = \"auto\", window: window$1 = defaultWindow, onError = (e) => {\n\t\tconsole.error(e);\n\t} } = options;\n\tconst observe = typeof _observe === \"boolean\" ? { mutation: _observe } : _observe;\n\tconst internalX = shallowRef(0);\n\tconst internalY = shallowRef(0);\n\tconst x = computed({\n\t\tget() {\n\t\t\treturn internalX.value;\n\t\t},\n\t\tset(x$1) {\n\t\t\tscrollTo(x$1, void 0);\n\t\t}\n\t});\n\tconst y = computed({\n\t\tget() {\n\t\t\treturn internalY.value;\n\t\t},\n\t\tset(y$1) {\n\t\t\tscrollTo(void 0, y$1);\n\t\t}\n\t});\n\tfunction scrollTo(_x, _y) {\n\t\tvar _ref, _toValue, _toValue2, _document;\n\t\tif (!window$1) return;\n\t\tconst _element = toValue(element);\n\t\tif (!_element) return;\n\t\t(_ref = _element instanceof Document ? window$1.document.body : _element) === null || _ref === void 0 || _ref.scrollTo({\n\t\t\ttop: (_toValue = toValue(_y)) !== null && _toValue !== void 0 ? _toValue : y.value,\n\t\t\tleft: (_toValue2 = toValue(_x)) !== null && _toValue2 !== void 0 ? _toValue2 : x.value,\n\t\t\tbehavior: toValue(behavior)\n\t\t});\n\t\tconst scrollContainer = (_element === null || _element === void 0 || (_document = _element.document) === null || _document === void 0 ? void 0 : _document.documentElement) || (_element === null || _element === void 0 ? void 0 : _element.documentElement) || _element;\n\t\tif (x != null) internalX.value = scrollContainer.scrollLeft;\n\t\tif (y != null) internalY.value = scrollContainer.scrollTop;\n\t}\n\tconst isScrolling = shallowRef(false);\n\tconst arrivedState = reactive({\n\t\tleft: true,\n\t\tright: false,\n\t\ttop: true,\n\t\tbottom: false\n\t});\n\tconst directions = reactive({\n\t\tleft: false,\n\t\tright: false,\n\t\ttop: false,\n\t\tbottom: false\n\t});\n\tconst onScrollEnd = (e) => {\n\t\tif (!isScrolling.value) return;\n\t\tisScrolling.value = false;\n\t\tdirections.left = false;\n\t\tdirections.right = false;\n\t\tdirections.top = false;\n\t\tdirections.bottom = false;\n\t\tonStop(e);\n\t};\n\tconst onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n\tconst setArrivedState = (target) => {\n\t\tvar _document2;\n\t\tif (!window$1) return;\n\t\tconst el = (target === null || target === void 0 || (_document2 = target.document) === null || _document2 === void 0 ? void 0 : _document2.documentElement) || (target === null || target === void 0 ? void 0 : target.documentElement) || unrefElement(target);\n\t\tconst { display, flexDirection, direction } = window$1.getComputedStyle(el);\n\t\tconst directionMultipler = direction === \"rtl\" ? -1 : 1;\n\t\tconst scrollLeft = el.scrollLeft;\n\t\tdirections.left = scrollLeft < internalX.value;\n\t\tdirections.right = scrollLeft > internalX.value;\n\t\tconst left = Math.abs(scrollLeft * directionMultipler) <= (offset.left || 0);\n\t\tconst right = Math.abs(scrollLeft * directionMultipler) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n\t\tif (display === \"flex\" && flexDirection === \"row-reverse\") {\n\t\t\tarrivedState.left = right;\n\t\t\tarrivedState.right = left;\n\t\t} else {\n\t\t\tarrivedState.left = left;\n\t\t\tarrivedState.right = right;\n\t\t}\n\t\tinternalX.value = scrollLeft;\n\t\tlet scrollTop = el.scrollTop;\n\t\tif (target === window$1.document && !scrollTop) scrollTop = window$1.document.body.scrollTop;\n\t\tdirections.top = scrollTop < internalY.value;\n\t\tdirections.bottom = scrollTop > internalY.value;\n\t\tconst top = Math.abs(scrollTop) <= (offset.top || 0);\n\t\tconst bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n\t\t/**\n\t\t* reverse columns and rows behave exactly the other way around,\n\t\t* bottom is treated as top and top is treated as the negative version of bottom\n\t\t*/\n\t\tif (display === \"flex\" && flexDirection === \"column-reverse\") {\n\t\t\tarrivedState.top = bottom;\n\t\t\tarrivedState.bottom = top;\n\t\t} else {\n\t\t\tarrivedState.top = top;\n\t\t\tarrivedState.bottom = bottom;\n\t\t}\n\t\tinternalY.value = scrollTop;\n\t};\n\tconst onScrollHandler = (e) => {\n\t\tvar _documentElement;\n\t\tif (!window$1) return;\n\t\tsetArrivedState((_documentElement = e.target.documentElement) !== null && _documentElement !== void 0 ? _documentElement : e.target);\n\t\tisScrolling.value = true;\n\t\tonScrollEndDebounced(e);\n\t\tonScroll(e);\n\t};\n\tuseEventListener(element, \"scroll\", throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler, eventListenerOptions);\n\ttryOnMounted(() => {\n\t\ttry {\n\t\t\tconst _element = toValue(element);\n\t\t\tif (!_element) return;\n\t\t\tsetArrivedState(_element);\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t});\n\tif ((observe === null || observe === void 0 ? void 0 : observe.mutation) && element != null && element !== window$1 && element !== document) useMutationObserver(element, () => {\n\t\tconst _element = toValue(element);\n\t\tif (!_element) return;\n\t\tsetArrivedState(_element);\n\t}, {\n\t\tattributes: true,\n\t\tchildList: true,\n\t\tsubtree: true\n\t});\n\tuseEventListener(element, \"scrollend\", onScrollEnd, eventListenerOptions);\n\treturn {\n\t\tx,\n\t\ty,\n\t\tisScrolling,\n\t\tarrivedState,\n\t\tdirections,\n\t\tmeasure() {\n\t\t\tconst _element = toValue(element);\n\t\t\tif (window$1 && _element) setArrivedState(_element);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region useInfiniteScroll/index.ts\n/**\n* Reactive infinite scroll.\n*\n* @see https://vueuse.org/useInfiniteScroll\n*/\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n\tvar _options$distance;\n\tconst { direction = \"bottom\", interval = 100, canLoadMore = () => true } = options;\n\tconst state = reactive(useScroll(element, {\n\t\t...options,\n\t\toffset: {\n\t\t\t[direction]: (_options$distance = options.distance) !== null && _options$distance !== void 0 ? _options$distance : 0,\n\t\t\t...options.offset\n\t\t}\n\t}));\n\tconst promise = ref();\n\tconst isLoading = computed(() => !!promise.value);\n\tconst observedElement = computed(() => {\n\t\treturn resolveElement(toValue(element));\n\t});\n\tconst isElementVisible = useElementVisibility(observedElement);\n\tconst canLoad = computed(() => {\n\t\tif (!observedElement.value) return false;\n\t\treturn canLoadMore(observedElement.value);\n\t});\n\tfunction checkAndLoad() {\n\t\tstate.measure();\n\t\tif (!observedElement.value || !isElementVisible.value || !canLoad.value) return;\n\t\tconst { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n\t\tconst isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n\t\tif (state.arrivedState[direction] || isNarrower) {\n\t\t\tif (!promise.value) promise.value = Promise.all([onLoadMore(state), new Promise((resolve) => setTimeout(resolve, interval))]).finally(() => {\n\t\t\t\tpromise.value = null;\n\t\t\t\tnextTick(() => checkAndLoad());\n\t\t\t});\n\t\t}\n\t}\n\ttryOnUnmounted(watch(() => [\n\t\tstate.arrivedState[direction],\n\t\tisElementVisible.value,\n\t\tcanLoad.value\n\t], checkAndLoad, { immediate: true }));\n\treturn {\n\t\tisLoading,\n\t\treset() {\n\t\t\tnextTick(() => checkAndLoad());\n\t\t}\n\t};\n}\n\n//#endregion\n//#region useKeyModifier/index.ts\nconst defaultEvents = [\n\t\"mousedown\",\n\t\"mouseup\",\n\t\"keydown\",\n\t\"keyup\"\n];\n/* @__NO_SIDE_EFFECTS__ */\nfunction useKeyModifier(modifier, options = {}) {\n\tconst { events: events$1 = defaultEvents, document: document$1 = defaultDocument, initial = null } = options;\n\tconst state = shallowRef(initial);\n\tif (document$1) events$1.forEach((listenerEvent) => {\n\t\tuseEventListener(document$1, listenerEvent, (evt) => {\n\t\t\tif (typeof evt.getModifierState === \"function\") state.value = evt.getModifierState(modifier);\n\t\t}, { passive: true });\n\t});\n\treturn state;\n}\n\n//#endregion\n//#region useLocalStorage/index.ts\n/**\n* Reactive LocalStorage.\n*\n* @see https://vueuse.org/useLocalStorage\n* @param key\n* @param initialValue\n* @param options\n*/\nfunction useLocalStorage(key, initialValue, options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\treturn useStorage(key, initialValue, window$1 === null || window$1 === void 0 ? void 0 : window$1.localStorage, options);\n}\n\n//#endregion\n//#region useMagicKeys/aliasMap.ts\nconst DefaultMagicKeysAliasMap = {\n\tctrl: \"control\",\n\tcommand: \"meta\",\n\tcmd: \"meta\",\n\toption: \"alt\",\n\tup: \"arrowup\",\n\tdown: \"arrowdown\",\n\tleft: \"arrowleft\",\n\tright: \"arrowright\"\n};\n\n//#endregion\n//#region useMagicKeys/index.ts\n/**\n* Reactive keys pressed state, with magical keys combination support.\n*\n* @see https://vueuse.org/useMagicKeys\n*/\nfunction useMagicKeys(options = {}) {\n\tconst { reactive: useReactive = false, target = defaultWindow, aliasMap = DefaultMagicKeysAliasMap, passive = true, onEventFired = noop } = options;\n\tconst current = reactive(/* @__PURE__ */ new Set());\n\tconst obj = {\n\t\ttoJSON() {\n\t\t\treturn {};\n\t\t},\n\t\tcurrent\n\t};\n\tconst refs = useReactive ? reactive(obj) : obj;\n\tconst metaDeps = /* @__PURE__ */ new Set();\n\tconst depsMap = new Map([\n\t\t[\"Meta\", metaDeps],\n\t\t[\"Shift\", /* @__PURE__ */ new Set()],\n\t\t[\"Alt\", /* @__PURE__ */ new Set()]\n\t]);\n\tconst usedKeys = /* @__PURE__ */ new Set();\n\tfunction setRefs(key, value) {\n\t\tif (key in refs) if (useReactive) refs[key] = value;\n\t\telse refs[key].value = value;\n\t}\n\tfunction reset() {\n\t\tcurrent.clear();\n\t\tfor (const key of usedKeys) setRefs(key, false);\n\t}\n\tfunction updateDeps(value, e, keys$1) {\n\t\tif (!value || typeof e.getModifierState !== \"function\") return;\n\t\tfor (const [modifier, depsSet] of depsMap) if (e.getModifierState(modifier)) {\n\t\t\tkeys$1.forEach((key) => depsSet.add(key));\n\t\t\tbreak;\n\t\t}\n\t}\n\tfunction clearDeps(value, key) {\n\t\tif (value) return;\n\t\tconst depsMapKey = `${key[0].toUpperCase()}${key.slice(1)}`;\n\t\tconst deps = depsMap.get(depsMapKey);\n\t\tif (![\"shift\", \"alt\"].includes(key) || !deps) return;\n\t\tconst depsArray = Array.from(deps);\n\t\tconst depsIndex = depsArray.indexOf(key);\n\t\tdepsArray.forEach((key$1, index) => {\n\t\t\tif (index >= depsIndex) {\n\t\t\t\tcurrent.delete(key$1);\n\t\t\t\tsetRefs(key$1, false);\n\t\t\t}\n\t\t});\n\t\tdeps.clear();\n\t}\n\tfunction updateRefs(e, value) {\n\t\tvar _e$key, _e$code;\n\t\tconst key = (_e$key = e.key) === null || _e$key === void 0 ? void 0 : _e$key.toLowerCase();\n\t\tconst values = [(_e$code = e.code) === null || _e$code === void 0 ? void 0 : _e$code.toLowerCase(), key].filter(Boolean);\n\t\tif (key === \"\") return;\n\t\tif (key) if (value) current.add(key);\n\t\telse current.delete(key);\n\t\tfor (const key$1 of values) {\n\t\t\tusedKeys.add(key$1);\n\t\t\tsetRefs(key$1, value);\n\t\t}\n\t\tupdateDeps(value, e, [...current, ...values]);\n\t\tclearDeps(value, key);\n\t\tif (key === \"meta\" && !value) {\n\t\t\tmetaDeps.forEach((key$1) => {\n\t\t\t\tcurrent.delete(key$1);\n\t\t\t\tsetRefs(key$1, false);\n\t\t\t});\n\t\t\tmetaDeps.clear();\n\t\t}\n\t}\n\tuseEventListener(target, \"keydown\", (e) => {\n\t\tupdateRefs(e, true);\n\t\treturn onEventFired(e);\n\t}, { passive });\n\tuseEventListener(target, \"keyup\", (e) => {\n\t\tupdateRefs(e, false);\n\t\treturn onEventFired(e);\n\t}, { passive });\n\tuseEventListener(\"blur\", reset, { passive });\n\tuseEventListener(\"focus\", reset, { passive });\n\tconst proxy = new Proxy(refs, { get(target$1, prop, rec) {\n\t\tif (typeof prop !== \"string\") return Reflect.get(target$1, prop, rec);\n\t\tprop = prop.toLowerCase();\n\t\tif (prop in aliasMap) prop = aliasMap[prop];\n\t\tif (!(prop in refs)) if (/[+_-]/.test(prop)) {\n\t\t\tconst keys$1 = prop.split(/[+_-]/g).map((i) => i.trim());\n\t\t\trefs[prop] = computed(() => keys$1.map((key) => toValue(proxy[key])).every(Boolean));\n\t\t} else refs[prop] = shallowRef(false);\n\t\tconst r = Reflect.get(target$1, prop, rec);\n\t\treturn useReactive ? toValue(r) : r;\n\t} });\n\treturn proxy;\n}\n\n//#endregion\n//#region useMediaControls/index.ts\n/**\n* Automatically check if the ref exists and if it does run the cb fn\n*/\nfunction usingElRef(source, cb) {\n\tif (toValue(source)) cb(toValue(source));\n}\n/**\n* Converts a TimeRange object to an array\n*/\nfunction timeRangeToArray(timeRanges) {\n\tlet ranges = [];\n\tfor (let i = 0; i < timeRanges.length; ++i) ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n\treturn ranges;\n}\n/**\n* Converts a TextTrackList object to an array of `UseMediaTextTrack`\n*/\nfunction tracksToArray(tracks) {\n\treturn Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({\n\t\tid,\n\t\tlabel,\n\t\tkind,\n\t\tlanguage,\n\t\tmode,\n\t\tactiveCues,\n\t\tcues,\n\t\tinBandMetadataTrackDispatchType\n\t}));\n}\nconst defaultOptions = {\n\tsrc: \"\",\n\ttracks: []\n};\nfunction useMediaControls(target, options = {}) {\n\ttarget = toRef(target);\n\toptions = {\n\t\t...defaultOptions,\n\t\t...options\n\t};\n\tconst { document: document$1 = defaultDocument } = options;\n\tconst listenerOptions = { passive: true };\n\tconst currentTime = shallowRef(0);\n\tconst duration = shallowRef(0);\n\tconst seeking = shallowRef(false);\n\tconst volume = shallowRef(1);\n\tconst waiting = shallowRef(false);\n\tconst ended = shallowRef(false);\n\tconst playing = shallowRef(false);\n\tconst rate = shallowRef(1);\n\tconst stalled = shallowRef(false);\n\tconst buffered = ref([]);\n\tconst tracks = ref([]);\n\tconst selectedTrack = shallowRef(-1);\n\tconst isPictureInPicture = shallowRef(false);\n\tconst muted = shallowRef(false);\n\tconst supportsPictureInPicture = document$1 && \"pictureInPictureEnabled\" in document$1;\n\tconst sourceErrorEvent = createEventHook();\n\tconst playbackErrorEvent = createEventHook();\n\t/**\n\t* Disables the specified track. If no track is specified then\n\t* all tracks will be disabled\n\t*\n\t* @param track The id of the track to disable\n\t*/\n\tconst disableTrack = (track) => {\n\t\tusingElRef(target, (el) => {\n\t\t\tif (track) {\n\t\t\t\tconst id = typeof track === \"number\" ? track : track.id;\n\t\t\t\tel.textTracks[id].mode = \"disabled\";\n\t\t\t} else for (let i = 0; i < el.textTracks.length; ++i) el.textTracks[i].mode = \"disabled\";\n\t\t\tselectedTrack.value = -1;\n\t\t});\n\t};\n\t/**\n\t* Enables the specified track and disables the\n\t* other tracks unless otherwise specified\n\t*\n\t* @param track The track of the id of the track to enable\n\t* @param disableTracks Disable all other tracks\n\t*/\n\tconst enableTrack = (track, disableTracks = true) => {\n\t\tusingElRef(target, (el) => {\n\t\t\tconst id = typeof track === \"number\" ? track : track.id;\n\t\t\tif (disableTracks) disableTrack();\n\t\t\tel.textTracks[id].mode = \"showing\";\n\t\t\tselectedTrack.value = id;\n\t\t});\n\t};\n\t/**\n\t* Toggle picture in picture mode for the player.\n\t*/\n\tconst togglePictureInPicture = () => {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tusingElRef(target, async (el) => {\n\t\t\t\tif (supportsPictureInPicture) if (!isPictureInPicture.value) el.requestPictureInPicture().then(resolve).catch(reject);\n\t\t\t\telse document$1.exitPictureInPicture().then(resolve).catch(reject);\n\t\t\t});\n\t\t});\n\t};\n\t/**\n\t* This will automatically inject sources to the media element. The sources will be\n\t* appended as children to the media element as `<source>` elements.\n\t*/\n\twatchEffect(() => {\n\t\tif (!document$1) return;\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tconst src = toValue(options.src);\n\t\tlet sources = [];\n\t\tif (!src) return;\n\t\tif (typeof src === \"string\") sources = [{ src }];\n\t\telse if (Array.isArray(src)) sources = src;\n\t\telse if (isObject(src)) sources = [src];\n\t\tel.querySelectorAll(\"source\").forEach((e) => {\n\t\t\te.remove();\n\t\t});\n\t\tsources.forEach(({ src: src$1, type, media }) => {\n\t\t\tconst source = document$1.createElement(\"source\");\n\t\t\tsource.setAttribute(\"src\", src$1);\n\t\t\tsource.setAttribute(\"type\", type || \"\");\n\t\t\tsource.setAttribute(\"media\", media || \"\");\n\t\t\tuseEventListener(source, \"error\", sourceErrorEvent.trigger, listenerOptions);\n\t\t\tel.appendChild(source);\n\t\t});\n\t\tel.load();\n\t});\n\t/**\n\t* Apply composable state to the element, also when element is changed\n\t*/\n\twatch([target, volume], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.volume = volume.value;\n\t});\n\twatch([target, muted], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.muted = muted.value;\n\t});\n\twatch([target, rate], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.playbackRate = rate.value;\n\t});\n\t/**\n\t* Load Tracks\n\t*/\n\twatchEffect(() => {\n\t\tif (!document$1) return;\n\t\tconst textTracks = toValue(options.tracks);\n\t\tconst el = toValue(target);\n\t\tif (!textTracks || !textTracks.length || !el) return;\n\t\t/**\n\t\t* The MediaAPI provides an API for adding text tracks, but they don't currently\n\t\t* have an API for removing text tracks, so instead we will just create and remove\n\t\t* the tracks manually using the HTML api.\n\t\t*/\n\t\tel.querySelectorAll(\"track\").forEach((e) => e.remove());\n\t\ttextTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n\t\t\tconst track = document$1.createElement(\"track\");\n\t\t\ttrack.default = isDefault || false;\n\t\t\ttrack.kind = kind;\n\t\t\ttrack.label = label;\n\t\t\ttrack.src = src;\n\t\t\ttrack.srclang = srcLang;\n\t\t\tif (track.default) selectedTrack.value = i;\n\t\t\tel.appendChild(track);\n\t\t});\n\t});\n\t/**\n\t* This will allow us to update the current time from the timeupdate event\n\t* without setting the medias current position, but if the user changes the\n\t* current time via the ref, then the media will seek.\n\t*\n\t* If we did not use an ignorable watch, then the current time update from\n\t* the timeupdate event would cause the media to stutter.\n\t*/\n\tconst { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.currentTime = time;\n\t});\n\t/**\n\t* Using an ignorable watch so we can control the play state using a ref and not\n\t* a function\n\t*/\n\tconst { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tif (isPlaying) el.play().catch((e) => {\n\t\t\tplaybackErrorEvent.trigger(e);\n\t\t\tthrow e;\n\t\t});\n\t\telse el.pause();\n\t});\n\tuseEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime), listenerOptions);\n\tuseEventListener(target, \"durationchange\", () => duration.value = toValue(target).duration, listenerOptions);\n\tuseEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(toValue(target).buffered), listenerOptions);\n\tuseEventListener(target, \"seeking\", () => seeking.value = true, listenerOptions);\n\tuseEventListener(target, \"seeked\", () => seeking.value = false, listenerOptions);\n\tuseEventListener(target, [\"waiting\", \"loadstart\"], () => {\n\t\twaiting.value = true;\n\t\tignorePlayingUpdates(() => playing.value = false);\n\t}, listenerOptions);\n\tuseEventListener(target, \"loadeddata\", () => waiting.value = false, listenerOptions);\n\tuseEventListener(target, \"playing\", () => {\n\t\twaiting.value = false;\n\t\tended.value = false;\n\t\tignorePlayingUpdates(() => playing.value = true);\n\t}, listenerOptions);\n\tuseEventListener(target, \"ratechange\", () => rate.value = toValue(target).playbackRate, listenerOptions);\n\tuseEventListener(target, \"stalled\", () => stalled.value = true, listenerOptions);\n\tuseEventListener(target, \"ended\", () => ended.value = true, listenerOptions);\n\tuseEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false), listenerOptions);\n\tuseEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true), listenerOptions);\n\tuseEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true, listenerOptions);\n\tuseEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false, listenerOptions);\n\tuseEventListener(target, \"volumechange\", () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tvolume.value = el.volume;\n\t\tmuted.value = el.muted;\n\t}, listenerOptions);\n\t/**\n\t* The following listeners need to listen to a nested\n\t* object on the target, so we will have to use a nested\n\t* watch and manually remove the listeners\n\t*/\n\tconst listeners = [];\n\tconst stop = watch([target], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tstop();\n\t\tlisteners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t\tlisteners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t\tlisteners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t});\n\ttryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n\treturn {\n\t\tcurrentTime,\n\t\tduration,\n\t\twaiting,\n\t\tseeking,\n\t\tended,\n\t\tstalled,\n\t\tbuffered,\n\t\tplaying,\n\t\trate,\n\t\tvolume,\n\t\tmuted,\n\t\ttracks,\n\t\tselectedTrack,\n\t\tenableTrack,\n\t\tdisableTrack,\n\t\tsupportsPictureInPicture,\n\t\ttogglePictureInPicture,\n\t\tisPictureInPicture,\n\t\tonSourceError: sourceErrorEvent.on,\n\t\tonPlaybackError: playbackErrorEvent.on\n\t};\n}\n\n//#endregion\n//#region useMemoize/index.ts\n/**\n* Reactive function result cache based on arguments\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMemoize(resolver, options) {\n\tconst initCache = () => {\n\t\tif (options === null || options === void 0 ? void 0 : options.cache) return shallowReactive(options.cache);\n\t\treturn shallowReactive(/* @__PURE__ */ new Map());\n\t};\n\tconst cache = initCache();\n\t/**\n\t* Generate key from args\n\t*/\n\tconst generateKey = (...args) => (options === null || options === void 0 ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n\t/**\n\t* Load data and save in cache\n\t*/\n\tconst _loadData = (key, ...args) => {\n\t\tcache.set(key, resolver(...args));\n\t\treturn cache.get(key);\n\t};\n\tconst loadData = (...args) => _loadData(generateKey(...args), ...args);\n\t/**\n\t* Delete key from cache\n\t*/\n\tconst deleteData = (...args) => {\n\t\tcache.delete(generateKey(...args));\n\t};\n\t/**\n\t* Clear cached data\n\t*/\n\tconst clearData = () => {\n\t\tcache.clear();\n\t};\n\tconst memoized = (...args) => {\n\t\tconst key = generateKey(...args);\n\t\tif (cache.has(key)) return cache.get(key);\n\t\treturn _loadData(key, ...args);\n\t};\n\tmemoized.load = loadData;\n\tmemoized.delete = deleteData;\n\tmemoized.clear = clearData;\n\tmemoized.generateKey = generateKey;\n\tmemoized.cache = cache;\n\treturn memoized;\n}\n\n//#endregion\n//#region useMemory/index.ts\n/**\n* Reactive Memory Info.\n*\n* @see https://vueuse.org/useMemory\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMemory(options = {}) {\n\tconst memory = ref();\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n\tif (isSupported.value) {\n\t\tconst { interval = 1e3 } = options;\n\t\tuseIntervalFn(() => {\n\t\t\tmemory.value = performance.memory;\n\t\t}, interval, {\n\t\t\timmediate: options.immediate,\n\t\t\timmediateCallback: options.immediateCallback\n\t\t});\n\t}\n\treturn {\n\t\tisSupported,\n\t\tmemory\n\t};\n}\n\n//#endregion\n//#region useMouse/index.ts\nconst UseMouseBuiltinExtractors = {\n\tpage: (event) => [event.pageX, event.pageY],\n\tclient: (event) => [event.clientX, event.clientY],\n\tscreen: (event) => [event.screenX, event.screenY],\n\tmovement: (event) => event instanceof MouseEvent ? [event.movementX, event.movementY] : null\n};\n/**\n* Reactive mouse position.\n*\n* @see https://vueuse.org/useMouse\n* @param options\n*/\nfunction useMouse(options = {}) {\n\tconst { type = \"page\", touch = true, resetOnTouchEnds = false, initialValue = {\n\t\tx: 0,\n\t\ty: 0\n\t}, window: window$1 = defaultWindow, target = window$1, scroll = true, eventFilter } = options;\n\tlet _prevMouseEvent = null;\n\tlet _prevScrollX = 0;\n\tlet _prevScrollY = 0;\n\tconst x = shallowRef(initialValue.x);\n\tconst y = shallowRef(initialValue.y);\n\tconst sourceType = shallowRef(null);\n\tconst extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n\tconst mouseHandler = (event) => {\n\t\tconst result = extractor(event);\n\t\t_prevMouseEvent = event;\n\t\tif (result) {\n\t\t\t[x.value, y.value] = result;\n\t\t\tsourceType.value = \"mouse\";\n\t\t}\n\t\tif (window$1) {\n\t\t\t_prevScrollX = window$1.scrollX;\n\t\t\t_prevScrollY = window$1.scrollY;\n\t\t}\n\t};\n\tconst touchHandler = (event) => {\n\t\tif (event.touches.length > 0) {\n\t\t\tconst result = extractor(event.touches[0]);\n\t\t\tif (result) {\n\t\t\t\t[x.value, y.value] = result;\n\t\t\t\tsourceType.value = \"touch\";\n\t\t\t}\n\t\t}\n\t};\n\tconst scrollHandler = () => {\n\t\tif (!_prevMouseEvent || !window$1) return;\n\t\tconst pos = extractor(_prevMouseEvent);\n\t\tif (_prevMouseEvent instanceof MouseEvent && pos) {\n\t\t\tx.value = pos[0] + window$1.scrollX - _prevScrollX;\n\t\t\ty.value = pos[1] + window$1.scrollY - _prevScrollY;\n\t\t}\n\t};\n\tconst reset = () => {\n\t\tx.value = initialValue.x;\n\t\ty.value = initialValue.y;\n\t};\n\tconst mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n\tconst touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n\tconst scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n\tif (target) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n\t\tif (touch && type !== \"movement\") {\n\t\t\tuseEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n\t\t\tif (resetOnTouchEnds) useEventListener(target, \"touchend\", reset, listenerOptions);\n\t\t}\n\t\tif (scroll && type === \"page\") useEventListener(window$1, \"scroll\", scrollHandlerWrapper, listenerOptions);\n\t}\n\treturn {\n\t\tx,\n\t\ty,\n\t\tsourceType\n\t};\n}\n\n//#endregion\n//#region useMouseInElement/index.ts\n/**\n* Reactive mouse position related to an element.\n*\n* @see https://vueuse.org/useMouseInElement\n* @param target\n* @param options\n*/\nfunction useMouseInElement(target, options = {}) {\n\tconst { windowResize = true, windowScroll = true, handleOutside = true, window: window$1 = defaultWindow } = options;\n\tconst type = options.type || \"page\";\n\tconst { x, y, sourceType } = useMouse(options);\n\tconst targetRef = shallowRef(target !== null && target !== void 0 ? target : window$1 === null || window$1 === void 0 ? void 0 : window$1.document.body);\n\tconst elementX = shallowRef(0);\n\tconst elementY = shallowRef(0);\n\tconst elementPositionX = shallowRef(0);\n\tconst elementPositionY = shallowRef(0);\n\tconst elementHeight = shallowRef(0);\n\tconst elementWidth = shallowRef(0);\n\tconst isOutside = shallowRef(true);\n\tfunction update() {\n\t\tif (!window$1) return;\n\t\tconst el = unrefElement(targetRef);\n\t\tif (!el || !(el instanceof Element)) return;\n\t\tfor (const rect of el.getClientRects()) {\n\t\t\tconst { left, top, width, height } = rect;\n\t\t\telementPositionX.value = left + (type === \"page\" ? window$1.pageXOffset : 0);\n\t\t\telementPositionY.value = top + (type === \"page\" ? window$1.pageYOffset : 0);\n\t\t\telementHeight.value = height;\n\t\t\telementWidth.value = width;\n\t\t\tconst elX = x.value - elementPositionX.value;\n\t\t\tconst elY = y.value - elementPositionY.value;\n\t\t\tisOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n\t\t\tif (handleOutside || !isOutside.value) {\n\t\t\t\telementX.value = elX;\n\t\t\t\telementY.value = elY;\n\t\t\t}\n\t\t\tif (!isOutside.value) break;\n\t\t}\n\t}\n\tconst stopFnList = [];\n\tfunction stop() {\n\t\tstopFnList.forEach((fn) => fn());\n\t\tstopFnList.length = 0;\n\t}\n\ttryOnMounted(() => {\n\t\tupdate();\n\t});\n\tif (window$1) {\n\t\tconst { stop: stopResizeObserver } = useResizeObserver(targetRef, update);\n\t\tconst { stop: stopMutationObserver } = useMutationObserver(targetRef, update, { attributeFilter: [\"style\", \"class\"] });\n\t\tconst stopWatch = watch([\n\t\t\ttargetRef,\n\t\t\tx,\n\t\t\ty\n\t\t], update);\n\t\tstopFnList.push(stopResizeObserver, stopMutationObserver, stopWatch);\n\t\tuseEventListener(document, \"mouseleave\", () => isOutside.value = true, { passive: true });\n\t\tif (windowScroll) stopFnList.push(useEventListener(\"scroll\", update, {\n\t\t\tcapture: true,\n\t\t\tpassive: true\n\t\t}));\n\t\tif (windowResize) stopFnList.push(useEventListener(\"resize\", update, { passive: true }));\n\t}\n\treturn {\n\t\tx,\n\t\ty,\n\t\tsourceType,\n\t\telementX,\n\t\telementY,\n\t\telementPositionX,\n\t\telementPositionY,\n\t\telementHeight,\n\t\telementWidth,\n\t\tisOutside,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useMousePressed/index.ts\n/**\n* Reactive mouse pressing state.\n*\n* @see https://vueuse.org/useMousePressed\n* @param options\n*/\nfunction useMousePressed(options = {}) {\n\tconst { touch = true, drag = true, capture = false, initialValue = false, window: window$1 = defaultWindow } = options;\n\tconst pressed = shallowRef(initialValue);\n\tconst sourceType = shallowRef(null);\n\tif (!window$1) return {\n\t\tpressed,\n\t\tsourceType\n\t};\n\tconst onPressed = (srcType) => (event) => {\n\t\tvar _options$onPressed;\n\t\tpressed.value = true;\n\t\tsourceType.value = srcType;\n\t\t(_options$onPressed = options.onPressed) === null || _options$onPressed === void 0 || _options$onPressed.call(options, event);\n\t};\n\tconst onReleased = (event) => {\n\t\tvar _options$onReleased;\n\t\tpressed.value = false;\n\t\tsourceType.value = null;\n\t\t(_options$onReleased = options.onReleased) === null || _options$onReleased === void 0 || _options$onReleased.call(options, event);\n\t};\n\tconst target = computed(() => unrefElement(options.target) || window$1);\n\tconst listenerOptions = {\n\t\tpassive: true,\n\t\tcapture\n\t};\n\tuseEventListener(target, \"mousedown\", onPressed(\"mouse\"), listenerOptions);\n\tuseEventListener(window$1, \"mouseleave\", onReleased, listenerOptions);\n\tuseEventListener(window$1, \"mouseup\", onReleased, listenerOptions);\n\tif (drag) {\n\t\tuseEventListener(target, \"dragstart\", onPressed(\"mouse\"), listenerOptions);\n\t\tuseEventListener(window$1, \"drop\", onReleased, listenerOptions);\n\t\tuseEventListener(window$1, \"dragend\", onReleased, listenerOptions);\n\t}\n\tif (touch) {\n\t\tuseEventListener(target, \"touchstart\", onPressed(\"touch\"), listenerOptions);\n\t\tuseEventListener(window$1, \"touchend\", onReleased, listenerOptions);\n\t\tuseEventListener(window$1, \"touchcancel\", onReleased, listenerOptions);\n\t}\n\treturn {\n\t\tpressed,\n\t\tsourceType\n\t};\n}\n\n//#endregion\n//#region useNavigatorLanguage/index.ts\n/**\n*\n* Reactive useNavigatorLanguage\n*\n* Detects the currently selected user language and returns a reactive language\n* @see https://vueuse.org/useNavigatorLanguage\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNavigatorLanguage(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst navigator$1 = window$1 === null || window$1 === void 0 ? void 0 : window$1.navigator;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"language\" in navigator$1);\n\tconst language = shallowRef(navigator$1 === null || navigator$1 === void 0 ? void 0 : navigator$1.language);\n\tuseEventListener(window$1, \"languagechange\", () => {\n\t\tif (navigator$1) language.value = navigator$1.language;\n\t}, { passive: true });\n\treturn {\n\t\tisSupported,\n\t\tlanguage\n\t};\n}\n\n//#endregion\n//#region useNetwork/index.ts\n/**\n* Reactive Network status.\n*\n* @see https://vueuse.org/useNetwork\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNetwork(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst navigator$1 = window$1 === null || window$1 === void 0 ? void 0 : window$1.navigator;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"connection\" in navigator$1);\n\tconst isOnline = shallowRef(true);\n\tconst saveData = shallowRef(false);\n\tconst offlineAt = shallowRef(void 0);\n\tconst onlineAt = shallowRef(void 0);\n\tconst downlink = shallowRef(void 0);\n\tconst downlinkMax = shallowRef(void 0);\n\tconst rtt = shallowRef(void 0);\n\tconst effectiveType = shallowRef(void 0);\n\tconst type = shallowRef(\"unknown\");\n\tconst connection = isSupported.value && navigator$1.connection;\n\tfunction updateNetworkInformation() {\n\t\tif (!navigator$1) return;\n\t\tisOnline.value = navigator$1.onLine;\n\t\tofflineAt.value = isOnline.value ? void 0 : Date.now();\n\t\tonlineAt.value = isOnline.value ? Date.now() : void 0;\n\t\tif (connection) {\n\t\t\tdownlink.value = connection.downlink;\n\t\t\tdownlinkMax.value = connection.downlinkMax;\n\t\t\teffectiveType.value = connection.effectiveType;\n\t\t\trtt.value = connection.rtt;\n\t\t\tsaveData.value = connection.saveData;\n\t\t\ttype.value = connection.type;\n\t\t}\n\t}\n\tconst listenerOptions = { passive: true };\n\tif (window$1) {\n\t\tuseEventListener(window$1, \"offline\", () => {\n\t\t\tisOnline.value = false;\n\t\t\tofflineAt.value = Date.now();\n\t\t}, listenerOptions);\n\t\tuseEventListener(window$1, \"online\", () => {\n\t\t\tisOnline.value = true;\n\t\t\tonlineAt.value = Date.now();\n\t\t}, listenerOptions);\n\t}\n\tif (connection) useEventListener(connection, \"change\", updateNetworkInformation, listenerOptions);\n\tupdateNetworkInformation();\n\treturn {\n\t\tisSupported,\n\t\tisOnline: readonly(isOnline),\n\t\tsaveData: readonly(saveData),\n\t\tofflineAt: readonly(offlineAt),\n\t\tonlineAt: readonly(onlineAt),\n\t\tdownlink: readonly(downlink),\n\t\tdownlinkMax: readonly(downlinkMax),\n\t\teffectiveType: readonly(effectiveType),\n\t\trtt: readonly(rtt),\n\t\ttype: readonly(type)\n\t};\n}\n\n//#endregion\n//#region useNow/index.ts\n/**\n* Reactive current Date instance.\n*\n* @see https://vueuse.org/useNow\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNow(options = {}) {\n\tconst { controls: exposeControls = false, interval = \"requestAnimationFrame\", immediate = true } = options;\n\tconst now = ref(/* @__PURE__ */ new Date());\n\tconst update = () => now.value = /* @__PURE__ */ new Date();\n\tconst controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate }) : useIntervalFn(update, interval, { immediate });\n\tif (exposeControls) return {\n\t\tnow,\n\t\t...controls\n\t};\n\telse return now;\n}\n\n//#endregion\n//#region useObjectUrl/index.ts\n/**\n* Reactive URL representing an object.\n*\n* @see https://vueuse.org/useObjectUrl\n* @param object\n*/\nfunction useObjectUrl(object) {\n\tconst url = shallowRef();\n\tconst release = () => {\n\t\tif (url.value) URL.revokeObjectURL(url.value);\n\t\turl.value = void 0;\n\t};\n\twatch(() => toValue(object), (newObject) => {\n\t\trelease();\n\t\tif (newObject) url.value = URL.createObjectURL(newObject);\n\t}, { immediate: true });\n\ttryOnScopeDispose(release);\n\treturn readonly(url);\n}\n\n//#endregion\n//#region ../math/useClamp/index.ts\n/**\n* Reactively clamp a value between two other values.\n*\n* @see https://vueuse.org/useClamp\n* @param value number\n* @param min\n* @param max\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useClamp(value, min, max) {\n\tif (typeof value === \"function\" || isReadonly(value)) return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n\tconst _value = ref(value);\n\treturn computed({\n\t\tget() {\n\t\t\treturn _value.value = clamp(_value.value, toValue(min), toValue(max));\n\t\t},\n\t\tset(value$1) {\n\t\t\t_value.value = clamp(value$1, toValue(min), toValue(max));\n\t\t}\n\t});\n}\n\n//#endregion\n//#region useOffsetPagination/index.ts\nfunction useOffsetPagination(options) {\n\tconst { total = Number.POSITIVE_INFINITY, pageSize = 10, page = 1, onPageChange = noop, onPageSizeChange = noop, onPageCountChange = noop } = options;\n\tconst currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n\tconst pageCount = computed(() => Math.max(1, Math.ceil(toValue(total) / toValue(currentPageSize))));\n\tconst currentPage = useClamp(page, 1, pageCount);\n\tconst isFirstPage = computed(() => currentPage.value === 1);\n\tconst isLastPage = computed(() => currentPage.value === pageCount.value);\n\tif (isRef(page)) syncRef(page, currentPage, { direction: isReadonly(page) ? \"ltr\" : \"both\" });\n\tif (isRef(pageSize)) syncRef(pageSize, currentPageSize, { direction: isReadonly(pageSize) ? \"ltr\" : \"both\" });\n\tfunction prev() {\n\t\tcurrentPage.value--;\n\t}\n\tfunction next() {\n\t\tcurrentPage.value++;\n\t}\n\tconst returnValue = {\n\t\tcurrentPage,\n\t\tcurrentPageSize,\n\t\tpageCount,\n\t\tisFirstPage,\n\t\tisLastPage,\n\t\tprev,\n\t\tnext\n\t};\n\twatch(currentPage, () => {\n\t\tonPageChange(reactive(returnValue));\n\t});\n\twatch(currentPageSize, () => {\n\t\tonPageSizeChange(reactive(returnValue));\n\t});\n\twatch(pageCount, () => {\n\t\tonPageCountChange(reactive(returnValue));\n\t});\n\treturn returnValue;\n}\n\n//#endregion\n//#region useOnline/index.ts\n/**\n* Reactive online state.\n*\n* @see https://vueuse.org/useOnline\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useOnline(options = {}) {\n\tconst { isOnline } = useNetwork(options);\n\treturn isOnline;\n}\n\n//#endregion\n//#region usePageLeave/index.ts\n/**\n* Reactive state to show whether mouse leaves the page.\n*\n* @see https://vueuse.org/usePageLeave\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePageLeave(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst isLeft = shallowRef(false);\n\tconst handler = (event) => {\n\t\tif (!window$1) return;\n\t\tevent = event || window$1.event;\n\t\tisLeft.value = !(event.relatedTarget || event.toElement);\n\t};\n\tif (window$1) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(window$1, \"mouseout\", handler, listenerOptions);\n\t\tuseEventListener(window$1.document, \"mouseleave\", handler, listenerOptions);\n\t\tuseEventListener(window$1.document, \"mouseenter\", handler, listenerOptions);\n\t}\n\treturn isLeft;\n}\n\n//#endregion\n//#region useScreenOrientation/index.ts\n/**\n* Reactive screen orientation\n*\n* @see https://vueuse.org/useScreenOrientation\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useScreenOrientation(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"screen\" in window$1 && \"orientation\" in window$1.screen);\n\tconst screenOrientation = isSupported.value ? window$1.screen.orientation : {};\n\tconst orientation = ref(screenOrientation.type);\n\tconst angle = shallowRef(screenOrientation.angle || 0);\n\tif (isSupported.value) useEventListener(window$1, \"orientationchange\", () => {\n\t\torientation.value = screenOrientation.type;\n\t\tangle.value = screenOrientation.angle;\n\t}, { passive: true });\n\tconst lockOrientation = (type) => {\n\t\tif (isSupported.value && typeof screenOrientation.lock === \"function\") return screenOrientation.lock(type);\n\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Not supported\"));\n\t};\n\tconst unlockOrientation = () => {\n\t\tif (isSupported.value && typeof screenOrientation.unlock === \"function\") screenOrientation.unlock();\n\t};\n\treturn {\n\t\tisSupported,\n\t\torientation,\n\t\tangle,\n\t\tlockOrientation,\n\t\tunlockOrientation\n\t};\n}\n\n//#endregion\n//#region useParallax/index.ts\n/**\n* Create parallax effect easily. It uses `useDeviceOrientation` and fallback to `useMouse`\n* if orientation is not supported.\n*\n* @param target\n* @param options\n*/\nfunction useParallax(target, options = {}) {\n\tconst { deviceOrientationTiltAdjust = (i) => i, deviceOrientationRollAdjust = (i) => i, mouseTiltAdjust = (i) => i, mouseRollAdjust = (i) => i, window: window$1 = defaultWindow } = options;\n\tconst orientation = reactive(useDeviceOrientation({ window: window$1 }));\n\tconst screenOrientation = reactive(useScreenOrientation({ window: window$1 }));\n\tconst { elementX: x, elementY: y, elementWidth: width, elementHeight: height } = useMouseInElement(target, {\n\t\thandleOutside: false,\n\t\twindow: window$1\n\t});\n\tconst source = computed(() => {\n\t\tif (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0)) return \"deviceOrientation\";\n\t\treturn \"mouse\";\n\t});\n\treturn {\n\t\troll: computed(() => {\n\t\t\tif (source.value === \"deviceOrientation\") {\n\t\t\t\tlet value;\n\t\t\t\tswitch (screenOrientation.orientation) {\n\t\t\t\t\tcase \"landscape-primary\":\n\t\t\t\t\t\tvalue = orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"landscape-secondary\":\n\t\t\t\t\t\tvalue = -orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-primary\":\n\t\t\t\t\t\tvalue = -orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-secondary\":\n\t\t\t\t\t\tvalue = orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: value = -orientation.beta / 90;\n\t\t\t\t}\n\t\t\t\treturn deviceOrientationRollAdjust(value);\n\t\t\t} else return mouseRollAdjust(-(y.value - height.value / 2) / height.value);\n\t\t}),\n\t\ttilt: computed(() => {\n\t\t\tif (source.value === \"deviceOrientation\") {\n\t\t\t\tlet value;\n\t\t\t\tswitch (screenOrientation.orientation) {\n\t\t\t\t\tcase \"landscape-primary\":\n\t\t\t\t\t\tvalue = orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"landscape-secondary\":\n\t\t\t\t\t\tvalue = -orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-primary\":\n\t\t\t\t\t\tvalue = orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-secondary\":\n\t\t\t\t\t\tvalue = -orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: value = orientation.gamma / 90;\n\t\t\t\t}\n\t\t\t\treturn deviceOrientationTiltAdjust(value);\n\t\t\t} else return mouseTiltAdjust((x.value - width.value / 2) / width.value);\n\t\t}),\n\t\tsource\n\t};\n}\n\n//#endregion\n//#region useParentElement/index.ts\nfunction useParentElement(element = useCurrentElement()) {\n\tconst parentElement = shallowRef();\n\tconst update = () => {\n\t\tconst el = unrefElement(element);\n\t\tif (el) parentElement.value = el.parentElement;\n\t};\n\ttryOnMounted(update);\n\twatch(() => toValue(element), update);\n\treturn parentElement;\n}\n\n//#endregion\n//#region usePerformanceObserver/index.ts\n/**\n* Observe performance metrics.\n*\n* @see https://vueuse.org/usePerformanceObserver\n* @param options\n*/\nfunction usePerformanceObserver(options, callback) {\n\tconst { window: window$1 = defaultWindow, immediate = true,...performanceOptions } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"PerformanceObserver\" in window$1);\n\tlet observer;\n\tconst stop = () => {\n\t\tobserver === null || observer === void 0 || observer.disconnect();\n\t};\n\tconst start = () => {\n\t\tif (isSupported.value) {\n\t\t\tstop();\n\t\t\tobserver = new PerformanceObserver(callback);\n\t\t\tobserver.observe(performanceOptions);\n\t\t}\n\t};\n\ttryOnScopeDispose(stop);\n\tif (immediate) start();\n\treturn {\n\t\tisSupported,\n\t\tstart,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region usePointer/index.ts\nconst defaultState = {\n\tx: 0,\n\ty: 0,\n\tpointerId: 0,\n\tpressure: 0,\n\ttiltX: 0,\n\ttiltY: 0,\n\twidth: 0,\n\theight: 0,\n\ttwist: 0,\n\tpointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\n/**\n* Reactive pointer state.\n*\n* @see https://vueuse.org/usePointer\n* @param options\n*/\nfunction usePointer(options = {}) {\n\tconst { target = defaultWindow } = options;\n\tconst isInside = shallowRef(false);\n\tconst state = shallowRef(options.initialValue || {});\n\tObject.assign(state.value, defaultState, state.value);\n\tconst handler = (event) => {\n\t\tisInside.value = true;\n\t\tif (options.pointerTypes && !options.pointerTypes.includes(event.pointerType)) return;\n\t\tstate.value = objectPick(event, keys, false);\n\t};\n\tif (target) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(target, [\n\t\t\t\"pointerdown\",\n\t\t\t\"pointermove\",\n\t\t\t\"pointerup\"\n\t\t], handler, listenerOptions);\n\t\tuseEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n\t}\n\treturn {\n\t\t...toRefs(state),\n\t\tisInside\n\t};\n}\n\n//#endregion\n//#region usePointerLock/index.ts\n/**\n* Reactive pointer lock.\n*\n* @see https://vueuse.org/usePointerLock\n* @param target\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePointerLock(target, options = {}) {\n\tconst { document: document$1 = defaultDocument } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => document$1 && \"pointerLockElement\" in document$1);\n\tconst element = shallowRef();\n\tconst triggerElement = shallowRef();\n\tlet targetElement;\n\tif (isSupported.value) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(document$1, \"pointerlockchange\", () => {\n\t\t\tvar _pointerLockElement;\n\t\t\tconst currentElement = (_pointerLockElement = document$1.pointerLockElement) !== null && _pointerLockElement !== void 0 ? _pointerLockElement : element.value;\n\t\t\tif (targetElement && currentElement === targetElement) {\n\t\t\t\telement.value = document$1.pointerLockElement;\n\t\t\t\tif (!element.value) targetElement = triggerElement.value = null;\n\t\t\t}\n\t\t}, listenerOptions);\n\t\tuseEventListener(document$1, \"pointerlockerror\", () => {\n\t\t\tvar _pointerLockElement2;\n\t\t\tconst currentElement = (_pointerLockElement2 = document$1.pointerLockElement) !== null && _pointerLockElement2 !== void 0 ? _pointerLockElement2 : element.value;\n\t\t\tif (targetElement && currentElement === targetElement) {\n\t\t\t\tconst action = document$1.pointerLockElement ? \"release\" : \"acquire\";\n\t\t\t\tthrow new Error(`Failed to ${action} pointer lock.`);\n\t\t\t}\n\t\t}, listenerOptions);\n\t}\n\tasync function lock(e) {\n\t\tvar _unrefElement;\n\t\tif (!isSupported.value) throw new Error(\"Pointer Lock API is not supported by your browser.\");\n\t\ttriggerElement.value = e instanceof Event ? e.currentTarget : null;\n\t\ttargetElement = e instanceof Event ? (_unrefElement = unrefElement(target)) !== null && _unrefElement !== void 0 ? _unrefElement : triggerElement.value : unrefElement(e);\n\t\tif (!targetElement) throw new Error(\"Target element undefined.\");\n\t\ttargetElement.requestPointerLock();\n\t\treturn await until(element).toBe(targetElement);\n\t}\n\tasync function unlock() {\n\t\tif (!element.value) return false;\n\t\tdocument$1.exitPointerLock();\n\t\tawait until(element).toBeNull();\n\t\treturn true;\n\t}\n\treturn {\n\t\tisSupported,\n\t\telement,\n\t\ttriggerElement,\n\t\tlock,\n\t\tunlock\n\t};\n}\n\n//#endregion\n//#region usePointerSwipe/index.ts\n/**\n* Reactive swipe detection based on PointerEvents.\n*\n* @see https://vueuse.org/usePointerSwipe\n* @param target\n* @param options\n*/\nfunction usePointerSwipe(target, options = {}) {\n\tconst targetRef = toRef(target);\n\tconst { threshold = 50, onSwipe, onSwipeEnd, onSwipeStart, disableTextSelect = false } = options;\n\tconst posStart = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst updatePosStart = (x, y) => {\n\t\tposStart.x = x;\n\t\tposStart.y = y;\n\t};\n\tconst posEnd = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst updatePosEnd = (x, y) => {\n\t\tposEnd.x = x;\n\t\tposEnd.y = y;\n\t};\n\tconst distanceX = computed(() => posStart.x - posEnd.x);\n\tconst distanceY = computed(() => posStart.y - posEnd.y);\n\tconst { max, abs } = Math;\n\tconst isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n\tconst isSwiping = shallowRef(false);\n\tconst isPointerDown = shallowRef(false);\n\tconst direction = computed(() => {\n\t\tif (!isThresholdExceeded.value) return \"none\";\n\t\tif (abs(distanceX.value) > abs(distanceY.value)) return distanceX.value > 0 ? \"left\" : \"right\";\n\t\telse return distanceY.value > 0 ? \"up\" : \"down\";\n\t});\n\tconst eventIsAllowed = (e) => {\n\t\tvar _ref, _options$pointerTypes, _options$pointerTypes2;\n\t\tconst isReleasingButton = e.buttons === 0;\n\t\tconst isPrimaryButton = e.buttons === 1;\n\t\treturn (_ref = (_options$pointerTypes = (_options$pointerTypes2 = options.pointerTypes) === null || _options$pointerTypes2 === void 0 ? void 0 : _options$pointerTypes2.includes(e.pointerType)) !== null && _options$pointerTypes !== void 0 ? _options$pointerTypes : isReleasingButton || isPrimaryButton) !== null && _ref !== void 0 ? _ref : true;\n\t};\n\tconst listenerOptions = { passive: true };\n\tconst stops = [\n\t\tuseEventListener(target, \"pointerdown\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tisPointerDown.value = true;\n\t\t\tconst eventTarget = e.target;\n\t\t\teventTarget === null || eventTarget === void 0 || eventTarget.setPointerCapture(e.pointerId);\n\t\t\tconst { clientX: x, clientY: y } = e;\n\t\t\tupdatePosStart(x, y);\n\t\t\tupdatePosEnd(x, y);\n\t\t\tonSwipeStart === null || onSwipeStart === void 0 || onSwipeStart(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, \"pointermove\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tif (!isPointerDown.value) return;\n\t\t\tconst { clientX: x, clientY: y } = e;\n\t\t\tupdatePosEnd(x, y);\n\t\t\tif (!isSwiping.value && isThresholdExceeded.value) isSwiping.value = true;\n\t\t\tif (isSwiping.value) onSwipe === null || onSwipe === void 0 || onSwipe(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, \"pointerup\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tif (isSwiping.value) onSwipeEnd === null || onSwipeEnd === void 0 || onSwipeEnd(e, direction.value);\n\t\t\tisPointerDown.value = false;\n\t\t\tisSwiping.value = false;\n\t\t}, listenerOptions)\n\t];\n\ttryOnMounted(() => {\n\t\tvar _targetRef$value;\n\t\t(_targetRef$value = targetRef.value) === null || _targetRef$value === void 0 || (_targetRef$value = _targetRef$value.style) === null || _targetRef$value === void 0 || _targetRef$value.setProperty(\"touch-action\", \"pan-y\");\n\t\tif (disableTextSelect) {\n\t\t\tvar _targetRef$value2, _targetRef$value3, _targetRef$value4;\n\t\t\t(_targetRef$value2 = targetRef.value) === null || _targetRef$value2 === void 0 || (_targetRef$value2 = _targetRef$value2.style) === null || _targetRef$value2 === void 0 || _targetRef$value2.setProperty(\"-webkit-user-select\", \"none\");\n\t\t\t(_targetRef$value3 = targetRef.value) === null || _targetRef$value3 === void 0 || (_targetRef$value3 = _targetRef$value3.style) === null || _targetRef$value3 === void 0 || _targetRef$value3.setProperty(\"-ms-user-select\", \"none\");\n\t\t\t(_targetRef$value4 = targetRef.value) === null || _targetRef$value4 === void 0 || (_targetRef$value4 = _targetRef$value4.style) === null || _targetRef$value4 === void 0 || _targetRef$value4.setProperty(\"user-select\", \"none\");\n\t\t}\n\t});\n\tconst stop = () => stops.forEach((s) => s());\n\treturn {\n\t\tisSwiping: readonly(isSwiping),\n\t\tdirection: readonly(direction),\n\t\tposStart: readonly(posStart),\n\t\tposEnd: readonly(posEnd),\n\t\tdistanceX,\n\t\tdistanceY,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region usePreferredColorScheme/index.ts\n/**\n* Reactive prefers-color-scheme media query.\n*\n* @see https://vueuse.org/usePreferredColorScheme\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredColorScheme(options) {\n\tconst isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n\tconst isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n\treturn computed(() => {\n\t\tif (isDark.value) return \"dark\";\n\t\tif (isLight.value) return \"light\";\n\t\treturn \"no-preference\";\n\t});\n}\n\n//#endregion\n//#region usePreferredContrast/index.ts\n/**\n* Reactive prefers-contrast media query.\n*\n* @see https://vueuse.org/usePreferredContrast\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredContrast(options) {\n\tconst isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n\tconst isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n\tconst isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n\treturn computed(() => {\n\t\tif (isMore.value) return \"more\";\n\t\tif (isLess.value) return \"less\";\n\t\tif (isCustom.value) return \"custom\";\n\t\treturn \"no-preference\";\n\t});\n}\n\n//#endregion\n//#region usePreferredLanguages/index.ts\n/**\n* Reactive Navigator Languages.\n*\n* @see https://vueuse.org/usePreferredLanguages\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredLanguages(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tif (!window$1) return shallowRef([\"en\"]);\n\tconst navigator$1 = window$1.navigator;\n\tconst value = shallowRef(navigator$1.languages);\n\tuseEventListener(window$1, \"languagechange\", () => {\n\t\tvalue.value = navigator$1.languages;\n\t}, { passive: true });\n\treturn value;\n}\n\n//#endregion\n//#region usePreferredReducedMotion/index.ts\n/**\n* Reactive prefers-reduced-motion media query.\n*\n* @see https://vueuse.org/usePreferredReducedMotion\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredReducedMotion(options) {\n\tconst isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n\treturn computed(() => {\n\t\tif (isReduced.value) return \"reduce\";\n\t\treturn \"no-preference\";\n\t});\n}\n\n//#endregion\n//#region usePreferredReducedTransparency/index.ts\n/**\n* Reactive prefers-reduced-transparency media query.\n*\n* @see https://vueuse.org/usePreferredReducedTransparency\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredReducedTransparency(options) {\n\tconst isReduced = useMediaQuery(\"(prefers-reduced-transparency: reduce)\", options);\n\treturn computed(() => {\n\t\tif (isReduced.value) return \"reduce\";\n\t\treturn \"no-preference\";\n\t});\n}\n\n//#endregion\n//#region usePrevious/index.ts\nfunction usePrevious(value, initialValue) {\n\tconst previous = shallowRef(initialValue);\n\twatch(toRef(value), (_, oldValue) => {\n\t\tprevious.value = oldValue;\n\t}, { flush: \"sync\" });\n\treturn readonly(previous);\n}\n\n//#endregion\n//#region useScreenSafeArea/index.ts\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\n/**\n* Reactive `env(safe-area-inset-*)`\n*\n* @see https://vueuse.org/useScreenSafeArea\n*/\nfunction useScreenSafeArea() {\n\tconst top = shallowRef(\"\");\n\tconst right = shallowRef(\"\");\n\tconst bottom = shallowRef(\"\");\n\tconst left = shallowRef(\"\");\n\tif (isClient) {\n\t\tconst topCssVar = useCssVar(topVarName);\n\t\tconst rightCssVar = useCssVar(rightVarName);\n\t\tconst bottomCssVar = useCssVar(bottomVarName);\n\t\tconst leftCssVar = useCssVar(leftVarName);\n\t\ttopCssVar.value = \"env(safe-area-inset-top, 0px)\";\n\t\trightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n\t\tbottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n\t\tleftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n\t\ttryOnMounted(update);\n\t\tuseEventListener(\"resize\", useDebounceFn(update), { passive: true });\n\t}\n\tfunction update() {\n\t\ttop.value = getValue(topVarName);\n\t\tright.value = getValue(rightVarName);\n\t\tbottom.value = getValue(bottomVarName);\n\t\tleft.value = getValue(leftVarName);\n\t}\n\treturn {\n\t\ttop,\n\t\tright,\n\t\tbottom,\n\t\tleft,\n\t\tupdate\n\t};\n}\nfunction getValue(position) {\n\treturn getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\n//#endregion\n//#region useScriptTag/index.ts\n/**\n* Async script tag loading.\n*\n* @see https://vueuse.org/useScriptTag\n* @param src\n* @param onLoaded\n* @param options\n*/\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n\tconst { immediate = true, manual = false, type = \"text/javascript\", async = true, crossOrigin, referrerPolicy, noModule, defer, document: document$1 = defaultDocument, attrs = {}, nonce = void 0 } = options;\n\tconst scriptTag = shallowRef(null);\n\tlet _promise = null;\n\t/**\n\t* Load the script specified via `src`.\n\t*\n\t* @param waitForScriptLoad Whether if the Promise should resolve once the \"load\" event is emitted by the <script> attribute, or right after appending it to the DOM.\n\t* @returns Promise<HTMLScriptElement>\n\t*/\n\tconst loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n\t\tconst resolveWithElement = (el$1) => {\n\t\t\tscriptTag.value = el$1;\n\t\t\tresolve(el$1);\n\t\t\treturn el$1;\n\t\t};\n\t\tif (!document$1) {\n\t\t\tresolve(false);\n\t\t\treturn;\n\t\t}\n\t\tlet shouldAppend = false;\n\t\tlet el = document$1.querySelector(`script[src=\"${toValue(src)}\"]`);\n\t\tif (!el) {\n\t\t\tel = document$1.createElement(\"script\");\n\t\t\tel.type = type;\n\t\t\tel.async = async;\n\t\t\tel.src = toValue(src);\n\t\t\tif (defer) el.defer = defer;\n\t\t\tif (crossOrigin) el.crossOrigin = crossOrigin;\n\t\t\tif (noModule) el.noModule = noModule;\n\t\t\tif (referrerPolicy) el.referrerPolicy = referrerPolicy;\n\t\t\tif (nonce) el.nonce = nonce;\n\t\t\tObject.entries(attrs).forEach(([name, value]) => el === null || el === void 0 ? void 0 : el.setAttribute(name, value));\n\t\t\tshouldAppend = true;\n\t\t} else if (el.hasAttribute(\"data-loaded\")) resolveWithElement(el);\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(el, \"error\", (event) => reject(event), listenerOptions);\n\t\tuseEventListener(el, \"abort\", (event) => reject(event), listenerOptions);\n\t\tuseEventListener(el, \"load\", () => {\n\t\t\tel.setAttribute(\"data-loaded\", \"true\");\n\t\t\tonLoaded(el);\n\t\t\tresolveWithElement(el);\n\t\t}, listenerOptions);\n\t\tif (shouldAppend) el = document$1.head.appendChild(el);\n\t\tif (!waitForScriptLoad) resolveWithElement(el);\n\t});\n\t/**\n\t* Exposed singleton wrapper for `loadScript`, avoiding calling it twice.\n\t*\n\t* @param waitForScriptLoad Whether if the Promise should resolve once the \"load\" event is emitted by the <script> attribute, or right after appending it to the DOM.\n\t* @returns Promise<HTMLScriptElement>\n\t*/\n\tconst load = (waitForScriptLoad = true) => {\n\t\tif (!_promise) _promise = loadScript(waitForScriptLoad);\n\t\treturn _promise;\n\t};\n\t/**\n\t* Unload the script specified by `src`.\n\t*/\n\tconst unload = () => {\n\t\tif (!document$1) return;\n\t\t_promise = null;\n\t\tif (scriptTag.value) scriptTag.value = null;\n\t\tconst el = document$1.querySelector(`script[src=\"${toValue(src)}\"]`);\n\t\tif (el) document$1.head.removeChild(el);\n\t};\n\tif (immediate && !manual) tryOnMounted(load);\n\tif (!manual) tryOnUnmounted(unload);\n\treturn {\n\t\tscriptTag,\n\t\tload,\n\t\tunload\n\t};\n}\n\n//#endregion\n//#region useScrollLock/index.ts\nfunction checkOverflowScroll(ele) {\n\tconst style = window.getComputedStyle(ele);\n\tif (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) return true;\n\telse {\n\t\tconst parent = ele.parentNode;\n\t\tif (!parent || parent.tagName === \"BODY\") return false;\n\t\treturn checkOverflowScroll(parent);\n\t}\n}\nfunction preventDefault(rawEvent) {\n\tconst e = rawEvent || window.event;\n\tconst _target = e.target;\n\tif (checkOverflowScroll(_target)) return false;\n\tif (e.touches.length > 1) return true;\n\tif (e.preventDefault) e.preventDefault();\n\treturn false;\n}\nconst elInitialOverflow = /* @__PURE__ */ new WeakMap();\n/**\n* Lock scrolling of the element.\n*\n* @see https://vueuse.org/useScrollLock\n* @param element\n*/\nfunction useScrollLock(element, initialState = false) {\n\tconst isLocked = shallowRef(initialState);\n\tlet stopTouchMoveListener = null;\n\tlet initialOverflow = \"\";\n\twatch(toRef(element), (el) => {\n\t\tconst target = resolveElement(toValue(el));\n\t\tif (target) {\n\t\t\tconst ele = target;\n\t\t\tif (!elInitialOverflow.get(ele)) elInitialOverflow.set(ele, ele.style.overflow);\n\t\t\tif (ele.style.overflow !== \"hidden\") initialOverflow = ele.style.overflow;\n\t\t\tif (ele.style.overflow === \"hidden\") return isLocked.value = true;\n\t\t\tif (isLocked.value) return ele.style.overflow = \"hidden\";\n\t\t}\n\t}, { immediate: true });\n\tconst lock = () => {\n\t\tconst el = resolveElement(toValue(element));\n\t\tif (!el || isLocked.value) return;\n\t\tif (isIOS) stopTouchMoveListener = useEventListener(el, \"touchmove\", (e) => {\n\t\t\tpreventDefault(e);\n\t\t}, { passive: false });\n\t\tel.style.overflow = \"hidden\";\n\t\tisLocked.value = true;\n\t};\n\tconst unlock = () => {\n\t\tconst el = resolveElement(toValue(element));\n\t\tif (!el || !isLocked.value) return;\n\t\tif (isIOS) stopTouchMoveListener === null || stopTouchMoveListener === void 0 || stopTouchMoveListener();\n\t\tel.style.overflow = initialOverflow;\n\t\telInitialOverflow.delete(el);\n\t\tisLocked.value = false;\n\t};\n\ttryOnScopeDispose(unlock);\n\treturn computed({\n\t\tget() {\n\t\t\treturn isLocked.value;\n\t\t},\n\t\tset(v) {\n\t\t\tif (v) lock();\n\t\t\telse unlock();\n\t\t}\n\t});\n}\n\n//#endregion\n//#region useSessionStorage/index.ts\n/**\n* Reactive SessionStorage.\n*\n* @see https://vueuse.org/useSessionStorage\n* @param key\n* @param initialValue\n* @param options\n*/\nfunction useSessionStorage(key, initialValue, options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\treturn useStorage(key, initialValue, window$1 === null || window$1 === void 0 ? void 0 : window$1.sessionStorage, options);\n}\n\n//#endregion\n//#region useShare/index.ts\n/**\n* Reactive Web Share API.\n*\n* @see https://vueuse.org/useShare\n* @param shareOptions\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useShare(shareOptions = {}, options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator } = options;\n\tconst _navigator = navigator$1;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => _navigator && \"canShare\" in _navigator);\n\tconst share = async (overrideOptions = {}) => {\n\t\tif (isSupported.value) {\n\t\t\tconst data = {\n\t\t\t\t...toValue(shareOptions),\n\t\t\t\t...toValue(overrideOptions)\n\t\t\t};\n\t\t\tlet granted = false;\n\t\t\tif (_navigator.canShare) granted = _navigator.canShare(data);\n\t\t\tif (granted) return _navigator.share(data);\n\t\t}\n\t};\n\treturn {\n\t\tisSupported,\n\t\tshare\n\t};\n}\n\n//#endregion\n//#region useSorted/index.ts\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n\tconst [source] = args;\n\tlet compareFn = defaultCompare;\n\tlet options = {};\n\tif (args.length === 2) if (typeof args[1] === \"object\") {\n\t\tvar _options$compareFn;\n\t\toptions = args[1];\n\t\tcompareFn = (_options$compareFn = options.compareFn) !== null && _options$compareFn !== void 0 ? _options$compareFn : defaultCompare;\n\t} else {\n\t\tvar _args$;\n\t\tcompareFn = (_args$ = args[1]) !== null && _args$ !== void 0 ? _args$ : defaultCompare;\n\t}\n\telse if (args.length > 2) {\n\t\tvar _args$2, _args$3;\n\t\tcompareFn = (_args$2 = args[1]) !== null && _args$2 !== void 0 ? _args$2 : defaultCompare;\n\t\toptions = (_args$3 = args[2]) !== null && _args$3 !== void 0 ? _args$3 : {};\n\t}\n\tconst { dirty = false, sortFn = defaultSortFn } = options;\n\tif (!dirty) return computed(() => sortFn([...toValue(source)], compareFn));\n\twatchEffect(() => {\n\t\tconst result = sortFn(toValue(source), compareFn);\n\t\tif (isRef(source)) source.value = result;\n\t\telse source.splice(0, source.length, ...result);\n\t});\n\treturn source;\n}\n\n//#endregion\n//#region useSpeechRecognition/index.ts\n/**\n* Reactive SpeechRecognition.\n*\n* @see https://vueuse.org/useSpeechRecognition\n* @see https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition SpeechRecognition\n* @param options\n*/\nfunction useSpeechRecognition(options = {}) {\n\tconst { interimResults = true, continuous = true, maxAlternatives = 1, window: window$1 = defaultWindow } = options;\n\tconst lang = toRef(options.lang || \"en-US\");\n\tconst isListening = shallowRef(false);\n\tconst isFinal = shallowRef(false);\n\tconst result = shallowRef(\"\");\n\tconst error = shallowRef(void 0);\n\tlet recognition;\n\tconst start = () => {\n\t\tisListening.value = true;\n\t};\n\tconst stop = () => {\n\t\tisListening.value = false;\n\t};\n\tconst toggle = (value = !isListening.value) => {\n\t\tif (value) start();\n\t\telse stop();\n\t};\n\tconst SpeechRecognition = window$1 && (window$1.SpeechRecognition || window$1.webkitSpeechRecognition);\n\tconst isSupported = /* @__PURE__ */ useSupported(() => SpeechRecognition);\n\tif (isSupported.value) {\n\t\trecognition = new SpeechRecognition();\n\t\trecognition.continuous = continuous;\n\t\trecognition.interimResults = interimResults;\n\t\trecognition.lang = toValue(lang);\n\t\trecognition.maxAlternatives = maxAlternatives;\n\t\trecognition.onstart = () => {\n\t\t\tisListening.value = true;\n\t\t\tisFinal.value = false;\n\t\t};\n\t\twatch(lang, (lang$1) => {\n\t\t\tif (recognition && !isListening.value) recognition.lang = lang$1;\n\t\t});\n\t\trecognition.onresult = (event) => {\n\t\t\tconst currentResult = event.results[event.resultIndex];\n\t\t\tconst { transcript } = currentResult[0];\n\t\t\tisFinal.value = currentResult.isFinal;\n\t\t\tresult.value = transcript;\n\t\t\terror.value = void 0;\n\t\t};\n\t\trecognition.onerror = (event) => {\n\t\t\terror.value = event;\n\t\t};\n\t\trecognition.onend = () => {\n\t\t\tisListening.value = false;\n\t\t\trecognition.lang = toValue(lang);\n\t\t};\n\t\twatch(isListening, (newValue, oldValue) => {\n\t\t\tif (newValue === oldValue) return;\n\t\t\ttry {\n\t\t\t\tif (newValue) recognition.start();\n\t\t\t\telse recognition.stop();\n\t\t\t} catch (err) {\n\t\t\t\terror.value = err;\n\t\t\t}\n\t\t});\n\t}\n\ttryOnScopeDispose(() => {\n\t\tstop();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tisListening,\n\t\tisFinal,\n\t\trecognition,\n\t\tresult,\n\t\terror,\n\t\ttoggle,\n\t\tstart,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useSpeechSynthesis/index.ts\n/**\n* Reactive SpeechSynthesis.\n*\n* @see https://vueuse.org/useSpeechSynthesis\n* @see https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis SpeechSynthesis\n*/\nfunction useSpeechSynthesis(text, options = {}) {\n\tconst { pitch = 1, rate = 1, volume = 1, window: window$1 = defaultWindow, onBoundary } = options;\n\tconst synth = window$1 && window$1.speechSynthesis;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => synth);\n\tconst isPlaying = shallowRef(false);\n\tconst status = shallowRef(\"init\");\n\tconst spokenText = toRef(text || \"\");\n\tconst lang = toRef(options.lang || \"en-US\");\n\tconst error = shallowRef(void 0);\n\tconst toggle = (value = !isPlaying.value) => {\n\t\tisPlaying.value = value;\n\t};\n\tconst bindEventsForUtterance = (utterance$1) => {\n\t\tutterance$1.lang = toValue(lang);\n\t\tutterance$1.voice = toValue(options.voice) || null;\n\t\tutterance$1.pitch = toValue(pitch);\n\t\tutterance$1.rate = toValue(rate);\n\t\tutterance$1.volume = toValue(volume);\n\t\tutterance$1.onstart = () => {\n\t\t\tisPlaying.value = true;\n\t\t\tstatus.value = \"play\";\n\t\t};\n\t\tutterance$1.onpause = () => {\n\t\t\tisPlaying.value = false;\n\t\t\tstatus.value = \"pause\";\n\t\t};\n\t\tutterance$1.onresume = () => {\n\t\t\tisPlaying.value = true;\n\t\t\tstatus.value = \"play\";\n\t\t};\n\t\tutterance$1.onend = () => {\n\t\t\tisPlaying.value = false;\n\t\t\tstatus.value = \"end\";\n\t\t};\n\t\tutterance$1.onerror = (event) => {\n\t\t\terror.value = event;\n\t\t};\n\t\tutterance$1.onboundary = (event) => {\n\t\t\tonBoundary === null || onBoundary === void 0 || onBoundary(event);\n\t\t};\n\t};\n\tconst utterance = computed(() => {\n\t\tisPlaying.value = false;\n\t\tstatus.value = \"init\";\n\t\tconst newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n\t\tbindEventsForUtterance(newUtterance);\n\t\treturn newUtterance;\n\t});\n\tconst speak = () => {\n\t\tsynth.cancel();\n\t\tif (utterance) synth.speak(utterance.value);\n\t};\n\tconst stop = () => {\n\t\tsynth.cancel();\n\t\tisPlaying.value = false;\n\t};\n\tif (isSupported.value) {\n\t\tbindEventsForUtterance(utterance.value);\n\t\twatch(lang, (lang$1) => {\n\t\t\tif (utterance.value && !isPlaying.value) utterance.value.lang = lang$1;\n\t\t});\n\t\tif (options.voice) watch(options.voice, () => {\n\t\t\tsynth.cancel();\n\t\t});\n\t\twatch(isPlaying, () => {\n\t\t\tif (isPlaying.value) synth.resume();\n\t\t\telse synth.pause();\n\t\t});\n\t}\n\ttryOnScopeDispose(() => {\n\t\tisPlaying.value = false;\n\t});\n\treturn {\n\t\tisSupported,\n\t\tisPlaying,\n\t\tstatus,\n\t\tutterance,\n\t\terror,\n\t\tstop,\n\t\ttoggle,\n\t\tspeak\n\t};\n}\n\n//#endregion\n//#region useStepper/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useStepper(steps, initialStep) {\n\tconst stepsRef = ref(steps);\n\tconst stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n\tconst index = ref(stepNames.value.indexOf(initialStep !== null && initialStep !== void 0 ? initialStep : stepNames.value[0]));\n\tconst current = computed(() => at(index.value));\n\tconst isFirst = computed(() => index.value === 0);\n\tconst isLast = computed(() => index.value === stepNames.value.length - 1);\n\tconst next = computed(() => stepNames.value[index.value + 1]);\n\tconst previous = computed(() => stepNames.value[index.value - 1]);\n\tfunction at(index$1) {\n\t\tif (Array.isArray(stepsRef.value)) return stepsRef.value[index$1];\n\t\treturn stepsRef.value[stepNames.value[index$1]];\n\t}\n\tfunction get(step) {\n\t\tif (!stepNames.value.includes(step)) return;\n\t\treturn at(stepNames.value.indexOf(step));\n\t}\n\tfunction goTo(step) {\n\t\tif (stepNames.value.includes(step)) index.value = stepNames.value.indexOf(step);\n\t}\n\tfunction goToNext() {\n\t\tif (isLast.value) return;\n\t\tindex.value++;\n\t}\n\tfunction goToPrevious() {\n\t\tif (isFirst.value) return;\n\t\tindex.value--;\n\t}\n\tfunction goBackTo(step) {\n\t\tif (isAfter(step)) goTo(step);\n\t}\n\tfunction isNext(step) {\n\t\treturn stepNames.value.indexOf(step) === index.value + 1;\n\t}\n\tfunction isPrevious(step) {\n\t\treturn stepNames.value.indexOf(step) === index.value - 1;\n\t}\n\tfunction isCurrent(step) {\n\t\treturn stepNames.value.indexOf(step) === index.value;\n\t}\n\tfunction isBefore(step) {\n\t\treturn index.value < stepNames.value.indexOf(step);\n\t}\n\tfunction isAfter(step) {\n\t\treturn index.value > stepNames.value.indexOf(step);\n\t}\n\treturn {\n\t\tsteps: stepsRef,\n\t\tstepNames,\n\t\tindex,\n\t\tcurrent,\n\t\tnext,\n\t\tprevious,\n\t\tisFirst,\n\t\tisLast,\n\t\tat,\n\t\tget,\n\t\tgoTo,\n\t\tgoToNext,\n\t\tgoToPrevious,\n\t\tgoBackTo,\n\t\tisNext,\n\t\tisPrevious,\n\t\tisCurrent,\n\t\tisBefore,\n\t\tisAfter\n\t};\n}\n\n//#endregion\n//#region useStorageAsync/index.ts\n/**\n* Reactive Storage in with async support.\n*\n* @see https://vueuse.org/useStorageAsync\n* @param key\n* @param initialValue\n* @param storage\n* @param options\n*/\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n\tvar _options$serializer;\n\tconst { flush = \"pre\", deep = true, listenToStorageChanges = true, writeDefaults = true, mergeDefaults = false, shallow, window: window$1 = defaultWindow, eventFilter, onError = (e) => {\n\t\tconsole.error(e);\n\t}, onReady } = options;\n\tconst rawInit = toValue(initialValue);\n\tconst type = guessSerializerType(rawInit);\n\tconst data = (shallow ? shallowRef : ref)(toValue(initialValue));\n\tconst serializer = (_options$serializer = options.serializer) !== null && _options$serializer !== void 0 ? _options$serializer : StorageSerializers[type];\n\tif (!storage) try {\n\t\tstorage = getSSRHandler(\"getDefaultStorageAsync\", () => defaultWindow === null || defaultWindow === void 0 ? void 0 : defaultWindow.localStorage)();\n\t} catch (e) {\n\t\tonError(e);\n\t}\n\tasync function read(event) {\n\t\tif (!storage || event && event.key !== key) return;\n\t\ttry {\n\t\t\tconst rawValue = event ? event.newValue : await storage.getItem(key);\n\t\t\tif (rawValue == null) {\n\t\t\t\tdata.value = rawInit;\n\t\t\t\tif (writeDefaults && rawInit !== null) await storage.setItem(key, await serializer.write(rawInit));\n\t\t\t} else if (mergeDefaults) {\n\t\t\t\tconst value = await serializer.read(rawValue);\n\t\t\t\tif (typeof mergeDefaults === \"function\") data.value = mergeDefaults(value, rawInit);\n\t\t\t\telse if (type === \"object\" && !Array.isArray(value)) data.value = {\n\t\t\t\t\t...rawInit,\n\t\t\t\t\t...value\n\t\t\t\t};\n\t\t\t\telse data.value = value;\n\t\t\t} else data.value = await serializer.read(rawValue);\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t}\n\tconst promise = new Promise((resolve) => {\n\t\tread().then(() => {\n\t\t\tonReady === null || onReady === void 0 || onReady(data.value);\n\t\t\tresolve(data);\n\t\t});\n\t});\n\tif (window$1 && listenToStorageChanges) useEventListener(window$1, \"storage\", (e) => Promise.resolve().then(() => read(e)), { passive: true });\n\tif (storage) watchWithFilter(data, async () => {\n\t\ttry {\n\t\t\tif (data.value == null) await storage.removeItem(key);\n\t\t\telse await storage.setItem(key, await serializer.write(data.value));\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t}, {\n\t\tflush,\n\t\tdeep,\n\t\teventFilter\n\t});\n\tObject.assign(data, {\n\t\tthen: promise.then.bind(promise),\n\t\tcatch: promise.catch.bind(promise)\n\t});\n\treturn data;\n}\n\n//#endregion\n//#region useStyleTag/index.ts\nlet _id = 0;\n/**\n* Inject <style> element in head.\n*\n* Overload: Omitted id\n*\n* @see https://vueuse.org/useStyleTag\n* @param css\n* @param options\n*/\nfunction useStyleTag(css, options = {}) {\n\tconst isLoaded = shallowRef(false);\n\tconst { document: document$1 = defaultDocument, immediate = true, manual = false, id = `vueuse_styletag_${++_id}` } = options;\n\tconst cssRef = shallowRef(css);\n\tlet stop = () => {};\n\tconst load = () => {\n\t\tif (!document$1) return;\n\t\tconst el = document$1.getElementById(id) || document$1.createElement(\"style\");\n\t\tif (!el.isConnected) {\n\t\t\tel.id = id;\n\t\t\tif (options.nonce) el.nonce = options.nonce;\n\t\t\tif (options.media) el.media = options.media;\n\t\t\tdocument$1.head.appendChild(el);\n\t\t}\n\t\tif (isLoaded.value) return;\n\t\tstop = watch(cssRef, (value) => {\n\t\t\tel.textContent = value;\n\t\t}, { immediate: true });\n\t\tisLoaded.value = true;\n\t};\n\tconst unload = () => {\n\t\tif (!document$1 || !isLoaded.value) return;\n\t\tstop();\n\t\tdocument$1.head.removeChild(document$1.getElementById(id));\n\t\tisLoaded.value = false;\n\t};\n\tif (immediate && !manual) tryOnMounted(load);\n\tif (!manual) tryOnScopeDispose(unload);\n\treturn {\n\t\tid,\n\t\tcss: cssRef,\n\t\tunload,\n\t\tload,\n\t\tisLoaded: readonly(isLoaded)\n\t};\n}\n\n//#endregion\n//#region useSwipe/index.ts\n/**\n* Reactive swipe detection.\n*\n* @see https://vueuse.org/useSwipe\n* @param target\n* @param options\n*/\nfunction useSwipe(target, options = {}) {\n\tconst { threshold = 50, onSwipe, onSwipeEnd, onSwipeStart, passive = true } = options;\n\tconst coordsStart = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst coordsEnd = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst diffX = computed(() => coordsStart.x - coordsEnd.x);\n\tconst diffY = computed(() => coordsStart.y - coordsEnd.y);\n\tconst { max, abs } = Math;\n\tconst isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n\tconst isSwiping = shallowRef(false);\n\tconst direction = computed(() => {\n\t\tif (!isThresholdExceeded.value) return \"none\";\n\t\tif (abs(diffX.value) > abs(diffY.value)) return diffX.value > 0 ? \"left\" : \"right\";\n\t\telse return diffY.value > 0 ? \"up\" : \"down\";\n\t});\n\tconst getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n\tconst updateCoordsStart = (x, y) => {\n\t\tcoordsStart.x = x;\n\t\tcoordsStart.y = y;\n\t};\n\tconst updateCoordsEnd = (x, y) => {\n\t\tcoordsEnd.x = x;\n\t\tcoordsEnd.y = y;\n\t};\n\tconst listenerOptions = {\n\t\tpassive,\n\t\tcapture: !passive\n\t};\n\tconst onTouchEnd = (e) => {\n\t\tif (isSwiping.value) onSwipeEnd === null || onSwipeEnd === void 0 || onSwipeEnd(e, direction.value);\n\t\tisSwiping.value = false;\n\t};\n\tconst stops = [\n\t\tuseEventListener(target, \"touchstart\", (e) => {\n\t\t\tif (e.touches.length !== 1) return;\n\t\t\tconst [x, y] = getTouchEventCoords(e);\n\t\t\tupdateCoordsStart(x, y);\n\t\t\tupdateCoordsEnd(x, y);\n\t\t\tonSwipeStart === null || onSwipeStart === void 0 || onSwipeStart(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, \"touchmove\", (e) => {\n\t\t\tif (e.touches.length !== 1) return;\n\t\t\tconst [x, y] = getTouchEventCoords(e);\n\t\t\tupdateCoordsEnd(x, y);\n\t\t\tif (listenerOptions.capture && !listenerOptions.passive && Math.abs(diffX.value) > Math.abs(diffY.value)) e.preventDefault();\n\t\t\tif (!isSwiping.value && isThresholdExceeded.value) isSwiping.value = true;\n\t\t\tif (isSwiping.value) onSwipe === null || onSwipe === void 0 || onSwipe(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, [\"touchend\", \"touchcancel\"], onTouchEnd, listenerOptions)\n\t];\n\tconst stop = () => stops.forEach((s) => s());\n\treturn {\n\t\tisSwiping,\n\t\tdirection,\n\t\tcoordsStart,\n\t\tcoordsEnd,\n\t\tlengthX: diffX,\n\t\tlengthY: diffY,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useTemplateRefsList/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useTemplateRefsList() {\n\tconst refs = ref([]);\n\trefs.value.set = (el) => {\n\t\tif (el) refs.value.push(el);\n\t};\n\tonBeforeUpdate(() => {\n\t\trefs.value.length = 0;\n\t});\n\treturn refs;\n}\n\n//#endregion\n//#region useTextDirection/index.ts\n/**\n* Reactive dir of the element's text.\n*\n* @see https://vueuse.org/useTextDirection\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useTextDirection(options = {}) {\n\tconst { document: document$1 = defaultDocument, selector = \"html\", observe = false, initialValue = \"ltr\" } = options;\n\tfunction getValue$1() {\n\t\tvar _ref, _document$querySelect;\n\t\treturn (_ref = document$1 === null || document$1 === void 0 || (_document$querySelect = document$1.querySelector(selector)) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.getAttribute(\"dir\")) !== null && _ref !== void 0 ? _ref : initialValue;\n\t}\n\tconst dir = ref(getValue$1());\n\ttryOnMounted(() => dir.value = getValue$1());\n\tif (observe && document$1) useMutationObserver(document$1.querySelector(selector), () => dir.value = getValue$1(), { attributes: true });\n\treturn computed({\n\t\tget() {\n\t\t\treturn dir.value;\n\t\t},\n\t\tset(v) {\n\t\t\tvar _document$querySelect2, _document$querySelect3;\n\t\t\tdir.value = v;\n\t\t\tif (!document$1) return;\n\t\t\tif (dir.value) (_document$querySelect2 = document$1.querySelector(selector)) === null || _document$querySelect2 === void 0 || _document$querySelect2.setAttribute(\"dir\", dir.value);\n\t\t\telse (_document$querySelect3 = document$1.querySelector(selector)) === null || _document$querySelect3 === void 0 || _document$querySelect3.removeAttribute(\"dir\");\n\t\t}\n\t});\n}\n\n//#endregion\n//#region useTextSelection/index.ts\nfunction getRangesFromSelection(selection) {\n\tvar _selection$rangeCount;\n\tconst rangeCount = (_selection$rangeCount = selection.rangeCount) !== null && _selection$rangeCount !== void 0 ? _selection$rangeCount : 0;\n\treturn Array.from({ length: rangeCount }, (_, i) => selection.getRangeAt(i));\n}\n/**\n* Reactively track user text selection based on [`Window.getSelection`](https://developer.mozilla.org/en-US/docs/Web/API/Window/getSelection).\n*\n* @see https://vueuse.org/useTextSelection\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useTextSelection(options = {}) {\n\tvar _window$getSelection;\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst selection = shallowRef((_window$getSelection = window$1 === null || window$1 === void 0 ? void 0 : window$1.getSelection()) !== null && _window$getSelection !== void 0 ? _window$getSelection : null);\n\tconst text = computed(() => {\n\t\tvar _selection$value$toSt, _selection$value;\n\t\treturn (_selection$value$toSt = (_selection$value = selection.value) === null || _selection$value === void 0 ? void 0 : _selection$value.toString()) !== null && _selection$value$toSt !== void 0 ? _selection$value$toSt : \"\";\n\t});\n\tconst ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n\tconst rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n\tfunction onSelectionChange() {\n\t\tselection.value = null;\n\t\tif (window$1) selection.value = window$1.getSelection();\n\t}\n\tif (window$1) useEventListener(window$1.document, \"selectionchange\", onSelectionChange, { passive: true });\n\treturn {\n\t\ttext,\n\t\trects,\n\t\tranges,\n\t\tselection\n\t};\n}\n\n//#endregion\n//#region useTextareaAutosize/index.ts\n/**\n* Call window.requestAnimationFrame(), if not available, just call the function\n*\n* @param window\n* @param fn\n*/\nfunction tryRequestAnimationFrame(window$1 = defaultWindow, fn) {\n\tif (window$1 && typeof window$1.requestAnimationFrame === \"function\") window$1.requestAnimationFrame(fn);\n\telse fn();\n}\nfunction useTextareaAutosize(options = {}) {\n\tvar _options$input, _options$styleProp;\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst textarea = toRef(options === null || options === void 0 ? void 0 : options.element);\n\tconst input = toRef((_options$input = options === null || options === void 0 ? void 0 : options.input) !== null && _options$input !== void 0 ? _options$input : \"\");\n\tconst styleProp = (_options$styleProp = options === null || options === void 0 ? void 0 : options.styleProp) !== null && _options$styleProp !== void 0 ? _options$styleProp : \"height\";\n\tconst textareaScrollHeight = shallowRef(1);\n\tconst textareaOldWidth = shallowRef(0);\n\tfunction triggerResize() {\n\t\tvar _textarea$value;\n\t\tif (!textarea.value) return;\n\t\tlet height = \"\";\n\t\ttextarea.value.style[styleProp] = \"1px\";\n\t\ttextareaScrollHeight.value = (_textarea$value = textarea.value) === null || _textarea$value === void 0 ? void 0 : _textarea$value.scrollHeight;\n\t\tconst _styleTarget = toValue(options === null || options === void 0 ? void 0 : options.styleTarget);\n\t\tif (_styleTarget) _styleTarget.style[styleProp] = `${textareaScrollHeight.value}px`;\n\t\telse height = `${textareaScrollHeight.value}px`;\n\t\ttextarea.value.style[styleProp] = height;\n\t}\n\twatch([input, textarea], () => nextTick(triggerResize), { immediate: true });\n\twatch(textareaScrollHeight, () => {\n\t\tvar _options$onResize;\n\t\treturn options === null || options === void 0 || (_options$onResize = options.onResize) === null || _options$onResize === void 0 ? void 0 : _options$onResize.call(options);\n\t});\n\tuseResizeObserver(textarea, ([{ contentRect }]) => {\n\t\tif (textareaOldWidth.value === contentRect.width) return;\n\t\ttryRequestAnimationFrame(window$1, () => {\n\t\t\ttextareaOldWidth.value = contentRect.width;\n\t\t\ttriggerResize();\n\t\t});\n\t});\n\tif (options === null || options === void 0 ? void 0 : options.watch) watch(options.watch, triggerResize, {\n\t\timmediate: true,\n\t\tdeep: true\n\t});\n\treturn {\n\t\ttextarea,\n\t\tinput,\n\t\ttriggerResize\n\t};\n}\n\n//#endregion\n//#region useThrottledRefHistory/index.ts\n/**\n* Shorthand for [useRefHistory](https://vueuse.org/useRefHistory) with throttled filter.\n*\n* @see https://vueuse.org/useThrottledRefHistory\n* @param source\n* @param options\n*/\nfunction useThrottledRefHistory(source, options = {}) {\n\tconst { throttle = 200, trailing = true } = options;\n\tconst filter = throttleFilter(throttle, trailing);\n\treturn { ...useRefHistory(source, {\n\t\t...options,\n\t\teventFilter: filter\n\t}) };\n}\n\n//#endregion\n//#region useTimeAgo/index.ts\nconst DEFAULT_UNITS = [\n\t{\n\t\tmax: 6e4,\n\t\tvalue: 1e3,\n\t\tname: \"second\"\n\t},\n\t{\n\t\tmax: 276e4,\n\t\tvalue: 6e4,\n\t\tname: \"minute\"\n\t},\n\t{\n\t\tmax: 72e6,\n\t\tvalue: 36e5,\n\t\tname: \"hour\"\n\t},\n\t{\n\t\tmax: 5184e5,\n\t\tvalue: 864e5,\n\t\tname: \"day\"\n\t},\n\t{\n\t\tmax: 24192e5,\n\t\tvalue: 6048e5,\n\t\tname: \"week\"\n\t},\n\t{\n\t\tmax: 28512e6,\n\t\tvalue: 2592e6,\n\t\tname: \"month\"\n\t},\n\t{\n\t\tmax: Number.POSITIVE_INFINITY,\n\t\tvalue: 31536e6,\n\t\tname: \"year\"\n\t}\n];\nconst DEFAULT_MESSAGES = {\n\tjustNow: \"just now\",\n\tpast: (n) => n.match(/\\d/) ? `${n} ago` : n,\n\tfuture: (n) => n.match(/\\d/) ? `in ${n}` : n,\n\tmonth: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n\tyear: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n\tday: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n\tweek: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n\thour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n\tminute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n\tsecond: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`,\n\tinvalid: \"\"\n};\nfunction DEFAULT_FORMATTER(date) {\n\treturn date.toISOString().slice(0, 10);\n}\n/**\n* Reactive time ago formatter.\n*\n* @see https://vueuse.org/useTimeAgo\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useTimeAgo(time, options = {}) {\n\tconst { controls: exposeControls = false, updateInterval = 3e4 } = options;\n\tconst { now,...controls } = useNow({\n\t\tinterval: updateInterval,\n\t\tcontrols: true\n\t});\n\tconst timeAgo = computed(() => formatTimeAgo(new Date(toValue(time)), options, toValue(now)));\n\tif (exposeControls) return {\n\t\ttimeAgo,\n\t\t...controls\n\t};\n\telse return timeAgo;\n}\nfunction formatTimeAgo(from, options = {}, now = Date.now()) {\n\tconst { max, messages = DEFAULT_MESSAGES, fullDateFormatter = DEFAULT_FORMATTER, units = DEFAULT_UNITS, showSecond = false, rounding = \"round\" } = options;\n\tconst roundFn = typeof rounding === \"number\" ? (n) => +n.toFixed(rounding) : Math[rounding];\n\tconst diff = +now - +from;\n\tconst absDiff = Math.abs(diff);\n\tfunction getValue$1(diff$1, unit) {\n\t\treturn roundFn(Math.abs(diff$1) / unit.value);\n\t}\n\tfunction format(diff$1, unit) {\n\t\tconst val = getValue$1(diff$1, unit);\n\t\tconst past = diff$1 > 0;\n\t\tconst str = applyFormat(unit.name, val, past);\n\t\treturn applyFormat(past ? \"past\" : \"future\", str, past);\n\t}\n\tfunction applyFormat(name, val, isPast) {\n\t\tconst formatter = messages[name];\n\t\tif (typeof formatter === \"function\") return formatter(val, isPast);\n\t\treturn formatter.replace(\"{0}\", val.toString());\n\t}\n\tif (absDiff < 6e4 && !showSecond) return messages.justNow;\n\tif (typeof max === \"number\" && absDiff > max) return fullDateFormatter(new Date(from));\n\tif (typeof max === \"string\") {\n\t\tvar _units$find;\n\t\tconst unitMax = (_units$find = units.find((i) => i.name === max)) === null || _units$find === void 0 ? void 0 : _units$find.max;\n\t\tif (unitMax && absDiff > unitMax) return fullDateFormatter(new Date(from));\n\t}\n\tfor (const [idx, unit] of units.entries()) {\n\t\tif (getValue$1(diff, unit) <= 0 && units[idx - 1]) return format(diff, units[idx - 1]);\n\t\tif (absDiff < unit.max) return format(diff, unit);\n\t}\n\treturn messages.invalid;\n}\n\n//#endregion\n//#region useTimeAgoIntl/index.ts\nconst UNITS = [\n\t{\n\t\tname: \"year\",\n\t\tms: 31536e6\n\t},\n\t{\n\t\tname: \"month\",\n\t\tms: 2592e6\n\t},\n\t{\n\t\tname: \"week\",\n\t\tms: 6048e5\n\t},\n\t{\n\t\tname: \"day\",\n\t\tms: 864e5\n\t},\n\t{\n\t\tname: \"hour\",\n\t\tms: 36e5\n\t},\n\t{\n\t\tname: \"minute\",\n\t\tms: 6e4\n\t},\n\t{\n\t\tname: \"second\",\n\t\tms: 1e3\n\t}\n];\nfunction useTimeAgoIntl(time, options = {}) {\n\tconst { controls: exposeControls = false, updateInterval = 3e4 } = options;\n\tconst { now,...controls } = useNow({\n\t\tinterval: updateInterval,\n\t\tcontrols: true\n\t});\n\tconst result = computed(() => getTimeAgoIntlResult(new Date(toValue(time)), options, toValue(now)));\n\tconst parts = computed(() => result.value.parts);\n\tconst timeAgoIntl = computed(() => formatTimeAgoIntlParts(parts.value, {\n\t\t...options,\n\t\tlocale: result.value.resolvedLocale\n\t}));\n\treturn exposeControls ? {\n\t\ttimeAgoIntl,\n\t\tparts,\n\t\t...controls\n\t} : timeAgoIntl;\n}\n/**\n* Non-reactive version of useTimeAgoIntl\n*/\nfunction formatTimeAgoIntl(from, options = {}, now = Date.now()) {\n\tconst { parts, resolvedLocale } = getTimeAgoIntlResult(from, options, now);\n\treturn formatTimeAgoIntlParts(parts, {\n\t\t...options,\n\t\tlocale: resolvedLocale\n\t});\n}\n/**\n* Get parts from `Intl.RelativeTimeFormat.formatToParts`.\n*/\nfunction getTimeAgoIntlResult(from, options = {}, now = Date.now()) {\n\tvar _options$units;\n\tconst { locale, relativeTimeFormatOptions = { numeric: \"auto\" } } = options;\n\tconst rtf = new Intl.RelativeTimeFormat(locale, relativeTimeFormatOptions);\n\tconst { locale: resolvedLocale } = rtf.resolvedOptions();\n\tconst diff = +from - +now;\n\tconst absDiff = Math.abs(diff);\n\tconst units = (_options$units = options.units) !== null && _options$units !== void 0 ? _options$units : UNITS;\n\tfor (const { name, ms } of units) if (absDiff >= ms) return {\n\t\tresolvedLocale,\n\t\tparts: rtf.formatToParts(Math.round(diff / ms), name)\n\t};\n\treturn {\n\t\tresolvedLocale,\n\t\tparts: rtf.formatToParts(0, units[units.length - 1].name)\n\t};\n}\n/**\n* Format parts into a string\n*/\nfunction formatTimeAgoIntlParts(parts, options = {}) {\n\tconst { insertSpace = true, joinParts, locale } = options;\n\tif (typeof joinParts === \"function\") return joinParts(parts, locale);\n\tif (!insertSpace) return parts.map((part) => part.value).join(\"\");\n\treturn parts.map((part) => part.value.trim()).join(\" \");\n}\n\n//#endregion\n//#region useTimeoutPoll/index.ts\nfunction useTimeoutPoll(fn, interval, options = {}) {\n\tconst { immediate = true, immediateCallback = false } = options;\n\tconst { start } = useTimeoutFn(loop, interval, { immediate });\n\tconst isActive = shallowRef(false);\n\tasync function loop() {\n\t\tif (!isActive.value) return;\n\t\tawait fn();\n\t\tstart();\n\t}\n\tfunction resume() {\n\t\tif (!isActive.value) {\n\t\t\tisActive.value = true;\n\t\t\tif (immediateCallback) fn();\n\t\t\tstart();\n\t\t}\n\t}\n\tfunction pause() {\n\t\tisActive.value = false;\n\t}\n\tif (immediate && isClient) resume();\n\ttryOnScopeDispose(pause);\n\treturn {\n\t\tisActive,\n\t\tpause,\n\t\tresume\n\t};\n}\n\n//#endregion\n//#region useTimestamp/index.ts\nfunction useTimestamp(options = {}) {\n\tconst { controls: exposeControls = false, offset = 0, immediate = true, interval = \"requestAnimationFrame\", callback } = options;\n\tconst ts = shallowRef(timestamp() + offset);\n\tconst update = () => ts.value = timestamp() + offset;\n\tconst cb = callback ? () => {\n\t\tupdate();\n\t\tcallback(ts.value);\n\t} : update;\n\tconst controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n\tif (exposeControls) return {\n\t\ttimestamp: ts,\n\t\t...controls\n\t};\n\telse return ts;\n}\n\n//#endregion\n//#region useTitle/index.ts\nfunction useTitle(newTitle = null, options = {}) {\n\tvar _document$title, _ref;\n\tconst { document: document$1 = defaultDocument, restoreOnUnmount = (t) => t } = options;\n\tconst originalTitle = (_document$title = document$1 === null || document$1 === void 0 ? void 0 : document$1.title) !== null && _document$title !== void 0 ? _document$title : \"\";\n\tconst title = toRef((_ref = newTitle !== null && newTitle !== void 0 ? newTitle : document$1 === null || document$1 === void 0 ? void 0 : document$1.title) !== null && _ref !== void 0 ? _ref : null);\n\tconst isReadonly$1 = !!(newTitle && typeof newTitle === \"function\");\n\tfunction format(t) {\n\t\tif (!(\"titleTemplate\" in options)) return t;\n\t\tconst template = options.titleTemplate || \"%s\";\n\t\treturn typeof template === \"function\" ? template(t) : toValue(template).replace(/%s/g, t);\n\t}\n\twatch(title, (newValue, oldValue) => {\n\t\tif (newValue !== oldValue && document$1) document$1.title = format(newValue !== null && newValue !== void 0 ? newValue : \"\");\n\t}, { immediate: true });\n\tif (options.observe && !options.titleTemplate && document$1 && !isReadonly$1) {\n\t\tvar _document$head;\n\t\tuseMutationObserver((_document$head = document$1.head) === null || _document$head === void 0 ? void 0 : _document$head.querySelector(\"title\"), () => {\n\t\t\tif (document$1 && document$1.title !== title.value) title.value = format(document$1.title);\n\t\t}, { childList: true });\n\t}\n\ttryOnScopeDispose(() => {\n\t\tif (restoreOnUnmount) {\n\t\t\tconst restoredTitle = restoreOnUnmount(originalTitle, title.value || \"\");\n\t\t\tif (restoredTitle != null && document$1) document$1.title = restoredTitle;\n\t\t}\n\t});\n\treturn title;\n}\n\n//#endregion\n//#region useTransition/index.ts\nconst _TransitionPresets = {\n\teaseInSine: [\n\t\t.12,\n\t\t0,\n\t\t.39,\n\t\t0\n\t],\n\teaseOutSine: [\n\t\t.61,\n\t\t1,\n\t\t.88,\n\t\t1\n\t],\n\teaseInOutSine: [\n\t\t.37,\n\t\t0,\n\t\t.63,\n\t\t1\n\t],\n\teaseInQuad: [\n\t\t.11,\n\t\t0,\n\t\t.5,\n\t\t0\n\t],\n\teaseOutQuad: [\n\t\t.5,\n\t\t1,\n\t\t.89,\n\t\t1\n\t],\n\teaseInOutQuad: [\n\t\t.45,\n\t\t0,\n\t\t.55,\n\t\t1\n\t],\n\teaseInCubic: [\n\t\t.32,\n\t\t0,\n\t\t.67,\n\t\t0\n\t],\n\teaseOutCubic: [\n\t\t.33,\n\t\t1,\n\t\t.68,\n\t\t1\n\t],\n\teaseInOutCubic: [\n\t\t.65,\n\t\t0,\n\t\t.35,\n\t\t1\n\t],\n\teaseInQuart: [\n\t\t.5,\n\t\t0,\n\t\t.75,\n\t\t0\n\t],\n\teaseOutQuart: [\n\t\t.25,\n\t\t1,\n\t\t.5,\n\t\t1\n\t],\n\teaseInOutQuart: [\n\t\t.76,\n\t\t0,\n\t\t.24,\n\t\t1\n\t],\n\teaseInQuint: [\n\t\t.64,\n\t\t0,\n\t\t.78,\n\t\t0\n\t],\n\teaseOutQuint: [\n\t\t.22,\n\t\t1,\n\t\t.36,\n\t\t1\n\t],\n\teaseInOutQuint: [\n\t\t.83,\n\t\t0,\n\t\t.17,\n\t\t1\n\t],\n\teaseInExpo: [\n\t\t.7,\n\t\t0,\n\t\t.84,\n\t\t0\n\t],\n\teaseOutExpo: [\n\t\t.16,\n\t\t1,\n\t\t.3,\n\t\t1\n\t],\n\teaseInOutExpo: [\n\t\t.87,\n\t\t0,\n\t\t.13,\n\t\t1\n\t],\n\teaseInCirc: [\n\t\t.55,\n\t\t0,\n\t\t1,\n\t\t.45\n\t],\n\teaseOutCirc: [\n\t\t0,\n\t\t.55,\n\t\t.45,\n\t\t1\n\t],\n\teaseInOutCirc: [\n\t\t.85,\n\t\t0,\n\t\t.15,\n\t\t1\n\t],\n\teaseInBack: [\n\t\t.36,\n\t\t0,\n\t\t.66,\n\t\t-.56\n\t],\n\teaseOutBack: [\n\t\t.34,\n\t\t1.56,\n\t\t.64,\n\t\t1\n\t],\n\teaseInOutBack: [\n\t\t.68,\n\t\t-.6,\n\t\t.32,\n\t\t1.6\n\t]\n};\n/**\n* Common transitions\n*\n* @see https://easings.net\n*/\nconst TransitionPresets = /* @__PURE__ */ Object.assign({}, { linear: identity }, _TransitionPresets);\n/**\n* Create an easing function from cubic bezier points.\n*/\nfunction createEasingFunction([p0, p1, p2, p3]) {\n\tconst a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n\tconst b = (a1, a2) => 3 * a2 - 6 * a1;\n\tconst c = (a1) => 3 * a1;\n\tconst calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n\tconst getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n\tconst getTforX = (x) => {\n\t\tlet aGuessT = x;\n\t\tfor (let i = 0; i < 4; ++i) {\n\t\t\tconst currentSlope = getSlope(aGuessT, p0, p2);\n\t\t\tif (currentSlope === 0) return aGuessT;\n\t\t\tconst currentX = calcBezier(aGuessT, p0, p2) - x;\n\t\t\taGuessT -= currentX / currentSlope;\n\t\t}\n\t\treturn aGuessT;\n\t};\n\treturn (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction lerp(a, b, alpha) {\n\treturn a + alpha * (b - a);\n}\nfunction defaultInterpolation(a, b, t) {\n\tconst aVal = toValue(a);\n\tconst bVal = toValue(b);\n\tif (typeof aVal === \"number\" && typeof bVal === \"number\") return lerp(aVal, bVal, t);\n\tif (Array.isArray(aVal) && Array.isArray(bVal)) return aVal.map((v, i) => lerp(v, toValue(bVal[i]), t));\n\tthrow new TypeError(\"Unknown transition type, specify an interpolation function.\");\n}\nfunction normalizeEasing(easing) {\n\tvar _toValue;\n\treturn typeof easing === \"function\" ? easing : (_toValue = toValue(easing)) !== null && _toValue !== void 0 ? _toValue : identity;\n}\n/**\n* Transition from one value to another.\n*\n* @param source\n* @param from\n* @param to\n* @param options\n*/\nfunction transition(source, from, to, options = {}) {\n\tvar _toValue2;\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst fromVal = toValue(from);\n\tconst toVal = toValue(to);\n\tconst duration = (_toValue2 = toValue(options.duration)) !== null && _toValue2 !== void 0 ? _toValue2 : 1e3;\n\tconst startedAt = Date.now();\n\tconst endAt = Date.now() + duration;\n\tconst interpolation = typeof options.interpolation === \"function\" ? options.interpolation : defaultInterpolation;\n\tconst trans = typeof options.easing !== \"undefined\" ? normalizeEasing(options.easing) : normalizeEasing(options.transition);\n\tconst ease = typeof trans === \"function\" ? trans : createEasingFunction(trans);\n\treturn new Promise((resolve) => {\n\t\tsource.value = fromVal;\n\t\tconst tick = () => {\n\t\t\tvar _options$abort;\n\t\t\tif ((_options$abort = options.abort) === null || _options$abort === void 0 ? void 0 : _options$abort.call(options)) {\n\t\t\t\tresolve();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst now = Date.now();\n\t\t\tsource.value = interpolation(fromVal, toVal, ease((now - startedAt) / duration));\n\t\t\tif (now < endAt) window$1 === null || window$1 === void 0 || window$1.requestAnimationFrame(tick);\n\t\t\telse {\n\t\t\t\tsource.value = toVal;\n\t\t\t\tresolve();\n\t\t\t}\n\t\t};\n\t\ttick();\n\t});\n}\n/**\n* Transition from one value to another.\n* @deprecated The `executeTransition` function is deprecated, use `transition` instead.\n*\n* @param source\n* @param from\n* @param to\n* @param options\n*/\nfunction executeTransition(source, from, to, options = {}) {\n\treturn transition(source, from, to, options);\n}\n/**\n* Follow value with a transition.\n*\n* @see https://vueuse.org/useTransition\n* @param source\n* @param options\n*/\nfunction useTransition(source, options = {}) {\n\tlet currentId = 0;\n\tconst sourceVal = () => {\n\t\tconst v = toValue(source);\n\t\treturn typeof options.interpolation === \"undefined\" && Array.isArray(v) ? v.map(toValue) : v;\n\t};\n\tconst outputRef = shallowRef(sourceVal());\n\twatch(sourceVal, async (to) => {\n\t\tvar _options$onStarted, _options$onFinished;\n\t\tif (toValue(options.disabled)) return;\n\t\tconst id = ++currentId;\n\t\tif (options.delay) await promiseTimeout(toValue(options.delay));\n\t\tif (id !== currentId) return;\n\t\t(_options$onStarted = options.onStarted) === null || _options$onStarted === void 0 || _options$onStarted.call(options);\n\t\tawait transition(outputRef, outputRef.value, to, {\n\t\t\t...options,\n\t\t\tabort: () => {\n\t\t\t\tvar _options$abort2;\n\t\t\t\treturn id !== currentId || ((_options$abort2 = options.abort) === null || _options$abort2 === void 0 ? void 0 : _options$abort2.call(options));\n\t\t\t}\n\t\t});\n\t\t(_options$onFinished = options.onFinished) === null || _options$onFinished === void 0 || _options$onFinished.call(options);\n\t}, { deep: true });\n\twatch(() => toValue(options.disabled), (disabled) => {\n\t\tif (disabled) {\n\t\t\tcurrentId++;\n\t\t\toutputRef.value = sourceVal();\n\t\t}\n\t});\n\ttryOnScopeDispose(() => {\n\t\tcurrentId++;\n\t});\n\treturn computed(() => toValue(options.disabled) ? sourceVal() : outputRef.value);\n}\n\n//#endregion\n//#region useUrlSearchParams/index.ts\n/**\n* Reactive URLSearchParams\n*\n* @see https://vueuse.org/useUrlSearchParams\n* @param mode\n* @param options\n*/\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n\tconst { initialValue = {}, removeNullishValues = true, removeFalsyValues = false, write: enableWrite = true, writeMode = \"replace\", window: window$1 = defaultWindow, stringify = (params) => params.toString() } = options;\n\tif (!window$1) return reactive(initialValue);\n\tconst state = reactive({});\n\tfunction getRawParams() {\n\t\tif (mode === \"history\") return window$1.location.search || \"\";\n\t\telse if (mode === \"hash\") {\n\t\t\tconst hash = window$1.location.hash || \"\";\n\t\t\tconst index = hash.indexOf(\"?\");\n\t\t\treturn index > 0 ? hash.slice(index) : \"\";\n\t\t} else return (window$1.location.hash || \"\").replace(/^#/, \"\");\n\t}\n\tfunction constructQuery(params) {\n\t\tconst stringified = stringify(params);\n\t\tif (mode === \"history\") return `${stringified ? `?${stringified}` : \"\"}${window$1.location.hash || \"\"}`;\n\t\tif (mode === \"hash-params\") return `${window$1.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n\t\tconst hash = window$1.location.hash || \"#\";\n\t\tconst index = hash.indexOf(\"?\");\n\t\tif (index > 0) return `${window$1.location.search || \"\"}${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n\t\treturn `${window$1.location.search || \"\"}${hash}${stringified ? `?${stringified}` : \"\"}`;\n\t}\n\tfunction read() {\n\t\treturn new URLSearchParams(getRawParams());\n\t}\n\tfunction updateState(params) {\n\t\tconst unusedKeys = new Set(Object.keys(state));\n\t\tfor (const key of params.keys()) {\n\t\t\tconst paramsForKey = params.getAll(key);\n\t\t\tstate[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n\t\t\tunusedKeys.delete(key);\n\t\t}\n\t\tArray.from(unusedKeys).forEach((key) => delete state[key]);\n\t}\n\tconst { pause, resume } = pausableWatch(state, () => {\n\t\tconst params = new URLSearchParams(\"\");\n\t\tObject.keys(state).forEach((key) => {\n\t\t\tconst mapEntry = state[key];\n\t\t\tif (Array.isArray(mapEntry)) mapEntry.forEach((value) => params.append(key, value));\n\t\t\telse if (removeNullishValues && mapEntry == null) params.delete(key);\n\t\t\telse if (removeFalsyValues && !mapEntry) params.delete(key);\n\t\t\telse params.set(key, mapEntry);\n\t\t});\n\t\twrite(params, false);\n\t}, { deep: true });\n\tfunction write(params, shouldUpdate, shouldWriteHistory = true) {\n\t\tpause();\n\t\tif (shouldUpdate) updateState(params);\n\t\tif (writeMode === \"replace\") window$1.history.replaceState(window$1.history.state, window$1.document.title, window$1.location.pathname + constructQuery(params));\n\t\telse if (shouldWriteHistory) window$1.history.pushState(window$1.history.state, window$1.document.title, window$1.location.pathname + constructQuery(params));\n\t\tnextTick(() => resume());\n\t}\n\tfunction onChanged() {\n\t\tif (!enableWrite) return;\n\t\twrite(read(), true, false);\n\t}\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(window$1, \"popstate\", onChanged, listenerOptions);\n\tif (mode !== \"history\") useEventListener(window$1, \"hashchange\", onChanged, listenerOptions);\n\tconst initial = read();\n\tif (initial.keys().next().value) updateState(initial);\n\telse Object.assign(state, initialValue);\n\treturn state;\n}\n\n//#endregion\n//#region useUserMedia/index.ts\n/**\n* Reactive `mediaDevices.getUserMedia` streaming\n*\n* @see https://vueuse.org/useUserMedia\n* @param options\n*/\nfunction useUserMedia(options = {}) {\n\tvar _options$enabled, _options$autoSwitch;\n\tconst enabled = shallowRef((_options$enabled = options.enabled) !== null && _options$enabled !== void 0 ? _options$enabled : false);\n\tconst autoSwitch = shallowRef((_options$autoSwitch = options.autoSwitch) !== null && _options$autoSwitch !== void 0 ? _options$autoSwitch : true);\n\tconst constraints = ref(options.constraints);\n\tconst { navigator: navigator$1 = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tvar _navigator$mediaDevic;\n\t\treturn navigator$1 === null || navigator$1 === void 0 || (_navigator$mediaDevic = navigator$1.mediaDevices) === null || _navigator$mediaDevic === void 0 ? void 0 : _navigator$mediaDevic.getUserMedia;\n\t});\n\tconst stream = shallowRef();\n\tfunction getDeviceOptions(type) {\n\t\tswitch (type) {\n\t\t\tcase \"video\":\n\t\t\t\tif (constraints.value) return constraints.value.video || false;\n\t\t\t\tbreak;\n\t\t\tcase \"audio\":\n\t\t\t\tif (constraints.value) return constraints.value.audio || false;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tasync function _start() {\n\t\tif (!isSupported.value || stream.value) return;\n\t\tstream.value = await navigator$1.mediaDevices.getUserMedia({\n\t\t\tvideo: getDeviceOptions(\"video\"),\n\t\t\taudio: getDeviceOptions(\"audio\")\n\t\t});\n\t\treturn stream.value;\n\t}\n\tfunction _stop() {\n\t\tvar _stream$value;\n\t\t(_stream$value = stream.value) === null || _stream$value === void 0 || _stream$value.getTracks().forEach((t) => t.stop());\n\t\tstream.value = void 0;\n\t}\n\tfunction stop() {\n\t\t_stop();\n\t\tenabled.value = false;\n\t}\n\tasync function start() {\n\t\tawait _start();\n\t\tif (stream.value) enabled.value = true;\n\t\treturn stream.value;\n\t}\n\tasync function restart() {\n\t\t_stop();\n\t\treturn await start();\n\t}\n\twatch(enabled, (v) => {\n\t\tif (v) _start();\n\t\telse _stop();\n\t}, { immediate: true });\n\twatch(constraints, () => {\n\t\tif (autoSwitch.value && stream.value) restart();\n\t}, {\n\t\timmediate: true,\n\t\tdeep: true\n\t});\n\ttryOnScopeDispose(() => {\n\t\tstop();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tstream,\n\t\tstart,\n\t\tstop,\n\t\trestart,\n\t\tconstraints,\n\t\tenabled,\n\t\tautoSwitch\n\t};\n}\n\n//#endregion\n//#region useVModel/index.ts\n/**\n* Shorthand for v-model binding, props + emit -> ref\n*\n* @see https://vueuse.org/useVModel\n* @param props\n* @param key (default 'modelValue')\n* @param emit\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useVModel(props, key, emit, options = {}) {\n\tvar _vm$$emit, _vm$proxy;\n\tconst { clone = false, passive = false, eventName, deep = false, defaultValue, shouldEmit } = options;\n\tconst vm = getCurrentInstance();\n\tconst _emit = emit || (vm === null || vm === void 0 ? void 0 : vm.emit) || (vm === null || vm === void 0 || (_vm$$emit = vm.$emit) === null || _vm$$emit === void 0 ? void 0 : _vm$$emit.bind(vm)) || (vm === null || vm === void 0 || (_vm$proxy = vm.proxy) === null || _vm$proxy === void 0 || (_vm$proxy = _vm$proxy.$emit) === null || _vm$proxy === void 0 ? void 0 : _vm$proxy.bind(vm === null || vm === void 0 ? void 0 : vm.proxy));\n\tlet event = eventName;\n\tif (!key) key = \"modelValue\";\n\tevent = event || `update:${key.toString()}`;\n\tconst cloneFn = (val) => !clone ? val : typeof clone === \"function\" ? clone(val) : cloneFnJSON(val);\n\tconst getValue$1 = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n\tconst triggerEmit = (value) => {\n\t\tif (shouldEmit) {\n\t\t\tif (shouldEmit(value)) _emit(event, value);\n\t\t} else _emit(event, value);\n\t};\n\tif (passive) {\n\t\tconst proxy = ref(getValue$1());\n\t\tlet isUpdating = false;\n\t\twatch(() => props[key], (v) => {\n\t\t\tif (!isUpdating) {\n\t\t\t\tisUpdating = true;\n\t\t\t\tproxy.value = cloneFn(v);\n\t\t\t\tnextTick(() => isUpdating = false);\n\t\t\t}\n\t\t});\n\t\twatch(proxy, (v) => {\n\t\t\tif (!isUpdating && (v !== props[key] || deep)) triggerEmit(v);\n\t\t}, { deep });\n\t\treturn proxy;\n\t} else return computed({\n\t\tget() {\n\t\t\treturn getValue$1();\n\t\t},\n\t\tset(value) {\n\t\t\ttriggerEmit(value);\n\t\t}\n\t});\n}\n\n//#endregion\n//#region useVModels/index.ts\n/**\n* Shorthand for props v-model binding. Think like `toRefs(props)` but changes will also emit out.\n*\n* @see https://vueuse.org/useVModels\n* @param props\n* @param emit\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useVModels(props, emit, options = {}) {\n\tconst ret = {};\n\tfor (const key in props) ret[key] = useVModel(props, key, emit, options);\n\treturn ret;\n}\n\n//#endregion\n//#region useVibrate/index.ts\n/**\n* Reactive vibrate\n*\n* @see https://vueuse.org/useVibrate\n* @see https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useVibrate(options) {\n\tconst { pattern = [], interval = 0, navigator: navigator$1 = defaultNavigator } = options || {};\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof navigator$1 !== \"undefined\" && \"vibrate\" in navigator$1);\n\tconst patternRef = toRef(pattern);\n\tlet intervalControls;\n\tconst vibrate = (pattern$1 = patternRef.value) => {\n\t\tif (isSupported.value) navigator$1.vibrate(pattern$1);\n\t};\n\tconst stop = () => {\n\t\tif (isSupported.value) navigator$1.vibrate(0);\n\t\tintervalControls === null || intervalControls === void 0 || intervalControls.pause();\n\t};\n\tif (interval > 0) intervalControls = useIntervalFn(vibrate, interval, {\n\t\timmediate: false,\n\t\timmediateCallback: false\n\t});\n\treturn {\n\t\tisSupported,\n\t\tpattern,\n\t\tintervalControls,\n\t\tvibrate,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useVirtualList/index.ts\n/**\n* Please consider using [`vue-virtual-scroller`](https://github.com/Akryum/vue-virtual-scroller) if you are looking for more features.\n*/\nfunction useVirtualList(list, options) {\n\tconst { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n\treturn {\n\t\tlist: currentList,\n\t\tscrollTo,\n\t\tcontainerProps: {\n\t\t\tref: containerRef,\n\t\t\tonScroll: () => {\n\t\t\t\tcalculateRange();\n\t\t\t},\n\t\t\tstyle: containerStyle\n\t\t},\n\t\twrapperProps\n\t};\n}\nfunction useVirtualListResources(list) {\n\tconst containerRef = shallowRef(null);\n\tconst size = useElementSize(containerRef);\n\tconst currentList = ref([]);\n\tconst source = shallowRef(list);\n\treturn {\n\t\tstate: ref({\n\t\t\tstart: 0,\n\t\t\tend: 10\n\t\t}),\n\t\tsource,\n\t\tcurrentList,\n\t\tsize,\n\t\tcontainerRef\n\t};\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n\treturn (containerSize) => {\n\t\tif (typeof itemSize === \"number\") return Math.ceil(containerSize / itemSize);\n\t\tconst { start = 0 } = state.value;\n\t\tlet sum = 0;\n\t\tlet capacity = 0;\n\t\tfor (let i = start; i < source.value.length; i++) {\n\t\t\tconst size = itemSize(i);\n\t\t\tsum += size;\n\t\t\tcapacity = i;\n\t\t\tif (sum > containerSize) break;\n\t\t}\n\t\treturn capacity - start;\n\t};\n}\nfunction createGetOffset(source, itemSize) {\n\treturn (scrollDirection) => {\n\t\tif (typeof itemSize === \"number\") return Math.floor(scrollDirection / itemSize) + 1;\n\t\tlet sum = 0;\n\t\tlet offset = 0;\n\t\tfor (let i = 0; i < source.value.length; i++) {\n\t\t\tconst size = itemSize(i);\n\t\t\tsum += size;\n\t\t\tif (sum >= scrollDirection) {\n\t\t\t\toffset = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn offset + 1;\n\t};\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n\treturn () => {\n\t\tconst element = containerRef.value;\n\t\tif (element) {\n\t\t\tconst offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n\t\t\tconst viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n\t\t\tconst from = offset - overscan;\n\t\t\tconst to = offset + viewCapacity + overscan;\n\t\t\tstate.value = {\n\t\t\t\tstart: from < 0 ? 0 : from,\n\t\t\t\tend: to > source.value.length ? source.value.length : to\n\t\t\t};\n\t\t\tcurrentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n\t\t\t\tdata: ele,\n\t\t\t\tindex: index + state.value.start\n\t\t\t}));\n\t\t}\n\t};\n}\nfunction createGetDistance(itemSize, source) {\n\treturn (index) => {\n\t\tif (typeof itemSize === \"number\") return index * itemSize;\n\t\treturn source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n\t};\n}\nfunction useWatchForSizes(size, list, containerRef, calculateRange) {\n\twatch([\n\t\tsize.width,\n\t\tsize.height,\n\t\t() => toValue(list),\n\t\tcontainerRef\n\t], () => {\n\t\tcalculateRange();\n\t});\n}\nfunction createComputedTotalSize(itemSize, source) {\n\treturn computed(() => {\n\t\tif (typeof itemSize === \"number\") return source.value.length * itemSize;\n\t\treturn source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n\t});\n}\nconst scrollToDictionaryForElementScrollKey = {\n\thorizontal: \"scrollLeft\",\n\tvertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n\treturn (index) => {\n\t\tif (containerRef.value) {\n\t\t\tcontainerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n\t\t\tcalculateRange();\n\t\t}\n\t};\n}\nfunction useHorizontalVirtualList(options, list) {\n\tconst resources = useVirtualListResources(list);\n\tconst { state, source, currentList, size, containerRef } = resources;\n\tconst containerStyle = { overflowX: \"auto\" };\n\tconst { itemWidth, overscan = 5 } = options;\n\tconst getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n\tconst calculateRange = createCalculateRange(\"horizontal\", overscan, createGetOffset(source, itemWidth), getViewCapacity, resources);\n\tconst getDistanceLeft = createGetDistance(itemWidth, source);\n\tconst offsetLeft = computed(() => getDistanceLeft(state.value.start));\n\tconst totalWidth = createComputedTotalSize(itemWidth, source);\n\tuseWatchForSizes(size, list, containerRef, calculateRange);\n\treturn {\n\t\tscrollTo: createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef),\n\t\tcalculateRange,\n\t\twrapperProps: computed(() => {\n\t\t\treturn { style: {\n\t\t\t\theight: \"100%\",\n\t\t\t\twidth: `${totalWidth.value - offsetLeft.value}px`,\n\t\t\t\tmarginLeft: `${offsetLeft.value}px`,\n\t\t\t\tdisplay: \"flex\"\n\t\t\t} };\n\t\t}),\n\t\tcontainerStyle,\n\t\tcurrentList,\n\t\tcontainerRef\n\t};\n}\nfunction useVerticalVirtualList(options, list) {\n\tconst resources = useVirtualListResources(list);\n\tconst { state, source, currentList, size, containerRef } = resources;\n\tconst containerStyle = { overflowY: \"auto\" };\n\tconst { itemHeight, overscan = 5 } = options;\n\tconst getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n\tconst calculateRange = createCalculateRange(\"vertical\", overscan, createGetOffset(source, itemHeight), getViewCapacity, resources);\n\tconst getDistanceTop = createGetDistance(itemHeight, source);\n\tconst offsetTop = computed(() => getDistanceTop(state.value.start));\n\tconst totalHeight = createComputedTotalSize(itemHeight, source);\n\tuseWatchForSizes(size, list, containerRef, calculateRange);\n\treturn {\n\t\tcalculateRange,\n\t\tscrollTo: createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef),\n\t\tcontainerStyle,\n\t\twrapperProps: computed(() => {\n\t\t\treturn { style: {\n\t\t\t\twidth: \"100%\",\n\t\t\t\theight: `${totalHeight.value - offsetTop.value}px`,\n\t\t\t\tmarginTop: `${offsetTop.value}px`\n\t\t\t} };\n\t\t}),\n\t\tcurrentList,\n\t\tcontainerRef\n\t};\n}\n\n//#endregion\n//#region useWakeLock/index.ts\n/**\n* Reactive Screen Wake Lock API.\n*\n* @see https://vueuse.org/useWakeLock\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useWakeLock(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator, document: document$1 = defaultDocument } = options;\n\tconst requestedType = shallowRef(false);\n\tconst sentinel = shallowRef(null);\n\tconst documentVisibility = useDocumentVisibility({ document: document$1 });\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"wakeLock\" in navigator$1);\n\tconst isActive = computed(() => !!sentinel.value && documentVisibility.value === \"visible\");\n\tif (isSupported.value) {\n\t\tuseEventListener(sentinel, \"release\", () => {\n\t\t\tvar _sentinel$value$type, _sentinel$value;\n\t\t\trequestedType.value = (_sentinel$value$type = (_sentinel$value = sentinel.value) === null || _sentinel$value === void 0 ? void 0 : _sentinel$value.type) !== null && _sentinel$value$type !== void 0 ? _sentinel$value$type : false;\n\t\t}, { passive: true });\n\t\twhenever(() => documentVisibility.value === \"visible\" && (document$1 === null || document$1 === void 0 ? void 0 : document$1.visibilityState) === \"visible\" && requestedType.value, (type) => {\n\t\t\trequestedType.value = false;\n\t\t\tforceRequest(type);\n\t\t});\n\t}\n\tasync function forceRequest(type) {\n\t\tvar _sentinel$value2;\n\t\tawait ((_sentinel$value2 = sentinel.value) === null || _sentinel$value2 === void 0 ? void 0 : _sentinel$value2.release());\n\t\tsentinel.value = isSupported.value ? await navigator$1.wakeLock.request(type) : null;\n\t}\n\tasync function request(type) {\n\t\tif (documentVisibility.value === \"visible\") await forceRequest(type);\n\t\telse requestedType.value = type;\n\t}\n\tasync function release() {\n\t\trequestedType.value = false;\n\t\tconst s = sentinel.value;\n\t\tsentinel.value = null;\n\t\tawait (s === null || s === void 0 ? void 0 : s.release());\n\t}\n\treturn {\n\t\tsentinel,\n\t\tisSupported,\n\t\tisActive,\n\t\trequest,\n\t\tforceRequest,\n\t\trelease\n\t};\n}\n\n//#endregion\n//#region useWebNotification/index.ts\n/**\n* Reactive useWebNotification\n*\n* @see https://vueuse.org/useWebNotification\n* @see https://developer.mozilla.org/en-US/docs/Web/API/notification\n*/\nfunction useWebNotification(options = {}) {\n\tconst { window: window$1 = defaultWindow, requestPermissions: _requestForPermissions = true } = options;\n\tconst defaultWebNotificationOptions = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tif (!window$1 || !(\"Notification\" in window$1)) return false;\n\t\tif (Notification.permission === \"granted\") return true;\n\t\ttry {\n\t\t\tconst notification$1 = new Notification(\"\");\n\t\t\tnotification$1.onshow = () => {\n\t\t\t\tnotification$1.close();\n\t\t\t};\n\t\t} catch (e) {\n\t\t\tif (e.name === \"TypeError\") return false;\n\t\t}\n\t\treturn true;\n\t});\n\tconst permissionGranted = shallowRef(isSupported.value && \"permission\" in Notification && Notification.permission === \"granted\");\n\tconst notification = ref(null);\n\tconst ensurePermissions = async () => {\n\t\tif (!isSupported.value) return;\n\t\tif (!permissionGranted.value && Notification.permission !== \"denied\") {\n\t\t\tif (await Notification.requestPermission() === \"granted\") permissionGranted.value = true;\n\t\t}\n\t\treturn permissionGranted.value;\n\t};\n\tconst { on: onClick, trigger: clickTrigger } = createEventHook();\n\tconst { on: onShow, trigger: showTrigger } = createEventHook();\n\tconst { on: onError, trigger: errorTrigger } = createEventHook();\n\tconst { on: onClose, trigger: closeTrigger } = createEventHook();\n\tconst show = async (overrides) => {\n\t\tif (!isSupported.value || !permissionGranted.value) return;\n\t\tconst options$1 = Object.assign({}, defaultWebNotificationOptions, overrides);\n\t\tnotification.value = new Notification(options$1.title || \"\", options$1);\n\t\tnotification.value.onclick = clickTrigger;\n\t\tnotification.value.onshow = showTrigger;\n\t\tnotification.value.onerror = errorTrigger;\n\t\tnotification.value.onclose = closeTrigger;\n\t\treturn notification.value;\n\t};\n\tconst close = () => {\n\t\tif (notification.value) notification.value.close();\n\t\tnotification.value = null;\n\t};\n\tif (_requestForPermissions) tryOnMounted(ensurePermissions);\n\ttryOnScopeDispose(close);\n\tif (isSupported.value && window$1) {\n\t\tconst document$1 = window$1.document;\n\t\tuseEventListener(document$1, \"visibilitychange\", (e) => {\n\t\t\te.preventDefault();\n\t\t\tif (document$1.visibilityState === \"visible\") close();\n\t\t});\n\t}\n\treturn {\n\t\tisSupported,\n\t\tnotification,\n\t\tensurePermissions,\n\t\tpermissionGranted,\n\t\tshow,\n\t\tclose,\n\t\tonClick,\n\t\tonShow,\n\t\tonError,\n\t\tonClose\n\t};\n}\n\n//#endregion\n//#region useWebSocket/index.ts\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n\tif (options === true) return {};\n\treturn options;\n}\n/**\n* Reactive WebSocket client.\n*\n* @see https://vueuse.org/useWebSocket\n* @param url\n*/\nfunction useWebSocket(url, options = {}) {\n\tconst { onConnected, onDisconnected, onError, onMessage, immediate = true, autoConnect = true, autoClose = true, protocols = [] } = options;\n\tconst data = ref(null);\n\tconst status = shallowRef(\"CLOSED\");\n\tconst wsRef = ref();\n\tconst urlRef = toRef(url);\n\tlet heartbeatPause;\n\tlet heartbeatResume;\n\tlet explicitlyClosed = false;\n\tlet retried = 0;\n\tlet bufferedData = [];\n\tlet retryTimeout;\n\tlet pongTimeoutWait;\n\tconst _sendBuffer = () => {\n\t\tif (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n\t\t\tfor (const buffer of bufferedData) wsRef.value.send(buffer);\n\t\t\tbufferedData = [];\n\t\t}\n\t};\n\tconst resetRetry = () => {\n\t\tif (retryTimeout != null) {\n\t\t\tclearTimeout(retryTimeout);\n\t\t\tretryTimeout = void 0;\n\t\t}\n\t};\n\tconst resetHeartbeat = () => {\n\t\tclearTimeout(pongTimeoutWait);\n\t\tpongTimeoutWait = void 0;\n\t};\n\tconst close = (code = 1e3, reason) => {\n\t\tresetRetry();\n\t\tif (!isClient && !isWorker || !wsRef.value) return;\n\t\texplicitlyClosed = true;\n\t\tresetHeartbeat();\n\t\theartbeatPause === null || heartbeatPause === void 0 || heartbeatPause();\n\t\twsRef.value.close(code, reason);\n\t\twsRef.value = void 0;\n\t};\n\tconst send = (data$1, useBuffer = true) => {\n\t\tif (!wsRef.value || status.value !== \"OPEN\") {\n\t\t\tif (useBuffer) bufferedData.push(data$1);\n\t\t\treturn false;\n\t\t}\n\t\t_sendBuffer();\n\t\twsRef.value.send(data$1);\n\t\treturn true;\n\t};\n\tconst _init = () => {\n\t\tif (explicitlyClosed || typeof urlRef.value === \"undefined\") return;\n\t\tconst ws = new WebSocket(urlRef.value, protocols);\n\t\twsRef.value = ws;\n\t\tstatus.value = \"CONNECTING\";\n\t\tws.onopen = () => {\n\t\t\tstatus.value = \"OPEN\";\n\t\t\tretried = 0;\n\t\t\tonConnected === null || onConnected === void 0 || onConnected(ws);\n\t\t\theartbeatResume === null || heartbeatResume === void 0 || heartbeatResume();\n\t\t\t_sendBuffer();\n\t\t};\n\t\tws.onclose = (ev) => {\n\t\t\tstatus.value = \"CLOSED\";\n\t\t\tresetHeartbeat();\n\t\t\theartbeatPause === null || heartbeatPause === void 0 || heartbeatPause();\n\t\t\tonDisconnected === null || onDisconnected === void 0 || onDisconnected(ws, ev);\n\t\t\tif (!explicitlyClosed && options.autoReconnect && (wsRef.value == null || ws === wsRef.value)) {\n\t\t\t\tconst { retries = -1, delay = 1e3, onFailed } = resolveNestedOptions(options.autoReconnect);\n\t\t\t\tif ((typeof retries === \"function\" ? retries : () => typeof retries === \"number\" && (retries < 0 || retried < retries))(retried)) {\n\t\t\t\t\tretried += 1;\n\t\t\t\t\tconst delayTime = typeof delay === \"function\" ? delay(retried) : delay;\n\t\t\t\t\tretryTimeout = setTimeout(_init, delayTime);\n\t\t\t\t} else onFailed === null || onFailed === void 0 || onFailed();\n\t\t\t}\n\t\t};\n\t\tws.onerror = (e) => {\n\t\t\tonError === null || onError === void 0 || onError(ws, e);\n\t\t};\n\t\tws.onmessage = (e) => {\n\t\t\tif (options.heartbeat) {\n\t\t\t\tresetHeartbeat();\n\t\t\t\tconst { message = DEFAULT_PING_MESSAGE, responseMessage = message } = resolveNestedOptions(options.heartbeat);\n\t\t\t\tif (e.data === toValue(responseMessage)) return;\n\t\t\t}\n\t\t\tdata.value = e.data;\n\t\t\tonMessage === null || onMessage === void 0 || onMessage(ws, e);\n\t\t};\n\t};\n\tif (options.heartbeat) {\n\t\tconst { message = DEFAULT_PING_MESSAGE, interval = 1e3, pongTimeout = 1e3 } = resolveNestedOptions(options.heartbeat);\n\t\tconst { pause, resume } = useIntervalFn(() => {\n\t\t\tsend(toValue(message), false);\n\t\t\tif (pongTimeoutWait != null) return;\n\t\t\tpongTimeoutWait = setTimeout(() => {\n\t\t\t\tclose();\n\t\t\t\texplicitlyClosed = false;\n\t\t\t}, pongTimeout);\n\t\t}, interval, { immediate: false });\n\t\theartbeatPause = pause;\n\t\theartbeatResume = resume;\n\t}\n\tif (autoClose) {\n\t\tif (isClient) useEventListener(\"beforeunload\", () => close(), { passive: true });\n\t\ttryOnScopeDispose(close);\n\t}\n\tconst open = () => {\n\t\tif (!isClient && !isWorker) return;\n\t\tclose();\n\t\texplicitlyClosed = false;\n\t\tretried = 0;\n\t\t_init();\n\t};\n\tif (immediate) open();\n\tif (autoConnect) watch(urlRef, open);\n\treturn {\n\t\tdata,\n\t\tstatus,\n\t\tclose,\n\t\tsend,\n\t\topen,\n\t\tws: wsRef\n\t};\n}\n\n//#endregion\n//#region useWebWorker/index.ts\nfunction useWebWorker(arg0, workerOptions, options) {\n\tconst { window: window$1 = defaultWindow } = options !== null && options !== void 0 ? options : {};\n\tconst data = ref(null);\n\tconst worker = shallowRef();\n\tconst post = (...args) => {\n\t\tif (!worker.value) return;\n\t\tworker.value.postMessage(...args);\n\t};\n\tconst terminate = function terminate$1() {\n\t\tif (!worker.value) return;\n\t\tworker.value.terminate();\n\t};\n\tif (window$1) {\n\t\tif (typeof arg0 === \"string\") worker.value = new Worker(arg0, workerOptions);\n\t\telse if (typeof arg0 === \"function\") worker.value = arg0();\n\t\telse worker.value = arg0;\n\t\tworker.value.onmessage = (e) => {\n\t\t\tdata.value = e.data;\n\t\t};\n\t\ttryOnScopeDispose(() => {\n\t\t\tif (worker.value) worker.value.terminate();\n\t\t});\n\t}\n\treturn {\n\t\tdata,\n\t\tpost,\n\t\tterminate,\n\t\tworker\n\t};\n}\n\n//#endregion\n//#region useWebWorkerFn/lib/depsParser.ts\n/**\n*\n* Concatenates the dependencies into a comma separated string.\n* this string will then be passed as an argument to the \"importScripts\" function\n*\n* @param deps array of string\n* @param localDeps array of function\n* @returns a string composed by the concatenation of the array\n* elements \"deps\" and \"importScripts\".\n*\n* @example\n* depsParser(['demo1', 'demo2']) // return importScripts('demo1', 'demo2')\n*/\nfunction depsParser(deps, localDeps) {\n\tif (deps.length === 0 && localDeps.length === 0) return \"\";\n\tconst depsString = deps.map((dep) => `'${dep}'`).toString();\n\tconst depsFunctionString = localDeps.filter((dep) => typeof dep === \"function\").map((fn) => {\n\t\tconst str = fn.toString();\n\t\tif (str.trim().startsWith(\"function\")) return str;\n\t\telse return `const ${fn.name} = ${str}`;\n\t}).join(\";\");\n\tconst importString = `importScripts(${depsString});`;\n\treturn `${depsString.trim() === \"\" ? \"\" : importString} ${depsFunctionString}`;\n}\nvar depsParser_default = depsParser;\n\n//#endregion\n//#region useWebWorkerFn/lib/jobRunner.ts\n/**\n* This function accepts as a parameter a function \"userFunc\"\n* And as a result returns an anonymous function.\n* This anonymous function, accepts as arguments,\n* the parameters to pass to the function \"useArgs\" and returns a Promise\n* This function can be used as a wrapper, only inside a Worker\n* because it depends by \"postMessage\".\n*\n* @param userFunc {Function} fn the function to run with web worker\n*\n* @returns returns a function that accepts the parameters\n* to be passed to the \"userFunc\" function\n*/\nfunction jobRunner(userFunc) {\n\treturn (e) => {\n\t\tconst userFuncArgs = e.data[0];\n\t\treturn Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n\t\t\tpostMessage([\"SUCCESS\", result]);\n\t\t}).catch((error) => {\n\t\t\tpostMessage([\"ERROR\", error]);\n\t\t});\n\t};\n}\nvar jobRunner_default = jobRunner;\n\n//#endregion\n//#region useWebWorkerFn/lib/createWorkerBlobUrl.ts\n/**\n* Converts the \"fn\" function into the syntax needed to be executed within a web worker\n*\n* @param fn the function to run with web worker\n* @param deps array of strings, imported into the worker through \"importScripts\"\n* @param localDeps array of function, local dependencies\n*\n* @returns a blob url, containing the code of \"fn\" as a string\n*\n* @example\n* createWorkerBlobUrl((a,b) => a+b, [])\n* // return \"onmessage=return Promise.resolve((a,b) => a + b)\n* .then(postMessage(['SUCCESS', result]))\n* .catch(postMessage(['ERROR', error])\"\n*/\nfunction createWorkerBlobUrl(fn, deps, localDeps) {\n\tconst blobCode = `${depsParser_default(deps, localDeps)}; onmessage=(${jobRunner_default})(${fn})`;\n\tconst blob = new Blob([blobCode], { type: \"text/javascript\" });\n\treturn URL.createObjectURL(blob);\n}\nvar createWorkerBlobUrl_default = createWorkerBlobUrl;\n\n//#endregion\n//#region useWebWorkerFn/index.ts\n/**\n* Run expensive function without blocking the UI, using a simple syntax that makes use of Promise.\n*\n* @see https://vueuse.org/useWebWorkerFn\n* @param fn\n* @param options\n*/\nfunction useWebWorkerFn(fn, options = {}) {\n\tconst { dependencies = [], localDependencies = [], timeout, window: window$1 = defaultWindow } = options;\n\tconst worker = ref();\n\tconst workerStatus = shallowRef(\"PENDING\");\n\tconst promise = ref({});\n\tconst timeoutId = shallowRef();\n\tconst workerTerminate = (status = \"PENDING\") => {\n\t\tif (worker.value && worker.value._url && window$1) {\n\t\t\tworker.value.terminate();\n\t\t\tURL.revokeObjectURL(worker.value._url);\n\t\t\tpromise.value = {};\n\t\t\tworker.value = void 0;\n\t\t\twindow$1.clearTimeout(timeoutId.value);\n\t\t\tworkerStatus.value = status;\n\t\t}\n\t};\n\tworkerTerminate();\n\ttryOnScopeDispose(workerTerminate);\n\tconst generateWorker = () => {\n\t\tconst blobUrl = createWorkerBlobUrl_default(fn, dependencies, localDependencies);\n\t\tconst newWorker = new Worker(blobUrl);\n\t\tnewWorker._url = blobUrl;\n\t\tnewWorker.onmessage = (e) => {\n\t\t\tconst { resolve = () => {}, reject = () => {} } = promise.value;\n\t\t\tconst [status, result] = e.data;\n\t\t\tswitch (status) {\n\t\t\t\tcase \"SUCCESS\":\n\t\t\t\t\tresolve(result);\n\t\t\t\t\tworkerTerminate(status);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\treject(result);\n\t\t\t\t\tworkerTerminate(\"ERROR\");\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\tnewWorker.onerror = (e) => {\n\t\t\tconst { reject = () => {} } = promise.value;\n\t\t\te.preventDefault();\n\t\t\treject(e);\n\t\t\tworkerTerminate(\"ERROR\");\n\t\t};\n\t\tif (timeout) timeoutId.value = setTimeout(() => workerTerminate(\"TIMEOUT_EXPIRED\"), timeout);\n\t\treturn newWorker;\n\t};\n\tconst callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n\t\tvar _worker$value;\n\t\tpromise.value = {\n\t\t\tresolve,\n\t\t\treject\n\t\t};\n\t\t(_worker$value = worker.value) === null || _worker$value === void 0 || _worker$value.postMessage([[...fnArgs]]);\n\t\tworkerStatus.value = \"RUNNING\";\n\t});\n\tconst workerFn = (...fnArgs) => {\n\t\tif (workerStatus.value === \"RUNNING\") {\n\t\t\tconsole.error(\"[useWebWorkerFn] You can only run one instance of the worker at a time.\");\n\t\t\treturn Promise.reject();\n\t\t}\n\t\tworker.value = generateWorker();\n\t\treturn callWorker(...fnArgs);\n\t};\n\treturn {\n\t\tworkerFn,\n\t\tworkerStatus,\n\t\tworkerTerminate\n\t};\n}\n\n//#endregion\n//#region useWindowFocus/index.ts\n/**\n* Reactively track window focus with `window.onfocus` and `window.onblur`.\n*\n* @see https://vueuse.org/useWindowFocus\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useWindowFocus(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tif (!window$1) return shallowRef(false);\n\tconst focused = shallowRef(window$1.document.hasFocus());\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(window$1, \"blur\", () => {\n\t\tfocused.value = false;\n\t}, listenerOptions);\n\tuseEventListener(window$1, \"focus\", () => {\n\t\tfocused.value = true;\n\t}, listenerOptions);\n\treturn focused;\n}\n\n//#endregion\n//#region useWindowScroll/index.ts\n/**\n* Reactive window scroll.\n*\n* @see https://vueuse.org/useWindowScroll\n* @param options\n*/\nfunction useWindowScroll(options = {}) {\n\tconst { window: window$1 = defaultWindow,...rest } = options;\n\treturn useScroll(window$1, rest);\n}\n\n//#endregion\n//#region useWindowSize/index.ts\n/**\n* Reactive window size.\n*\n* @see https://vueuse.org/useWindowSize\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useWindowSize(options = {}) {\n\tconst { window: window$1 = defaultWindow, initialWidth = Number.POSITIVE_INFINITY, initialHeight = Number.POSITIVE_INFINITY, listenOrientation = true, includeScrollbar = true, type = \"inner\" } = options;\n\tconst width = shallowRef(initialWidth);\n\tconst height = shallowRef(initialHeight);\n\tconst update = () => {\n\t\tif (window$1) if (type === \"outer\") {\n\t\t\twidth.value = window$1.outerWidth;\n\t\t\theight.value = window$1.outerHeight;\n\t\t} else if (type === \"visual\" && window$1.visualViewport) {\n\t\t\tconst { width: visualViewportWidth, height: visualViewportHeight, scale } = window$1.visualViewport;\n\t\t\twidth.value = Math.round(visualViewportWidth * scale);\n\t\t\theight.value = Math.round(visualViewportHeight * scale);\n\t\t} else if (includeScrollbar) {\n\t\t\twidth.value = window$1.innerWidth;\n\t\t\theight.value = window$1.innerHeight;\n\t\t} else {\n\t\t\twidth.value = window$1.document.documentElement.clientWidth;\n\t\t\theight.value = window$1.document.documentElement.clientHeight;\n\t\t}\n\t};\n\tupdate();\n\ttryOnMounted(update);\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(\"resize\", update, listenerOptions);\n\tif (window$1 && type === \"visual\" && window$1.visualViewport) useEventListener(window$1.visualViewport, \"resize\", update, listenerOptions);\n\tif (listenOrientation) watch(useMediaQuery(\"(orientation: portrait)\"), () => update());\n\treturn {\n\t\twidth,\n\t\theight\n\t};\n}\n\n//#endregion\nexport { DefaultMagicKeysAliasMap, StorageSerializers, TransitionPresets, asyncComputed, breakpointsAntDesign, breakpointsBootstrapV5, breakpointsElement, breakpointsMasterCss, breakpointsPrimeFlex, breakpointsQuasar, breakpointsSematic, breakpointsTailwind, breakpointsVuetify, breakpointsVuetifyV2, breakpointsVuetifyV3, cloneFnJSON, computedAsync, computedInject, createFetch, createReusableTemplate, createTemplatePromise, createUnrefFn, customStorageEventName, defaultDocument, defaultLocation, defaultNavigator, defaultWindow, executeTransition, formatTimeAgo, formatTimeAgoIntl, formatTimeAgoIntlParts, getSSRHandler, mapGamepadToXbox360Controller, onClickOutside, onElementRemoval, onKeyDown, onKeyPressed, onKeyStroke, onKeyUp, onLongPress, onStartTyping, provideSSRWidth, setSSRHandler, templateRef, transition, unrefElement, useActiveElement, useAnimate, useAsyncQueue, useAsyncState, useBase64, useBattery, useBluetooth, useBreakpoints, useBroadcastChannel, useBrowserLocation, useCached, useClipboard, useClipboardItems, useCloned, useColorMode, useConfirmDialog, useCountdown, useCssVar, useCurrentElement, useCycleList, useDark, useDebouncedRefHistory, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDisplayMedia, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementHover, useElementSize, useElementVisibility, useEventBus, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetch, useFileDialog, useFileSystemAccess, useFocus, useFocusWithin, useFps, useFullscreen, useGamepad, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useKeyModifier, useLocalStorage, useMagicKeys, useManualRefHistory, useMediaControls, useMediaQuery, useMemoize, useMemory, useMounted, useMouse, useMouseInElement, useMousePressed, useMutationObserver, useNavigatorLanguage, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, useParallax, useParentElement, usePerformanceObserver, usePermission, usePointer, usePointerLock, usePointerSwipe, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePreferredReducedTransparency, usePrevious, useRafFn, useRefHistory, useResizeObserver, useSSRWidth, useScreenOrientation, useScreenSafeArea, useScriptTag, useScroll, useScrollLock, useSessionStorage, useShare, useSorted, useSpeechRecognition, useSpeechSynthesis, useStepper, useStorage, useStorageAsync, useStyleTag, useSupported, useSwipe, useTemplateRefsList, useTextDirection, useTextSelection, useTextareaAutosize, useThrottledRefHistory, useTimeAgo, useTimeAgoIntl, useTimeoutPoll, useTimestamp, useTitle, useTransition, useUrlSearchParams, useUserMedia, useVModel, useVModels, useVibrate, useVirtualList, useWakeLock, useWebNotification, useWebSocket, useWebWorker, useWebWorkerFn, useWindowFocus, useWindowScroll, useWindowSize };","window._nc_vue_element_id = window._nc_vue_element_id ?? 0;\nfunction createElementId() {\n return `nc-vue-${window._nc_vue_element_id++}`;\n}\nexport {\n createElementId as c\n};\n//# sourceMappingURL=createElementId-DhjFt1I9.mjs.map\n","import { getLanguage } from \"@nextcloud/l10n\";\nimport { getGettextBuilder } from \"@nextcloud/l10n/gettext\";\n/*!\n * SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst gettext = getGettextBuilder().detectLanguage().build();\nconst n = (...args) => gettext.ngettext(...args);\nconst t = (...args) => gettext.gettext(...args);\nfunction register(...chunks) {\n for (const chunk of chunks) {\n if (chunk.registered) {\n continue;\n }\n for (const { l: language, t: translations } of chunk) {\n if (language !== getLanguage() || !translations) {\n continue;\n }\n const decompressed = Object.fromEntries(Object.entries(translations).map(([id, value]) => [\n id,\n {\n msgid: id,\n msgid_plural: value.p,\n msgstr: value.v\n }\n ]));\n gettext.addTranslations({\n translations: {\n \"\": decompressed\n }\n });\n }\n chunk.registered = true;\n }\n}\nconst t0 = [{ \"l\": \"ar\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (غير مرئي)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (مقيد)\"] }, \"Select a tag\": { \"v\": [\"اختر وسم\"] } } }, { \"l\": \"ast\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restrinxóse)\"] }, \"Select a tag\": { \"v\": [\"Seleicionar una etiqueta\"] } } }, { \"l\": \"br\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (diwelus)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (bevennet)\"] }, \"Select a tag\": { \"v\": [\"Choaz ur c'hlav\"] } } }, { \"l\": \"ca\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restringit)\"] }, \"Select a tag\": { \"v\": [\"Seleccioneu una etiqueta\"] } } }, { \"l\": \"cs\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (neviditelné)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (omezené)\"] }, \"Select a tag\": { \"v\": [\"Vybrat štítek\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (neviditelné)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (omezené)\"] }, \"Select a tag\": { \"v\": [\"Vybrat štítek\"] } } }, { \"l\": \"da\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (usynlig)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (begrænset)\"] }, \"Select a tag\": { \"v\": [\"Vælg et mærke\"] } } }, { \"l\": \"de\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (unsichtbar)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (eingeschränkt)\"] }, \"Select a tag\": { \"v\": [\"Schlagwort auswählen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (unsichtbar)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (eingeschränkt)\"] }, \"Select a tag\": { \"v\": [\"Schlagwort auswählen\"] } } }, { \"l\": \"el\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (αόρατο)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (περιορισμένο)\"] }, \"Select a tag\": { \"v\": [\"Επιλογή ετικέτας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restricted)\"] }, \"Select a tag\": { \"v\": [\"Select a tag\"] } } }, { \"l\": \"eo\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (kaŝita)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (limigita)\"] }, \"Select a tag\": { \"v\": [\"Elektu etikedon\"] } } }, { \"l\": \"es\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restringido)\"] }, \"Select a tag\": { \"v\": [\"Seleccione una etiqueta\"] } } }, { \"l\": \"es-AR\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restringido)\"] }, \"Select a tag\": { \"v\": [\"Elija una etiqueta\"] } } }, { \"l\": \"es-EC\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restricted)\"] }, \"Select a tag\": { \"v\": [\"Seleccionar una etiqueta\"] } } }, { \"l\": \"es-MX\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restringido)\"] }, \"Select a tag\": { \"v\": [\"Seleccionar una etiqueta\"] } } }, { \"l\": \"et-EE\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (nähtamatu)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (piiratud)\"] }, \"Select a tag\": { \"v\": [\"Vali silt\"] } } }, { \"l\": \"eu\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ikusezina)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (mugatua)\"] }, \"Select a tag\": { \"v\": [\"Hautatu etiketa bat\"] } } }, { \"l\": \"fa\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} مخفی\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} محدود شده\"] }, \"Select a tag\": { \"v\": [\"انتخاب یک برچسب\"] } } }, { \"l\": \"fi\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (näkymätön)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (rajoitettu)\"] }, \"Select a tag\": { \"v\": [\"Valitse tunniste\"] } } }, { \"l\": \"fr\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restreint)\"] }, \"Select a tag\": { \"v\": [\"Sélectionnez une balise\"] } } }, { \"l\": \"ga\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (dofheicthe)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (srianta)\"] }, \"Select a tag\": { \"v\": [\"Roghnaigh clib\"] } } }, { \"l\": \"gl\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisíbel)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restrinxido)\"] }, \"Select a tag\": { \"v\": [\"Seleccione unha etiqueta\"] } } }, { \"l\": \"he\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (נסתר)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (מוגבל)\"] }, \"Select a tag\": { \"v\": [\"בחירת תגית\"] } } }, { \"l\": \"hu\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (láthatatlan)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (korlátozott)\"] }, \"Select a tag\": { \"v\": [\"Válasszon címkét\"] } } }, { \"l\": \"id\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (tidak terlihat)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (dibatasi)\"] }, \"Select a tag\": { \"v\": [\"Pilih tag\"] } } }, { \"l\": \"is\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ósýnilegt)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (takmarkað)\"] }, \"Select a tag\": { \"v\": [\"Veldu merki\"] } } }, { \"l\": \"it\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisibile)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (limitato)\"] }, \"Select a tag\": { \"v\": [\"Seleziona un'etichetta\"] } } }, { \"l\": \"ja\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (不可視)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (制限付)\"] }, \"Select a tag\": { \"v\": [\"タグを選択\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (不可視)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (制限付)\"] }, \"Select a tag\": { \"v\": [\"タグを選択\"] } } }, { \"l\": \"ko\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag}(숨김)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag}(제한)\"] }, \"Select a tag\": { \"v\": [\"태그 선택\"] } } }, { \"l\": \"lo\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ບໍ່ສະແດງ)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ຈຳກັດ)\"] }, \"Select a tag\": { \"v\": [\"ເລືອກແທັກ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (nematoma)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (apribota)\"] }, \"Select a tag\": { \"v\": [\"Pasirinkti žymę\"] } } }, { \"l\": \"lv\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (neredzams)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ierobežots)\"] }, \"Select a tag\": { \"v\": [\"Izvēlēties birku\"] } } }, { \"l\": \"mk\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (невидливо)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ограничено)\"] }, \"Select a tag\": { \"v\": [\"Избери ознака\"] } } }, { \"l\": \"my\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ကွယ်ဝှက်ထား)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ကန့်သတ်)\"] }, \"Select a tag\": { \"v\": [\"tag ရွေးချယ်ရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (usynlig)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (beskyttet)\"] }, \"Select a tag\": { \"v\": [\"Velg en merkelapp\"] } } }, { \"l\": \"nl\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (onzichtbaar)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (beperkt)\"] }, \"Select a tag\": { \"v\": [\"Selecteer een label\"] } } }, { \"l\": \"oc\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (limit)\"] }, \"Select a tag\": { \"v\": [\"Seleccionar una etiqueta\"] } } }, { \"l\": \"pl\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (niewidoczna)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ograniczona)\"] }, \"Select a tag\": { \"v\": [\"Wybierz etykietę\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisível)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restrito)\"] }, \"Select a tag\": { \"v\": [\"Selecione uma etiqueta\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisível)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restrito)\"] }, \"Select a tag\": { \"v\": [\"Selecionar uma etiqueta\"] } } }, { \"l\": \"ro\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invizibil)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restricționat)\"] }, \"Select a tag\": { \"v\": [\"Selectați o etichetă\"] } } }, { \"l\": \"ru\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (невидимое)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ограниченное)\"] }, \"Select a tag\": { \"v\": [\"Выберите метку\"] } } }, { \"l\": \"sk\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (neviditeľný)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (obmedzený)\"] }, \"Select a tag\": { \"v\": [\"Vybrať štítok\"] } } }, { \"l\": \"sl\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (nevidno)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (omejeno)\"] }, \"Select a tag\": { \"v\": [\"Izbor oznake\"] } } }, { \"l\": \"sr\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (невидљиво)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ограничено)\"] }, \"Select a tag\": { \"v\": [\"Изаберите ознаку\"] } } }, { \"l\": \"sv\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (osynlig)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (begränsad)\"] }, \"Select a tag\": { \"v\": [\"Välj en tag\"] } } }, { \"l\": \"tr\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (görünmez)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (kısıtlanmış)\"] }, \"Select a tag\": { \"v\": [\"Bir etiket seçin\"] } } }, { \"l\": \"uk\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (невидимий)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (обмежений)\"] }, \"Select a tag\": { \"v\": [\"Виберіть позначку\"] } } }, { \"l\": \"uz\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ko'rinmas)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (cheklangan)\"] }, \"Select a tag\": { \"v\": [\"Teg tanlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (隐藏)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (受限)\"] }, \"Select a tag\": { \"v\": [\"选择一个标签\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (隱藏)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (受限)\"] }, \"Select a tag\": { \"v\": [\"選擇標籤\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag}(隱藏)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag}(受限)\"] }, \"Select a tag\": { \"v\": [\"選擇標籤\"] } } }];\nconst t1 = [{ \"l\": \"ar\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"لون بالقيمة الست عشرية {hex}\"] }, \"Back\": { \"v\": [\"عودة\"] }, \"Choose\": { \"v\": [\"إختَر\"] }, \"Color picker\": { \"v\": [\"لاقط الألوان\"] }, \"More options\": { \"v\": [\"خيارات أخرى ...\"] } } }, { \"l\": \"ast\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un color con un valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Escoyer\"] }, \"Color picker\": { \"v\": [\"Selector de colores\"] }, \"More options\": { \"v\": [\"Más opciones\"] } } }, { \"l\": \"br\", \"t\": { \"Choose\": { \"v\": [\"Dibab\"] } } }, { \"l\": \"ca\", \"t\": { \"Choose\": { \"v\": [\"Tria\"] } } }, { \"l\": \"cs\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Barva vyjádřená HEX hodnotou {hex}\"] }, \"Back\": { \"v\": [\"Zpět\"] }, \"Choose\": { \"v\": [\"Zvolit\"] }, \"Color picker\": { \"v\": [\"Výběr barev\"] }, \"More options\": { \"v\": [\"Další volby\"] }, \"No color\": { \"v\": [\"Žádná barva\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Barva vyjádřená HEX hodnotou {hex}\"] }, \"Back\": { \"v\": [\"Zpět\"] }, \"Choose\": { \"v\": [\"Zvolit\"] }, \"Color picker\": { \"v\": [\"Výběr barev\"] }, \"More options\": { \"v\": [\"Další volby\"] } } }, { \"l\": \"da\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"En farve med en HEX-værdi {hex}\"] }, \"Back\": { \"v\": [\"Tilbage\"] }, \"Choose\": { \"v\": [\"Vælg\"] }, \"Color picker\": { \"v\": [\"Farvevælger\"] }, \"More options\": { \"v\": [\"Flere muligheder\"] }, \"No color\": { \"v\": [\"Ingen farve\"] } } }, { \"l\": \"de\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Eine Farbe mit einem HEX-Wert {hex}\"] }, \"Back\": { \"v\": [\"Zurück\"] }, \"Choose\": { \"v\": [\"Auswählen\"] }, \"Color picker\": { \"v\": [\"Farbauswahl\"] }, \"More options\": { \"v\": [\"Weitere Optionen\"] }, \"No color\": { \"v\": [\"Keine Farbe\"] } } }, { \"l\": \"de-DE\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Eine Farbe mit einem HEX-Wert {hex}\"] }, \"Back\": { \"v\": [\"Zurück\"] }, \"Choose\": { \"v\": [\"Auswählen\"] }, \"Color picker\": { \"v\": [\"Farbauswahl\"] }, \"More options\": { \"v\": [\"Mehr Optionen\"] }, \"No color\": { \"v\": [\"Keine Farbe\"] } } }, { \"l\": \"el\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Ένα χρώμα με τιμή HEX {hex}\"] }, \"Back\": { \"v\": [\"Επιστροφή\"] }, \"Choose\": { \"v\": [\"Επιλογή\"] }, \"Color picker\": { \"v\": [\"Επιλογέας χρώματος\"] }, \"More options\": { \"v\": [\"Περισσότερες επιλογές\"] }, \"No color\": { \"v\": [\"Χωρίς χρώμα\"] } } }, { \"l\": \"en-GB\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"A colour with a HEX value {hex}\"] }, \"Back\": { \"v\": [\"Back\"] }, \"Choose\": { \"v\": [\"Choose\"] }, \"Color picker\": { \"v\": [\"Colour picker\"] }, \"More options\": { \"v\": [\"More options\"] }, \"No color\": { \"v\": [\"No colour\"] } } }, { \"l\": \"eo\", \"t\": { \"Choose\": { \"v\": [\"Elektu\"] } } }, { \"l\": \"es\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un color con un valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Escoger\"] }, \"Color picker\": { \"v\": [\"Selector de color\"] }, \"More options\": { \"v\": [\"Más opciones\"] } } }, { \"l\": \"es-AR\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un color con valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Elegir\"] }, \"Color picker\": { \"v\": [\"Selector de color\"] }, \"More options\": { \"v\": [\"Más opciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Elegir\"] }, \"More options\": { \"v\": [\"Más opciones\"] } } }, { \"l\": \"es-MX\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un color con valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Elegir\"] }, \"Color picker\": { \"v\": [\"Selector de color\"] }, \"More options\": { \"v\": [\"Más opciones\"] } } }, { \"l\": \"et-EE\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Värv hexi väärtusega {hex}\"] }, \"Back\": { \"v\": [\"Tagasi\"] }, \"Choose\": { \"v\": [\"Tee valik\"] }, \"Color picker\": { \"v\": [\"Värvivalija\"] }, \"More options\": { \"v\": [\"Rohkem valikuid\"] }, \"No color\": { \"v\": [\"Värv puudub\"] } } }, { \"l\": \"eu\", \"t\": { \"Back\": { \"v\": [\"Atzera\"] }, \"Choose\": { \"v\": [\"Aukeratu\"] }, \"More options\": { \"v\": [\"Aukera gehiago\"] } } }, { \"l\": \"fa\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"رنگی با مقدار مبنای هشت {hex}\"] }, \"Back\": { \"v\": [\"بازگشت\"] }, \"Choose\": { \"v\": [\"انتخاب کنید\"] }, \"Color picker\": { \"v\": [\"انتخابگر رنگ\"] }, \"More options\": { \"v\": [\"گزینههای بیشتر\"] } } }, { \"l\": \"fi\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Väri heksa-arvolla {hex}\"] }, \"Back\": { \"v\": [\"Takaisin\"] }, \"Choose\": { \"v\": [\"Valitse\"] }, \"Color picker\": { \"v\": [\"Värivalitsin\"] }, \"More options\": { \"v\": [\"Lisää vaihtoehtoja\"] } } }, { \"l\": \"fr\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Une couleur de valeur HEX {hex}\"] }, \"Back\": { \"v\": [\"Retour\"] }, \"Choose\": { \"v\": [\"Choisir\"] }, \"Color picker\": { \"v\": [\"Sélecteur de couleurs\"] }, \"More options\": { \"v\": [\"Plus d'options\"] }, \"No color\": { \"v\": [\"Sans couleur\"] } } }, { \"l\": \"ga\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Dath le luach HEX {hex}\"] }, \"Back\": { \"v\": [\"Ar ais\"] }, \"Choose\": { \"v\": [\"Roghnaigh\"] }, \"Color picker\": { \"v\": [\"Roghnóir dathanna\"] }, \"More options\": { \"v\": [\"Tuilleadh roghanna\"] }, \"No color\": { \"v\": [\"Gan dath\"] } } }, { \"l\": \"gl\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Unha cor cun valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Escoller\"] }, \"Color picker\": { \"v\": [\"Selector de cores\"] }, \"More options\": { \"v\": [\"Máis opcións\"] }, \"No color\": { \"v\": [\"Sen cor\"] } } }, { \"l\": \"he\", \"t\": { \"Back\": { \"v\": [\"חזרה\"] }, \"Choose\": { \"v\": [\"בחירה\"] }, \"More options\": { \"v\": [\"אפשרויות נוספות\"] } } }, { \"l\": \"hu\", \"t\": { \"Choose\": { \"v\": [\"Válassszon\"] } } }, { \"l\": \"id\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Warna dengan nilai HEX {hex}\"] }, \"Back\": { \"v\": [\"Kembali\"] }, \"Choose\": { \"v\": [\"Pilih\"] }, \"More options\": { \"v\": [\"Opsi lainnya\"] } } }, { \"l\": \"is\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Litur með HEX-gildi {hex}\"] }, \"Back\": { \"v\": [\"Til baka\"] }, \"Choose\": { \"v\": [\"Velja\"] }, \"Color picker\": { \"v\": [\"Litaplokkari\"] }, \"More options\": { \"v\": [\"Fleiri valkostir\"] } } }, { \"l\": \"it\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un colore con un valore HEX {hex}\"] }, \"Back\": { \"v\": [\"Indietro\"] }, \"Choose\": { \"v\": [\"Scegli\"] }, \"More options\": { \"v\": [\"Altre opzioni\"] } } }, { \"l\": \"ja\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\" HEX値 {hex} を持つ色\"] }, \"Back\": { \"v\": [\"戻る\"] }, \"Choose\": { \"v\": [\"選択\"] }, \"Color picker\": { \"v\": [\"カラーピッカー\"] }, \"More options\": { \"v\": [\"他のオプション\"] }, \"No color\": { \"v\": [\"色なし\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\" HEX値 {hex} を持つ色\"] }, \"Back\": { \"v\": [\"戻る\"] }, \"Choose\": { \"v\": [\"選択\"] }, \"Color picker\": { \"v\": [\"カラーピッカー\"] }, \"More options\": { \"v\": [\"他のオプション\"] } } }, { \"l\": \"ko\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"HEX 값이 {hex}인 색상\"] }, \"Back\": { \"v\": [\"뒤로\"] }, \"Choose\": { \"v\": [\"선택\"] }, \"Color picker\": { \"v\": [\"색상 선택기\"] }, \"More options\": { \"v\": [\"옵션 더 보기\"] } } }, { \"l\": \"lo\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"ສີທີ່ມີຄ່າ HEX {hex}\"] }, \"Back\": { \"v\": [\"ກັບຄືນ\"] }, \"Choose\": { \"v\": [\"ເລືອກ\"] }, \"Color picker\": { \"v\": [\"ໂຕເລືອກສີ\"] }, \"More options\": { \"v\": [\"ຕົວເລືອກເພີ່ມເຕີມ\"] }, \"No color\": { \"v\": [\"ບໍ່ມີສີ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Choose\": { \"v\": [\"Pasirinkti\"] } } }, { \"l\": \"lv\", \"t\": { \"Choose\": { \"v\": [\"Izvēlēties\"] } } }, { \"l\": \"mk\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Боја со HEX вредност {hex}\"] }, \"Back\": { \"v\": [\"Назад\"] }, \"Choose\": { \"v\": [\"Избери\"] }, \"Color picker\": { \"v\": [\"Избор на боја\"] }, \"More options\": { \"v\": [\"Повеќе опции\"] }, \"No color\": { \"v\": [\"Без боја\"] } } }, { \"l\": \"my\", \"t\": { \"Choose\": { \"v\": [\"ရွေးချယ်ရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"En farge med en HEX-verdi {hex}\"] }, \"Back\": { \"v\": [\"Tilbake\"] }, \"Choose\": { \"v\": [\"Velg\"] }, \"Color picker\": { \"v\": [\"Fargevelger\"] }, \"More options\": { \"v\": [\"Flere alternativer\"] } } }, { \"l\": \"nl\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Een kleur met een HEX-waarde {hex}\"] }, \"Back\": { \"v\": [\"Terug\"] }, \"Choose\": { \"v\": [\"Kiezen\"] }, \"Color picker\": { \"v\": [\"Kleurkiezer\"] }, \"More options\": { \"v\": [\"Meer opties\"] }, \"No color\": { \"v\": [\"Geen kleur\"] } } }, { \"l\": \"oc\", \"t\": { \"Choose\": { \"v\": [\"Causir\"] } } }, { \"l\": \"pl\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Kolor o wartości HEX {hex}\"] }, \"Back\": { \"v\": [\"Wstecz\"] }, \"Choose\": { \"v\": [\"Wybierz\"] }, \"Color picker\": { \"v\": [\"Wybierz kolor\"] }, \"More options\": { \"v\": [\"Więcej opcji\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Uma cor com valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Voltar\"] }, \"Choose\": { \"v\": [\"Escolher\"] }, \"Color picker\": { \"v\": [\"Seletor de cores\"] }, \"More options\": { \"v\": [\"Mais opções\"] }, \"No color\": { \"v\": [\"Sem cor\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Uma cor com o valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Anterior\"] }, \"Choose\": { \"v\": [\"Escolher\"] }, \"Color picker\": { \"v\": [\"seletor de cores\"] }, \"More options\": { \"v\": [\"Mais opções\"] } } }, { \"l\": \"ro\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"O culoare în HEX value {hex}\"] }, \"Back\": { \"v\": [\"Înapoi\"] }, \"Choose\": { \"v\": [\"Alegeți\"] }, \"More options\": { \"v\": [\"Mai multe opțiuni\"] } } }, { \"l\": \"ru\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Цвет в HEX {hex}\"] }, \"Back\": { \"v\": [\"Назад\"] }, \"Choose\": { \"v\": [\"Выберите\"] }, \"Color picker\": { \"v\": [\"Выбор цвета\"] }, \"More options\": { \"v\": [\"Больше опций\"] }, \"No color\": { \"v\": [\"Без цвета\"] } } }, { \"l\": \"sk\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Farba s hodnotou HEX {hex}\"] }, \"Back\": { \"v\": [\"Späť\"] }, \"Choose\": { \"v\": [\"Vybrať\"] }, \"Color picker\": { \"v\": [\"Výber farby\"] }, \"More options\": { \"v\": [\"Viac možností\"] } } }, { \"l\": \"sl\", \"t\": { \"Choose\": { \"v\": [\"Izbor\"] } } }, { \"l\": \"sr\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Боја са HEX вредности {hex}\"] }, \"Back\": { \"v\": [\"Назад\"] }, \"Choose\": { \"v\": [\"Изаберите\"] }, \"Color picker\": { \"v\": [\"Бирач боје\"] }, \"More options\": { \"v\": [\"Још опција\"] }, \"No color\": { \"v\": [\"Без боје\"] } } }, { \"l\": \"sv\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"En färg med ett HEX-värde {hex}\"] }, \"Back\": { \"v\": [\"Tillbaka\"] }, \"Choose\": { \"v\": [\"Välj\"] }, \"Color picker\": { \"v\": [\"Färgväljare\"] }, \"More options\": { \"v\": [\"Fler alternativ\"] } } }, { \"l\": \"tr\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"{hex} onaltılık değeri ile bir renk \"] }, \"Back\": { \"v\": [\"Geri\"] }, \"Choose\": { \"v\": [\"Seçin\"] }, \"Color picker\": { \"v\": [\"Renk seçici\"] }, \"More options\": { \"v\": [\"Diğer seçenekler\"] }, \"No color\": { \"v\": [\"Renk yok\"] } } }, { \"l\": \"uk\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Колір у форматі HEX {hex}\"] }, \"Back\": { \"v\": [\"Назад\"] }, \"Choose\": { \"v\": [\"Виберіть\"] }, \"Color picker\": { \"v\": [\"Вибір кольору\"] }, \"More options\": { \"v\": [\"Більше об'єктів\"] } } }, { \"l\": \"uz\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"HEX qiymatiga ega rang {hex}\"] }, \"Back\": { \"v\": [\"Orqaga\"] }, \"Choose\": { \"v\": [\"Tanlang\"] }, \"Color picker\": { \"v\": [\"Rang tanlagich\"] }, \"More options\": { \"v\": [\"Boshqa variantlar\"] }, \"No color\": { \"v\": [\"Rangsiz\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"以16进制 {hex} 表示的颜色为\"] }, \"Back\": { \"v\": [\"返回\"] }, \"Choose\": { \"v\": [\"选择\"] }, \"Color picker\": { \"v\": [\"颜色拾取器\"] }, \"More options\": { \"v\": [\"更多选项\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"具有 HEX 值 {hex}的顏色 \"] }, \"Back\": { \"v\": [\"返回\"] }, \"Choose\": { \"v\": [\"選擇\"] }, \"Color picker\": { \"v\": [\"顏色選擇器\"] }, \"More options\": { \"v\": [\"更多選項\"] }, \"No color\": { \"v\": [\"無顏色\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"HEX 值為 {hex} 的顏色\"] }, \"Back\": { \"v\": [\"返回\"] }, \"Choose\": { \"v\": [\"選擇\"] }, \"Color picker\": { \"v\": [\"色彩挑選器\"] }, \"More options\": { \"v\": [\"更多選項\"] } } }];\nconst t2 = [{ \"l\": \"ar\", \"t\": { \"a few seconds ago\": { \"v\": [\"منذ عدة ثوانٍ\"] }, \"sec. ago\": { \"v\": [\"ثانية مضت\"] }, \"seconds ago\": { \"v\": [\"ثوانٍ مضت\"] } } }, { \"l\": \"ast\", \"t\": { \"a few seconds ago\": { \"v\": [\"hai unos segundos\"] }, \"sec. ago\": { \"v\": [\"hai segs\"] }, \"seconds ago\": { \"v\": [\"hai segundos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"a few seconds ago\": { \"v\": [\"před několika sekundami\"] }, \"sec. ago\": { \"v\": [\"sek. před\"] }, \"seconds ago\": { \"v\": [\"sekund předtím\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"a few seconds ago\": { \"v\": [\"před několika sekundami\"] }, \"sec. ago\": { \"v\": [\"sek. před\"] }, \"seconds ago\": { \"v\": [\"sekund předtím\"] } } }, { \"l\": \"da\", \"t\": { \"a few seconds ago\": { \"v\": [\"et par sekunder siden\"] }, \"sec. ago\": { \"v\": [\"sek. siden\"] }, \"seconds ago\": { \"v\": [\"sekunder siden\"] } } }, { \"l\": \"de\", \"t\": { \"a few seconds ago\": { \"v\": [\"vor ein paar Sekunden\"] }, \"sec. ago\": { \"v\": [\"Sek. zuvor\"] }, \"seconds ago\": { \"v\": [\"Sekunden zuvor\"] } } }, { \"l\": \"de-DE\", \"t\": { \"a few seconds ago\": { \"v\": [\"vor ein paar Sekunden\"] }, \"sec. ago\": { \"v\": [\"Sek. zuvor\"] }, \"seconds ago\": { \"v\": [\"Sekunden zuvor\"] } } }, { \"l\": \"el\", \"t\": { \"a few seconds ago\": { \"v\": [\"πριν λίγα δευτερόλεπτα\"] }, \"sec. ago\": { \"v\": [\"δευτ. πριν\"] }, \"seconds ago\": { \"v\": [\"δευτερόλεπτα πριν\"] } } }, { \"l\": \"en-GB\", \"t\": { \"a few seconds ago\": { \"v\": [\"a few seconds ago\"] }, \"sec. ago\": { \"v\": [\"sec. ago\"] }, \"seconds ago\": { \"v\": [\"seconds ago\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos pocos segundos\"] }, \"sec. ago\": { \"v\": [\"hace segundos\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"es-AR\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"es-EC\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos segundos\"] }, \"sec. ago\": { \"v\": [\"hace segundos\"] }, \"seconds ago\": { \"v\": [\"Segundos atrás\"] } } }, { \"l\": \"es-MX\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"et-EE\", \"t\": { \"a few seconds ago\": { \"v\": [\"mõni sekund tagasi\"] }, \"sec. ago\": { \"v\": [\"sek. tagasi\"] }, \"seconds ago\": { \"v\": [\"sekundit tagasi\"] } } }, { \"l\": \"eu\", \"t\": { \"a few seconds ago\": { \"v\": [\"duela segundo batzuk\"] }, \"sec. ago\": { \"v\": [\"duela seg.\"] }, \"seconds ago\": { \"v\": [\"duela segundo\"] } } }, { \"l\": \"fa\", \"t\": { \"a few seconds ago\": { \"v\": [\"چند ثانیه پیش\"] }, \"sec. ago\": { \"v\": [\"چند ثانیه پیش\"] }, \"seconds ago\": { \"v\": [\"چند ثانیه پیش\"] } } }, { \"l\": \"fi\", \"t\": { \"a few seconds ago\": { \"v\": [\"muutamia sekunteja sitten\"] }, \"sec. ago\": { \"v\": [\"sek. sitten\"] }, \"seconds ago\": { \"v\": [\"sekunteja sitten\"] } } }, { \"l\": \"fr\", \"t\": { \"a few seconds ago\": { \"v\": [\"il y a quelques instants\"] }, \"sec. ago\": { \"v\": [\"il y a qq. sec.\"] }, \"seconds ago\": { \"v\": [\"il y a quelques secondes\"] } } }, { \"l\": \"ga\", \"t\": { \"a few seconds ago\": { \"v\": [\"cúpla soicind ó shin\"] }, \"sec. ago\": { \"v\": [\"soic. ó shin\"] }, \"seconds ago\": { \"v\": [\"soicind ó shin\"] } } }, { \"l\": \"gl\", \"t\": { \"a few seconds ago\": { \"v\": [\"hai uns segundos\"] }, \"sec. ago\": { \"v\": [\"segs. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"he\", \"t\": { \"a few seconds ago\": { \"v\": [\"לפני מספר שניות\"] }, \"sec. ago\": { \"v\": [\"לפני מספר שניות\"] }, \"seconds ago\": { \"v\": [\"לפני מס׳ שניות\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"a few seconds ago\": { \"v\": [\"beberapa detik yang lalu\"] }, \"sec. ago\": { \"v\": [\"dtk. yang lalu\"] }, \"seconds ago\": { \"v\": [\"beberapa detik lalu\"] } } }, { \"l\": \"is\", \"t\": { \"a few seconds ago\": { \"v\": [\"fyrir örfáum sekúndum síðan\"] }, \"sec. ago\": { \"v\": [\"sek. síðan\"] }, \"seconds ago\": { \"v\": [\"sekúndum síðan\"] } } }, { \"l\": \"it\", \"t\": { \"a few seconds ago\": { \"v\": [\"pochi secondi fa\"] }, \"sec. ago\": { \"v\": [\"sec. fa\"] }, \"seconds ago\": { \"v\": [\"secondi fa\"] } } }, { \"l\": \"ja\", \"t\": { \"a few seconds ago\": { \"v\": [\"数秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"数秒前\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"a few seconds ago\": { \"v\": [\"数秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"数秒前\"] } } }, { \"l\": \"ko\", \"t\": { \"a few seconds ago\": { \"v\": [\"방금 전\"] }, \"sec. ago\": { \"v\": [\"몇 초 전\"] }, \"seconds ago\": { \"v\": [\"초 전\"] } } }, { \"l\": \"lo\", \"t\": { \"a few seconds ago\": { \"v\": [\"ສອງສາມວິນາທີກ່ອນ\"] }, \"sec. ago\": { \"v\": [\"ວິ. ກ່ອນ\"] }, \"seconds ago\": { \"v\": [\"ວິນາທີກ່ອນ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"a few seconds ago\": { \"v\": [\"пред неколку секунди\"] }, \"sec. ago\": { \"v\": [\"секунда\"] }, \"seconds ago\": { \"v\": [\"секунди\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"a few seconds ago\": { \"v\": [\"noen få sekunder siden\"] }, \"sec. ago\": { \"v\": [\"sek. siden\"] }, \"seconds ago\": { \"v\": [\"sekunder siden\"] } } }, { \"l\": \"nl\", \"t\": { \"a few seconds ago\": { \"v\": [\"enkele seconden geleden\"] }, \"sec. ago\": { \"v\": [\"sec. geleden\"] }, \"seconds ago\": { \"v\": [\"seconden geleden\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"a few seconds ago\": { \"v\": [\"kilka sekund temu\"] }, \"sec. ago\": { \"v\": [\"sek. temu\"] }, \"seconds ago\": { \"v\": [\"sekund temu\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"a few seconds ago\": { \"v\": [\"há alguns segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"a few seconds ago\": { \"v\": [\"há alguns segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"ro\", \"t\": { \"a few seconds ago\": { \"v\": [\"acum câteva secunde\"] }, \"sec. ago\": { \"v\": [\"sec. în urmă\"] }, \"seconds ago\": { \"v\": [\"secunde în urmă\"] } } }, { \"l\": \"ru\", \"t\": { \"a few seconds ago\": { \"v\": [\"несколько секунд назад\"] }, \"sec. ago\": { \"v\": [\"сек. назад\"] }, \"seconds ago\": { \"v\": [\"секунд назад\"] } } }, { \"l\": \"sk\", \"t\": { \"a few seconds ago\": { \"v\": [\"pred chvíľou\"] }, \"sec. ago\": { \"v\": [\"pred pár sekundami\"] }, \"seconds ago\": { \"v\": [\"pred sekundami\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"a few seconds ago\": { \"v\": [\"пре неколико секунди\"] }, \"sec. ago\": { \"v\": [\"сек. раније\"] }, \"seconds ago\": { \"v\": [\"секунди раније\"] } } }, { \"l\": \"sv\", \"t\": { \"a few seconds ago\": { \"v\": [\"några sekunder sedan\"] }, \"sec. ago\": { \"v\": [\"sek. sedan\"] }, \"seconds ago\": { \"v\": [\"sekunder sedan\"] } } }, { \"l\": \"tr\", \"t\": { \"a few seconds ago\": { \"v\": [\"birkaç saniye önce\"] }, \"sec. ago\": { \"v\": [\"sn. önce\"] }, \"seconds ago\": { \"v\": [\"saniye önce\"] } } }, { \"l\": \"uk\", \"t\": { \"a few seconds ago\": { \"v\": [\"декілька секунд тому\"] }, \"sec. ago\": { \"v\": [\"с тому\"] }, \"seconds ago\": { \"v\": [\"с тому\"] } } }, { \"l\": \"uz\", \"t\": { \"a few seconds ago\": { \"v\": [\"bir necha soniya oldin\"] }, \"sec. ago\": { \"v\": [\"sek. oldin\"] }, \"seconds ago\": { \"v\": [\"soniyalar oldin\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"a few seconds ago\": { \"v\": [\"几秒前\"] }, \"sec. ago\": { \"v\": [\"几秒前\"] }, \"seconds ago\": { \"v\": [\"几秒前\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"a few seconds ago\": { \"v\": [\"幾秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"秒前\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"a few seconds ago\": { \"v\": [\"幾秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"秒前\"] } } }];\nconst t3 = [{ \"l\": \"ar\", \"t\": { \"Acapulco\": { \"v\": [\"بازلائي مطفي\"] }, \"Blue Violet\": { \"v\": [\"بنفسجي مشعشع\"] }, \"Boston Blue\": { \"v\": [\"سماوي مطفي\"] }, \"Deluge\": { \"v\": [\"بنفسجي مطفي\"] }, \"Feldspar\": { \"v\": [\"وردي صخري\"] }, \"Gold\": { \"v\": [\"ذهبي\"] }, \"Mariner\": { \"v\": [\"أزرق بحري\"] }, \"Nextcloud blue\": { \"v\": [\"أزرق نكست كلاود\"] }, \"Olivine\": { \"v\": [\"زيتي\"] }, \"Purple\": { \"v\": [\"بنفسجي\"] }, \"Rosy brown\": { \"v\": [\"بُنِّي زهري\"] }, \"Whiskey\": { \"v\": [\"نبيذي\"] } } }, { \"l\": \"ast\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulcu\"] }, \"Blue Violet\": { \"v\": [\"Viola azulao\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Oru\"] }, \"Mariner\": { \"v\": [\"Marineru\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud azul\"] }, \"Olivine\": { \"v\": [\"Olivina\"] }, \"Purple\": { \"v\": [\"Moráu\"] }, \"Rosy brown\": { \"v\": [\"Marrón arrosao\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Black\": { \"v\": [\"Černá\"] }, \"Blue Violet\": { \"v\": [\"Modrofialová\"] }, \"Boston Blue\": { \"v\": [\"Bostonská modrá\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Živicová\"] }, \"Gold\": { \"v\": [\"Zlatá\"] }, \"Mariner\": { \"v\": [\"Námořnická\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud modrá\"] }, \"Olivine\": { \"v\": [\"Olivínová\"] }, \"Purple\": { \"v\": [\"Fialová\"] }, \"Rosy brown\": { \"v\": [\"Růžovohnědá\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] }, \"White\": { \"v\": [\"Bílá\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Blue Violet\": { \"v\": [\"Modrofialová\"] }, \"Boston Blue\": { \"v\": [\"Bostonská modrá\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Živicová\"] }, \"Gold\": { \"v\": [\"Zlatá\"] }, \"Mariner\": { \"v\": [\"Námořnická\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud modrá\"] }, \"Olivine\": { \"v\": [\"Olivínová\"] }, \"Purple\": { \"v\": [\"Fialová\"] }, \"Rosy brown\": { \"v\": [\"Růžovohnědá\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"da\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Sort\"] }, \"Blue Violet\": { \"v\": [\"Blue Violet\"] }, \"Boston Blue\": { \"v\": [\"Boston Blue\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Guld\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blue\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Lilla\"] }, \"Rosy brown\": { \"v\": [\"Rosy brown\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Hvid\"] } } }, { \"l\": \"de\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Schwarz\"] }, \"Blue Violet\": { \"v\": [\"Blau Violett\"] }, \"Boston Blue\": { \"v\": [\"Boston-Blau\"] }, \"Deluge\": { \"v\": [\"Sintflut\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"Seemann\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud Blau\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rosiges Braun\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Weiß\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Schwarz\"] }, \"Blue Violet\": { \"v\": [\"Blau Violett\"] }, \"Boston Blue\": { \"v\": [\"Boston-Blau\"] }, \"Deluge\": { \"v\": [\"Sintflut\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"Seemann\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud Blau\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rosiges Braun\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Weiß\"] } } }, { \"l\": \"el\", \"t\": { \"Acapulco\": { \"v\": [\"Ακαπούλκο\"] }, \"Black\": { \"v\": [\"Μαύρο\"] }, \"Blue Violet\": { \"v\": [\"Μπλε Βιολέτ\"] }, \"Boston Blue\": { \"v\": [\"Μπλε Βοστώνης\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Χρυσό\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Μπλε Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Μωβ\"] }, \"Rosy brown\": { \"v\": [\"Ροζ καφέ\"] }, \"Whiskey\": { \"v\": [\"Ουίσκι\"] }, \"White\": { \"v\": [\"Λευκό\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Black\"] }, \"Blue Violet\": { \"v\": [\"Blue Violet\"] }, \"Boston Blue\": { \"v\": [\"Boston Blue\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blue\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Purple\"] }, \"Rosy brown\": { \"v\": [\"Rosy brown\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"White\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Diluvio\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Oro\"] }, \"Mariner\": { \"v\": [\"Marinero\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivino\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Marrón rosáceo\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Diluvio\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Oro\"] }, \"Mariner\": { \"v\": [\"Marinero\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivino\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Marrón rosáceo\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Diluvio\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Oro\"] }, \"Mariner\": { \"v\": [\"Marinero\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivino\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Marrón rosáceo\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco meresinine\"] }, \"Black\": { \"v\": [\"Must\"] }, \"Blue Violet\": { \"v\": [\"Sinakasvioletne\"] }, \"Boston Blue\": { \"v\": [\"Bostoni rohekassinine\"] }, \"Deluge\": { \"v\": [\"Tulvavee lilla\"] }, \"Feldspar\": { \"v\": [\"Põlevkivipruun\"] }, \"Gold\": { \"v\": [\"Kuldne\"] }, \"Mariner\": { \"v\": [\"Meresinine\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloudi sinine\"] }, \"Olivine\": { \"v\": [\"Oliiviroheline\"] }, \"Purple\": { \"v\": [\"Purpurpunane\"] }, \"Rosy brown\": { \"v\": [\"Roosikarva pruun\"] }, \"Whiskey\": { \"v\": [\"Viskikarva kollakaspruun\"] }, \"White\": { \"v\": [\"Valge\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Acapulco\": { \"v\": [\"آکاپولکو\"] }, \"Blue Violet\": { \"v\": [\"بنفش آبی\"] }, \"Boston Blue\": { \"v\": [\"آبی بوستونی\"] }, \"Deluge\": { \"v\": [\"سیل\"] }, \"Feldspar\": { \"v\": [\"فلدسپات\"] }, \"Gold\": { \"v\": [\"طلا\"] }, \"Mariner\": { \"v\": [\"مارینر\"] }, \"Nextcloud blue\": { \"v\": [\"نکس کلود آبی\"] }, \"Olivine\": { \"v\": [\"الیوین\"] }, \"Purple\": { \"v\": [\"بنفش\"] }, \"Rosy brown\": { \"v\": [\"قهوهای رز\"] }, \"Whiskey\": { \"v\": [\"ویسکی\"] } } }, { \"l\": \"fi\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Sinivioletti\"] }, \"Boston Blue\": { \"v\": [\"Bostoninsininen\"] }, \"Deluge\": { \"v\": [\"Tulva\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Kulta\"] }, \"Mariner\": { \"v\": [\"Merenkulkija\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloudin sininen\"] }, \"Olivine\": { \"v\": [\"Oliviini\"] }, \"Purple\": { \"v\": [\"Purppura\"] }, \"Rosy brown\": { \"v\": [\"Ruusunruskea\"] }, \"Whiskey\": { \"v\": [\"Viski\"] } } }, { \"l\": \"fr\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Noir\"] }, \"Blue Violet\": { \"v\": [\"Bleu violet\"] }, \"Boston Blue\": { \"v\": [\"Bleu de Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Doré\"] }, \"Mariner\": { \"v\": [\"Marin\"] }, \"Nextcloud blue\": { \"v\": [\"Bleu Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Violet\"] }, \"Rosy brown\": { \"v\": [\"Brun rosé\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Blanc\"] } } }, { \"l\": \"ga\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Dubh\"] }, \"Blue Violet\": { \"v\": [\"Gorm Violet\"] }, \"Boston Blue\": { \"v\": [\"Bostún Gorm\"] }, \"Deluge\": { \"v\": [\"Díle\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Óir\"] }, \"Mariner\": { \"v\": [\"Mairnéalach\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud gorm\"] }, \"Olivine\": { \"v\": [\"Olaivín\"] }, \"Purple\": { \"v\": [\"Corcra\"] }, \"Rosy brown\": { \"v\": [\"Rosach donn\"] }, \"Whiskey\": { \"v\": [\"Fuisce\"] }, \"White\": { \"v\": [\"Bán\"] } } }, { \"l\": \"gl\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Negro\"] }, \"Blue Violet\": { \"v\": [\"Azul violeta\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Dioivo\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Ouro\"] }, \"Mariner\": { \"v\": [\"Marino\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivina\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Pardo rosado\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] }, \"White\": { \"v\": [\"Branco\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Gold\": { \"v\": [\"Emas\"] }, \"Nextcloud blue\": { \"v\": [\"Biru Nextcloud\"] }, \"Purple\": { \"v\": [\"Ungu\"] } } }, { \"l\": \"is\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Bláklukka\"] }, \"Boston Blue\": { \"v\": [\"Bostonblátt\"] }, \"Deluge\": { \"v\": [\"Fjólublátt\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Gull\"] }, \"Mariner\": { \"v\": [\"Sjóarablátt\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blátt\"] }, \"Olivine\": { \"v\": [\"Ólivín\"] }, \"Purple\": { \"v\": [\"Purpurablátt\"] }, \"Rosy brown\": { \"v\": [\"Rósabrúnt\"] }, \"Whiskey\": { \"v\": [\"Viský\"] } } }, { \"l\": \"it\", \"t\": { \"Gold\": { \"v\": [\"Oro\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blue\"] }, \"Purple\": { \"v\": [\"Viola\"] } } }, { \"l\": \"ja\", \"t\": { \"Acapulco\": { \"v\": [\"アカプルコ\"] }, \"Black\": { \"v\": [\"黒\"] }, \"Blue Violet\": { \"v\": [\"ブルーバイオレット\"] }, \"Boston Blue\": { \"v\": [\"ボストンブルー\"] }, \"Deluge\": { \"v\": [\"豪雨\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"黄金\"] }, \"Mariner\": { \"v\": [\"船乗り\"] }, \"Nextcloud blue\": { \"v\": [\"ネクストクラウド・ブルー\"] }, \"Olivine\": { \"v\": [\"カンラン石\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"バラ色\"] }, \"Whiskey\": { \"v\": [\"ウイスキー\"] }, \"White\": { \"v\": [\"白\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Acapulco\": { \"v\": [\"アカプルコ\"] }, \"Blue Violet\": { \"v\": [\"ブルーバイオレット\"] }, \"Boston Blue\": { \"v\": [\"ボストンブルー\"] }, \"Deluge\": { \"v\": [\"豪雨\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"黄金\"] }, \"Mariner\": { \"v\": [\"船乗り\"] }, \"Nextcloud blue\": { \"v\": [\"ネクストクラウド・ブルー\"] }, \"Olivine\": { \"v\": [\"カンラン石\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"バラ色\"] }, \"Whiskey\": { \"v\": [\"ウイスキー\"] } } }, { \"l\": \"ko\", \"t\": { \"Acapulco\": { \"v\": [\"아카풀코\"] }, \"Blue Violet\": { \"v\": [\"푸른 보라\"] }, \"Boston Blue\": { \"v\": [\"보스턴 블루\"] }, \"Deluge\": { \"v\": [\"폭우\"] }, \"Feldspar\": { \"v\": [\"장석\"] }, \"Gold\": { \"v\": [\"금\"] }, \"Mariner\": { \"v\": [\"뱃사람\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 파랑\"] }, \"Olivine\": { \"v\": [\"감람석\"] }, \"Purple\": { \"v\": [\"보라\"] }, \"Rosy brown\": { \"v\": [\"로지 브라운\"] }, \"Whiskey\": { \"v\": [\"위스키\"] } } }, { \"l\": \"lo\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"ສີດຳ\"] }, \"Blue Violet\": { \"v\": [\"Blue Violet\"] }, \"Boston Blue\": { \"v\": [\"Boston Blue\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"ສີຄຳ\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"ສີຟ້າ Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"ສີມ່ວງ\"] }, \"Rosy brown\": { \"v\": [\"Rosy brown\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"ສີຂາວ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулко\"] }, \"Black\": { \"v\": [\"Црно\"] }, \"Blue Violet\": { \"v\": [\"Сино Виолетова\"] }, \"Boston Blue\": { \"v\": [\"Бостон Сина\"] }, \"Deluge\": { \"v\": [\"Делуџ\"] }, \"Feldspar\": { \"v\": [\"Фелдспар\"] }, \"Gold\": { \"v\": [\"Златна\"] }, \"Mariner\": { \"v\": [\"Маринер\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud сина\"] }, \"Olivine\": { \"v\": [\"Оливин\"] }, \"Purple\": { \"v\": [\"Виолетова\"] }, \"Rosy brown\": { \"v\": [\"Розево-кафеава\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Бела\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Blå fiolett\"] }, \"Boston Blue\": { \"v\": [\"Boston blå\"] }, \"Deluge\": { \"v\": [\"Syndflod\"] }, \"Feldspar\": { \"v\": [\"Feltspat\"] }, \"Gold\": { \"v\": [\"Gull\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud-blå\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lilla\"] }, \"Rosy brown\": { \"v\": [\"Rosenrød brun\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"nl\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Zwart\"] }, \"Blue Violet\": { \"v\": [\"Blauw Paars\"] }, \"Boston Blue\": { \"v\": [\"Boston Blauw\"] }, \"Deluge\": { \"v\": [\"Overlopen\"] }, \"Feldspar\": { \"v\": [\"Veldspaat\"] }, \"Gold\": { \"v\": [\"Goud\"] }, \"Mariner\": { \"v\": [\"Marineblauw\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blauw\"] }, \"Olivine\": { \"v\": [\"Olivijn\"] }, \"Purple\": { \"v\": [\"Paars\"] }, \"Rosy brown\": { \"v\": [\"Rozig bruin\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Wit\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Niebieski fiolet\"] }, \"Boston Blue\": { \"v\": [\"Błękit Bostonu\"] }, \"Deluge\": { \"v\": [\"Potop\"] }, \"Feldspar\": { \"v\": [\"Skaleń\"] }, \"Gold\": { \"v\": [\"Złote\"] }, \"Mariner\": { \"v\": [\"Marynarz\"] }, \"Nextcloud blue\": { \"v\": [\"Niebieskie Nextcloud\"] }, \"Olivine\": { \"v\": [\"Oliwin\"] }, \"Purple\": { \"v\": [\"Fioletowy\"] }, \"Rosy brown\": { \"v\": [\"Różowy brąz\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Preto\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspato\"] }, \"Gold\": { \"v\": [\"Ouro\"] }, \"Mariner\": { \"v\": [\"Marinheiro\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivina\"] }, \"Purple\": { \"v\": [\"Roxo\"] }, \"Rosy brown\": { \"v\": [\"Castanho rosado\"] }, \"Whiskey\": { \"v\": [\"Uísque\"] }, \"White\": { \"v\": [\"Branco\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Azul violeta\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Ouro\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud azul\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Castanho rosado\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"ro\", \"t\": { \"Gold\": { \"v\": [\"Aur\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud albastru\"] }, \"Purple\": { \"v\": [\"Purpuriu\"] } } }, { \"l\": \"ru\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулько\"] }, \"Black\": { \"v\": [\"Черный\"] }, \"Blue Violet\": { \"v\": [\"Синий фиолет\"] }, \"Boston Blue\": { \"v\": [\"Синий Бостон\"] }, \"Deluge\": { \"v\": [\"Перламутрово-фиолетовый\"] }, \"Feldspar\": { \"v\": [\"Античная латунь\"] }, \"Gold\": { \"v\": [\"Золотой\"] }, \"Mariner\": { \"v\": [\"Морской\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud голубой\"] }, \"Olivine\": { \"v\": [\" Оливковый\"] }, \"Purple\": { \"v\": [\"Фиолетовый\"] }, \"Rosy brown\": { \"v\": [\"Розово-коричневый\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Белый\"] } } }, { \"l\": \"sk\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Modro fialová\"] }, \"Boston Blue\": { \"v\": [\"Bostonská modrá\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Živec\"] }, \"Gold\": { \"v\": [\"Zlatá\"] }, \"Mariner\": { \"v\": [\"Námorník\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud modrá\"] }, \"Olivine\": { \"v\": [\"Olivová\"] }, \"Purple\": { \"v\": [\"Fialová\"] }, \"Rosy brown\": { \"v\": [\"Ružovo hnedá\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулко\"] }, \"Black\": { \"v\": [\"Црно\"] }, \"Blue Violet\": { \"v\": [\"Плаво љубичаста\"] }, \"Boston Blue\": { \"v\": [\"Бостон плава\"] }, \"Deluge\": { \"v\": [\"Поплава\"] }, \"Feldspar\": { \"v\": [\"Фелдспар\"] }, \"Gold\": { \"v\": [\"Злато\"] }, \"Mariner\": { \"v\": [\"Морнар\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud плава\"] }, \"Olivine\": { \"v\": [\"Маслинаста\"] }, \"Purple\": { \"v\": [\"Пурпурна\"] }, \"Rosy brown\": { \"v\": [\"Роси браон\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Бело\"] } } }, { \"l\": \"sv\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Blåviolett\"] }, \"Boston Blue\": { \"v\": [\"Bostonblå\"] }, \"Deluge\": { \"v\": [\"Skyfallsblå\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Guld\"] }, \"Mariner\": { \"v\": [\"Marinblå\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud-blå\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rosabrun\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"tr\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Black\": { \"v\": [\"Siyah\"] }, \"Blue Violet\": { \"v\": [\"Mavi mor\"] }, \"Boston Blue\": { \"v\": [\"Boston mavisi\"] }, \"Deluge\": { \"v\": [\"Sel\"] }, \"Feldspar\": { \"v\": [\"Feldispat\"] }, \"Gold\": { \"v\": [\"Altın\"] }, \"Mariner\": { \"v\": [\"Denizci\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud mavi\"] }, \"Olivine\": { \"v\": [\"Zeytinlik\"] }, \"Purple\": { \"v\": [\"Mor\"] }, \"Rosy brown\": { \"v\": [\"Kırmızımsı kahverengi\"] }, \"Whiskey\": { \"v\": [\"Viski\"] }, \"White\": { \"v\": [\"Beyaz\"] } } }, { \"l\": \"uk\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулько\"] }, \"Blue Violet\": { \"v\": [\"Блакитна фіалка\"] }, \"Boston Blue\": { \"v\": [\"Бостонський синій\"] }, \"Deluge\": { \"v\": [\"Злива\"] }, \"Feldspar\": { \"v\": [\"Польові шпати\"] }, \"Gold\": { \"v\": [\"Золотий\"] }, \"Mariner\": { \"v\": [\"Морський\"] }, \"Nextcloud blue\": { \"v\": [\"Блакитний Nextcloud\"] }, \"Olivine\": { \"v\": [\"Олива\"] }, \"Purple\": { \"v\": [\"Фіолетовий\"] }, \"Rosy brown\": { \"v\": [\"Темно-рожевий\"] }, \"Whiskey\": { \"v\": [\"Кола\"] } } }, { \"l\": \"uz\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Black\": { \"v\": [\"Qora\"] }, \"Blue Violet\": { \"v\": [\"Moviy binafsha\"] }, \"Boston Blue\": { \"v\": [\"Boston ko'k\"] }, \"Deluge\": { \"v\": [\"To'fon\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Oltin\"] }, \"Mariner\": { \"v\": [\"Dengizchi\"] }, \"Nextcloud blue\": { \"v\": [\"Ko'k Nextcloud \"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Binafsha\"] }, \"Rosy brown\": { \"v\": [\"Qizil jigarrang\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Oq\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"瓦罗兰特蓝\"] }, \"Boston Blue\": { \"v\": [\"波士顿蓝\"] }, \"Deluge\": { \"v\": [\"洪水色\"] }, \"Feldspar\": { \"v\": [\"长石\"] }, \"Gold\": { \"v\": [\"金色\"] }, \"Mariner\": { \"v\": [\"水手\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 蓝\"] }, \"Olivine\": { \"v\": [\"橄榄石色\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"玫瑰棕色\"] }, \"Whiskey\": { \"v\": [\"威士忌\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Acapulco\": { \"v\": [\"阿卡普爾科\"] }, \"Black\": { \"v\": [\"黑色\"] }, \"Blue Violet\": { \"v\": [\"藍紫色\"] }, \"Boston Blue\": { \"v\": [\"波士頓藍\"] }, \"Deluge\": { \"v\": [\"大洪水\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"海軍藍\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 藍色\"] }, \"Olivine\": { \"v\": [\"橄欖石色\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"玫瑰棕色\"] }, \"Whiskey\": { \"v\": [\"威士忌\"] }, \"White\": { \"v\": [\"白色\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"藍紫色\"] }, \"Boston Blue\": { \"v\": [\"波士頓藍\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"金色\"] }, \"Mariner\": { \"v\": [\"海軍藍\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 藍色\"] }, \"Olivine\": { \"v\": [\"橄欖石色\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"玫瑰棕色\"] }, \"Whiskey\": { \"v\": [\"威士忌\"] } } }];\nconst t4 = [{ \"l\": \"ar\", \"t\": { \"Actions\": { \"v\": [\"إجراءات\"] } } }, { \"l\": \"ast\", \"t\": { \"Actions\": { \"v\": [\"Aiciones\"] } } }, { \"l\": \"br\", \"t\": { \"Actions\": { \"v\": [\"Oberioù\"] } } }, { \"l\": \"ca\", \"t\": { \"Actions\": { \"v\": [\"Accions\"] } } }, { \"l\": \"cs\", \"t\": { \"Actions\": { \"v\": [\"Akce\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Actions\": { \"v\": [\"Akce\"] } } }, { \"l\": \"da\", \"t\": { \"Actions\": { \"v\": [\"Handlinger\"] } } }, { \"l\": \"de\", \"t\": { \"Actions\": { \"v\": [\"Aktionen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Actions\": { \"v\": [\"Aktionen\"] } } }, { \"l\": \"el\", \"t\": { \"Actions\": { \"v\": [\"Ενέργειες\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Actions\": { \"v\": [\"Actions\"] } } }, { \"l\": \"eo\", \"t\": { \"Actions\": { \"v\": [\"Agoj\"] } } }, { \"l\": \"es\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Actions\": { \"v\": [\"Tegevus\"] } } }, { \"l\": \"eu\", \"t\": { \"Actions\": { \"v\": [\"Ekintzak\"] } } }, { \"l\": \"fa\", \"t\": { \"Actions\": { \"v\": [\"کنشها\"] } } }, { \"l\": \"fi\", \"t\": { \"Actions\": { \"v\": [\"Toiminnot\"] } } }, { \"l\": \"fr\", \"t\": { \"Actions\": { \"v\": [\"Actions\"] } } }, { \"l\": \"ga\", \"t\": { \"Actions\": { \"v\": [\"Gníomhartha\"] } } }, { \"l\": \"gl\", \"t\": { \"Actions\": { \"v\": [\"Accións\"] } } }, { \"l\": \"he\", \"t\": { \"Actions\": { \"v\": [\"פעולות\"] } } }, { \"l\": \"hu\", \"t\": { \"Actions\": { \"v\": [\"Műveletek\"] } } }, { \"l\": \"id\", \"t\": { \"Actions\": { \"v\": [\"Tindakan\"] } } }, { \"l\": \"is\", \"t\": { \"Actions\": { \"v\": [\"Aðgerðir\"] } } }, { \"l\": \"it\", \"t\": { \"Actions\": { \"v\": [\"Azioni\"] } } }, { \"l\": \"ja\", \"t\": { \"Actions\": { \"v\": [\"操作\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Actions\": { \"v\": [\"操作\"] } } }, { \"l\": \"ko\", \"t\": { \"Actions\": { \"v\": [\"동작\"] } } }, { \"l\": \"lo\", \"t\": { \"Actions\": { \"v\": [\"ການກະທຳ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Actions\": { \"v\": [\"Veiksmai\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Actions\": { \"v\": [\"Акции\"] } } }, { \"l\": \"my\", \"t\": { \"Actions\": { \"v\": [\"လုပ်ဆောင်ချက်များ\"] } } }, { \"l\": \"nb\", \"t\": { \"Actions\": { \"v\": [\"Handlinger\"] } } }, { \"l\": \"nl\", \"t\": { \"Actions\": { \"v\": [\"Acties\"] } } }, { \"l\": \"oc\", \"t\": { \"Actions\": { \"v\": [\"Accions\"] } } }, { \"l\": \"pl\", \"t\": { \"Actions\": { \"v\": [\"Działania\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Actions\": { \"v\": [\"Ações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Actions\": { \"v\": [\"Ações\"] } } }, { \"l\": \"ro\", \"t\": { \"Actions\": { \"v\": [\"Acțiuni\"] } } }, { \"l\": \"ru\", \"t\": { \"Actions\": { \"v\": [\"Действия \"] } } }, { \"l\": \"sk\", \"t\": { \"Actions\": { \"v\": [\"Akcie\"] } } }, { \"l\": \"sl\", \"t\": { \"Actions\": { \"v\": [\"Dejanja\"] } } }, { \"l\": \"sr\", \"t\": { \"Actions\": { \"v\": [\"Радње\"] } } }, { \"l\": \"sv\", \"t\": { \"Actions\": { \"v\": [\"Åtgärder\"] } } }, { \"l\": \"tr\", \"t\": { \"Actions\": { \"v\": [\"İşlemler\"] } } }, { \"l\": \"uk\", \"t\": { \"Actions\": { \"v\": [\"Дії\"] } } }, { \"l\": \"uz\", \"t\": { \"Actions\": { \"v\": [\"Harakatlar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Actions\": { \"v\": [\"行为\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Actions\": { \"v\": [\"動作\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Actions\": { \"v\": [\"動作\"] } } }];\nconst t5 = [{ \"l\": \"ar\", \"t\": { \"Activities\": { \"v\": [\"سجل الأنشطة\"] }, \"Animals & Nature\": { \"v\": [\"الحيوانات والطبيعة\"] }, \"Custom\": { \"v\": [\"مُخصَّص\"] }, \"Dark skin tone\": { \"v\": [\"أسمر البُشرة\"] }, \"Emoji picker\": { \"v\": [\"لاقط الإيموجي\"] }, \"Flags\": { \"v\": [\"الأعلام\"] }, \"Food & Drink\": { \"v\": [\"الطعام والشراب\"] }, \"Frequently used\": { \"v\": [\"شائعة الاستعمال\"] }, \"Light skin tone\": { \"v\": [\"فاتح البُشرة\"] }, \"Medium dark skin tone\": { \"v\": [\"بشرة متوسطة الاسمرار\"] }, \"Medium light skin tone\": { \"v\": [\"بشرة متوسطة البياض\"] }, \"Medium skin tone\": { \"v\": [\"بشرة وسطية اللون\"] }, \"Neutral skin color\": { \"v\": [\"لون بُشرة طبيعي\"] }, \"Objects\": { \"v\": [\"أشياء\"] }, \"People & Body\": { \"v\": [\"أشخاص و أجسام\"] }, \"Pick an emoji\": { \"v\": [\"إختَر رمز إيموجي emoji\"] }, \"Search emoji\": { \"v\": [\"البحث عن إيموجي emoji\"] }, \"Search results\": { \"v\": [\"نتائج البحث\"] }, \"Selected\": { \"v\": [\"محدّدة\"] }, \"Skin tone\": { \"v\": [\"لون البُشرة\"] }, \"Smileys & Emotion\": { \"v\": [\"وجوهٌ ضاحكة و مشاعر\"] }, \"Symbols\": { \"v\": [\"رموز\"] }, \"Travel & Places\": { \"v\": [\"سفر و أماكن\"] } } }, { \"l\": \"ast\", \"t\": { \"Activities\": { \"v\": [\"Actividaes\"] }, \"Animals & Nature\": { \"v\": [\"Animales y natura\"] }, \"Custom\": { \"v\": [\"Personalizar\"] }, \"Dark skin tone\": { \"v\": [\"Tonu d'aspeutu escuru\"] }, \"Emoji picker\": { \"v\": [\"Selector de fustaxes\"] }, \"Flags\": { \"v\": [\"Banderes\"] }, \"Food & Drink\": { \"v\": [\"Cómida y bébora\"] }, \"Frequently used\": { \"v\": [\"D'usu frecuente\"] }, \"Light skin tone\": { \"v\": [\"Tonu d'aspeutu claru\"] }, \"Medium dark skin tone\": { \"v\": [\"Tonu d'aspeutu medio escuru\"] }, \"Medium light skin tone\": { \"v\": [\"Tonu d'aspeutu medio claru\"] }, \"Medium skin tone\": { \"v\": [\"Tonu d'aspeutu mediu\"] }, \"Neutral skin color\": { \"v\": [\"Color d'aspeutu neutral\"] }, \"Objects\": { \"v\": [\"Oxetos\"] }, \"People & Body\": { \"v\": [\"Persones y cuerpu\"] }, \"Pick an emoji\": { \"v\": [\"Escueyi un fustaxe\"] }, \"Search emoji\": { \"v\": [\"Buscar nos fustaxes\"] }, \"Search results\": { \"v\": [\"Resultaos de la busca\"] }, \"Selected\": { \"v\": [\"Na seleición\"] }, \"Skin tone\": { \"v\": [\"Tonu d'aspeutu\"] }, \"Smileys & Emotion\": { \"v\": [\"Sorrises y emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viaxes y llugares\"] } } }, { \"l\": \"br\", \"t\": { \"Activities\": { \"v\": [\"Oberiantizoù\"] }, \"Animals & Nature\": { \"v\": [\"Loened & Natur\"] }, \"Custom\": { \"v\": [\"Personelañ\"] }, \"Flags\": { \"v\": [\"Bannieloù\"] }, \"Food & Drink\": { \"v\": [\"Boued & Evajoù\"] }, \"Frequently used\": { \"v\": [\"Implijet alies\"] }, \"Objects\": { \"v\": [\"Traoù\"] }, \"People & Body\": { \"v\": [\"Tud & Korf\"] }, \"Pick an emoji\": { \"v\": [\"Choaz un emoji\"] }, \"Search results\": { \"v\": [\"Disoc'hoù an enklask\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileyioù & Fromoù\"] }, \"Symbols\": { \"v\": [\"Arouezioù\"] }, \"Travel & Places\": { \"v\": [\"Beaj & Lec'hioù\"] } } }, { \"l\": \"ca\", \"t\": { \"Activities\": { \"v\": [\"Activitats\"] }, \"Animals & Nature\": { \"v\": [\"Animals i natura\"] }, \"Custom\": { \"v\": [\"Personalitzat\"] }, \"Flags\": { \"v\": [\"Marques\"] }, \"Food & Drink\": { \"v\": [\"Menjar i begudes\"] }, \"Frequently used\": { \"v\": [\"Utilitzats recentment\"] }, \"Objects\": { \"v\": [\"Objectes\"] }, \"People & Body\": { \"v\": [\"Persones i cos\"] }, \"Pick an emoji\": { \"v\": [\"Trieu un emoji\"] }, \"Search results\": { \"v\": [\"Resultats de cerca\"] }, \"Smileys & Emotion\": { \"v\": [\"Cares i emocions\"] }, \"Symbols\": { \"v\": [\"Símbols\"] }, \"Travel & Places\": { \"v\": [\"Viatges i llocs\"] } } }, { \"l\": \"cs\", \"t\": { \"Activities\": { \"v\": [\"Aktivity\"] }, \"Animals & Nature\": { \"v\": [\"Zvířata a příroda\"] }, \"Custom\": { \"v\": [\"Uživatelsky určené\"] }, \"Dark skin tone\": { \"v\": [\"Tmavý tělový tón\"] }, \"Emoji picker\": { \"v\": [\"Výběr emotikon\"] }, \"Flags\": { \"v\": [\"Příznaky\"] }, \"Food & Drink\": { \"v\": [\"Jídlo a pití\"] }, \"Frequently used\": { \"v\": [\"Často používané\"] }, \"Light skin tone\": { \"v\": [\"Světlý tělový tón\"] }, \"Medium dark skin tone\": { \"v\": [\"Středně tmavý tělový tón\"] }, \"Medium light skin tone\": { \"v\": [\"Středně světlý tělový tón\"] }, \"Medium skin tone\": { \"v\": [\"Střední tělový tón\"] }, \"Neutral skin color\": { \"v\": [\"Neutrální tělová barva\"] }, \"Objects\": { \"v\": [\"Objekty\"] }, \"People & Body\": { \"v\": [\"Lidé a tělo\"] }, \"Pick an emoji\": { \"v\": [\"Vybrat emoji\"] }, \"Search emoji\": { \"v\": [\"Hledat emoji\"] }, \"Search results\": { \"v\": [\"Výsledky hledání\"] }, \"Selected\": { \"v\": [\"Vybráno\"] }, \"Skin tone\": { \"v\": [\"Tělový tón\"] }, \"Smileys & Emotion\": { \"v\": [\"Úsměvy a emoce\"] }, \"Symbols\": { \"v\": [\"Symboly\"] }, \"Travel & Places\": { \"v\": [\"Cestování a místa\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Activities\": { \"v\": [\"Aktivity\"] }, \"Animals & Nature\": { \"v\": [\"Zvířata a příroda\"] }, \"Custom\": { \"v\": [\"Uživatelsky určené\"] }, \"Dark skin tone\": { \"v\": [\"Tmavý tělový tón\"] }, \"Emoji picker\": { \"v\": [\"Výběr emotikon\"] }, \"Flags\": { \"v\": [\"Příznaky\"] }, \"Food & Drink\": { \"v\": [\"Jídlo a pití\"] }, \"Frequently used\": { \"v\": [\"Často používané\"] }, \"Light skin tone\": { \"v\": [\"Světlý tělový tón\"] }, \"Medium dark skin tone\": { \"v\": [\"Středně tmavý tělový tón\"] }, \"Medium light skin tone\": { \"v\": [\"Středně světlý tělový tón\"] }, \"Medium skin tone\": { \"v\": [\"Střední tělový tón\"] }, \"Neutral skin color\": { \"v\": [\"Neutřální tělová barva\"] }, \"Objects\": { \"v\": [\"Objekty\"] }, \"People & Body\": { \"v\": [\"Lidé a tělo\"] }, \"Pick an emoji\": { \"v\": [\"Vybrat emoji\"] }, \"Search emoji\": { \"v\": [\"Hledat emoji\"] }, \"Search results\": { \"v\": [\"Výsledky hledání\"] }, \"Selected\": { \"v\": [\"Vybráno\"] }, \"Skin tone\": { \"v\": [\"Tělový tón\"] }, \"Smileys & Emotion\": { \"v\": [\"Úsměvy a emoce\"] }, \"Symbols\": { \"v\": [\"Symboly\"] }, \"Travel & Places\": { \"v\": [\"Cestování a místa\"] } } }, { \"l\": \"da\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteter\"] }, \"Animals & Nature\": { \"v\": [\"Dyr & Natur\"] }, \"Custom\": { \"v\": [\"Brugerdefineret\"] }, \"Dark skin tone\": { \"v\": [\"Mørk skin tone\"] }, \"Emoji picker\": { \"v\": [\"Emoji vælger\"] }, \"Flags\": { \"v\": [\"Flag\"] }, \"Food & Drink\": { \"v\": [\"Mad & Drikke\"] }, \"Frequently used\": { \"v\": [\"Ofte brugt\"] }, \"Light skin tone\": { \"v\": [\"Lys skin tone\"] }, \"Medium dark skin tone\": { \"v\": [\"Medium mørk skin tone\"] }, \"Medium light skin tone\": { \"v\": [\"Medium lys skin tone\"] }, \"Medium skin tone\": { \"v\": [\"Medium skin tone\"] }, \"Neutral skin color\": { \"v\": [\"Neutral skin color\"] }, \"Objects\": { \"v\": [\"Objekter\"] }, \"People & Body\": { \"v\": [\"Mennesker & Menneskekroppen\"] }, \"Pick an emoji\": { \"v\": [\"Vælg en emoji\"] }, \"Search emoji\": { \"v\": [\"Søg emoji\"] }, \"Search results\": { \"v\": [\"Søgeresultater\"] }, \"Selected\": { \"v\": [\"Valgt\"] }, \"Skin tone\": { \"v\": [\"Skin tone\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotion\"] }, \"Symbols\": { \"v\": [\"Symboler\"] }, \"Travel & Places\": { \"v\": [\"Rejser & Rejsemål\"] } } }, { \"l\": \"de\", \"t\": { \"Activities\": { \"v\": [\"Aktivitäten\"] }, \"Animals & Nature\": { \"v\": [\"Tiere & Natur\"] }, \"Custom\": { \"v\": [\"Benutzerdefiniert\"] }, \"Dark skin tone\": { \"v\": [\"Dunkler Hautfarbton\"] }, \"Emoji picker\": { \"v\": [\"Emoji-Auswahl\"] }, \"Flags\": { \"v\": [\"Flaggen\"] }, \"Food & Drink\": { \"v\": [\"Essen & Trinken\"] }, \"Frequently used\": { \"v\": [\"Häufig verwendet\"] }, \"Light skin tone\": { \"v\": [\"Heller Hautfarbton\"] }, \"Medium dark skin tone\": { \"v\": [\"Mitteldunkler Hautfarbton\"] }, \"Medium light skin tone\": { \"v\": [\"Mittelheller Hautfarbton\"] }, \"Medium skin tone\": { \"v\": [\"Mittlerer Hautfarbton\"] }, \"Neutral skin color\": { \"v\": [\"Neutraler Hautfarbton\"] }, \"Objects\": { \"v\": [\"Objekte\"] }, \"People & Body\": { \"v\": [\"Menschen & Körper\"] }, \"Pick an emoji\": { \"v\": [\"Ein Emoji auswählen\"] }, \"Search emoji\": { \"v\": [\"Emoji suchen\"] }, \"Search results\": { \"v\": [\"Suchergebnisse\"] }, \"Selected\": { \"v\": [\"Ausgewählt\"] }, \"Skin tone\": { \"v\": [\"Hautfarbton\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotionen\"] }, \"Symbols\": { \"v\": [\"Symbole\"] }, \"Travel & Places\": { \"v\": [\"Reisen & Orte\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Activities\": { \"v\": [\"Aktivitäten\"] }, \"Animals & Nature\": { \"v\": [\"Tiere & Natur\"] }, \"Custom\": { \"v\": [\"Benutzerdefiniert\"] }, \"Dark skin tone\": { \"v\": [\"Dunkler Hautfarbton\"] }, \"Emoji picker\": { \"v\": [\"Emoji-Auswahl\"] }, \"Flags\": { \"v\": [\"Flaggen\"] }, \"Food & Drink\": { \"v\": [\"Essen & Trinken\"] }, \"Frequently used\": { \"v\": [\"Häufig verwendet\"] }, \"Light skin tone\": { \"v\": [\"Heller Hautfarbton\"] }, \"Medium dark skin tone\": { \"v\": [\"Mitteldunkler Hautfarbton\"] }, \"Medium light skin tone\": { \"v\": [\"Mittelheller Hautfarbton\"] }, \"Medium skin tone\": { \"v\": [\"Mittlerer Hautfarbton\"] }, \"Neutral skin color\": { \"v\": [\"Neutraler Hautfarbton\"] }, \"Objects\": { \"v\": [\"Objekte\"] }, \"People & Body\": { \"v\": [\"Menschen & Körper\"] }, \"Pick an emoji\": { \"v\": [\"Ein Emoji auswählen\"] }, \"Search emoji\": { \"v\": [\"Emoji suchen\"] }, \"Search results\": { \"v\": [\"Suchergebnisse\"] }, \"Selected\": { \"v\": [\"Ausgewählt\"] }, \"Skin tone\": { \"v\": [\"Hautfarbton\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotionen\"] }, \"Symbols\": { \"v\": [\"Symbole\"] }, \"Travel & Places\": { \"v\": [\"Reisen & Orte\"] } } }, { \"l\": \"el\", \"t\": { \"Activities\": { \"v\": [\"Δραστηριότητες\"] }, \"Animals & Nature\": { \"v\": [\"Ζώα & Φύση\"] }, \"Custom\": { \"v\": [\"Προσαρμογή\"] }, \"Dark skin tone\": { \"v\": [\"Σκούρο θέμα\"] }, \"Emoji picker\": { \"v\": [\"Επιλογέας emoji\"] }, \"Flags\": { \"v\": [\"Σημαίες\"] }, \"Food & Drink\": { \"v\": [\"Φαγητό & Ποτό\"] }, \"Frequently used\": { \"v\": [\"Συχνά χρησιμοποιούμενο\"] }, \"Light skin tone\": { \"v\": [\"Ανοιχτό θέμα\"] }, \"Medium dark skin tone\": { \"v\": [\"Μέτριο σκούρο θέμα\"] }, \"Medium light skin tone\": { \"v\": [\"Μέτριο ανοιχτό θέμα\"] }, \"Medium skin tone\": { \"v\": [\"Μέτριος τόνος θέματος\"] }, \"Neutral skin color\": { \"v\": [\"Ουδέτερο χρώμα θέματος\"] }, \"Objects\": { \"v\": [\"Αντικείμενα\"] }, \"People & Body\": { \"v\": [\"Άνθρωποι & Σώμα\"] }, \"Pick an emoji\": { \"v\": [\"Επιλέξτε ένα emoji\"] }, \"Search emoji\": { \"v\": [\"Αναζήτηση emoji\"] }, \"Search results\": { \"v\": [\"Αποτελέσματα αναζήτησης\"] }, \"Selected\": { \"v\": [\"Επιλεγμένο\"] }, \"Skin tone\": { \"v\": [\"Τόνος δέρματος\"] }, \"Smileys & Emotion\": { \"v\": [\"Φατσούλες & Συναίσθημα\"] }, \"Symbols\": { \"v\": [\"Σύμβολα\"] }, \"Travel & Places\": { \"v\": [\"Ταξίδια & Τοποθεσίες\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Activities\": { \"v\": [\"Activities\"] }, \"Animals & Nature\": { \"v\": [\"Animals & Nature\"] }, \"Custom\": { \"v\": [\"Custom\"] }, \"Dark skin tone\": { \"v\": [\"Dark skin tone\"] }, \"Emoji picker\": { \"v\": [\"Emoji picker\"] }, \"Flags\": { \"v\": [\"Flags\"] }, \"Food & Drink\": { \"v\": [\"Food & Drink\"] }, \"Frequently used\": { \"v\": [\"Frequently used\"] }, \"Light skin tone\": { \"v\": [\"Light skin tone\"] }, \"Medium dark skin tone\": { \"v\": [\"Medium dark skin tone\"] }, \"Medium light skin tone\": { \"v\": [\"Medium light skin tone\"] }, \"Medium skin tone\": { \"v\": [\"Medium skin tone\"] }, \"Neutral skin color\": { \"v\": [\"Neutral skin colour\"] }, \"Objects\": { \"v\": [\"Objects\"] }, \"People & Body\": { \"v\": [\"People & Body\"] }, \"Pick an emoji\": { \"v\": [\"Pick an emoji\"] }, \"Search emoji\": { \"v\": [\"Search emoji\"] }, \"Search results\": { \"v\": [\"Search results\"] }, \"Selected\": { \"v\": [\"Selected\"] }, \"Skin tone\": { \"v\": [\"Skin tone\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotion\"] }, \"Symbols\": { \"v\": [\"Symbols\"] }, \"Travel & Places\": { \"v\": [\"Travel & Places\"] } } }, { \"l\": \"eo\", \"t\": { \"Activities\": { \"v\": [\"Aktiveco\"] }, \"Animals & Nature\": { \"v\": [\"Bestoj & Naturo\"] }, \"Custom\": { \"v\": [\"Propra\"] }, \"Flags\": { \"v\": [\"Flagoj\"] }, \"Food & Drink\": { \"v\": [\"Manĝaĵo & Trinkaĵo\"] }, \"Frequently used\": { \"v\": [\"Ofte uzataj\"] }, \"Objects\": { \"v\": [\"Objektoj\"] }, \"People & Body\": { \"v\": [\"Homoj & Korpo\"] }, \"Pick an emoji\": { \"v\": [\"Elekti emoĝion \"] }, \"Search results\": { \"v\": [\"Serĉrezultoj\"] }, \"Smileys & Emotion\": { \"v\": [\"Ridoj kaj Emocioj\"] }, \"Symbols\": { \"v\": [\"Signoj\"] }, \"Travel & Places\": { \"v\": [\"Vojaĵoj & Lokoj\"] } } }, { \"l\": \"es\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tono de piel obscuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de emojis\"] }, \"Flags\": { \"v\": [\"Banderas\"] }, \"Food & Drink\": { \"v\": [\"Comida y bebida\"] }, \"Frequently used\": { \"v\": [\"Usado con frecuencia\"] }, \"Light skin tone\": { \"v\": [\"Tono de piel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tono de piel medio oscuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tono de piel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tono de piel medio\"] }, \"Neutral skin color\": { \"v\": [\"Color de piel neutral\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y Cuerpo\"] }, \"Pick an emoji\": { \"v\": [\"Elegir un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de la búsqueda\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Tono de piel\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys y emoticonos\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y lugares\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y Naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tono de piel oscuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de emojis\"] }, \"Flags\": { \"v\": [\"Marcas\"] }, \"Food & Drink\": { \"v\": [\"Comida y Bebida\"] }, \"Frequently used\": { \"v\": [\"Usados frecuentemente\"] }, \"Light skin tone\": { \"v\": [\"Tono de piel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tono de piel medio oscuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tono de piel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tono de piel medio\"] }, \"Neutral skin color\": { \"v\": [\"Color de piel neutral\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y Cuerpo\"] }, \"Pick an emoji\": { \"v\": [\"Elija un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de la búsqueda\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Tono de piel\"] }, \"Smileys & Emotion\": { \"v\": [\"Caritas y Emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y Lugares\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y Naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Flags\": { \"v\": [\"Marcas\"] }, \"Food & Drink\": { \"v\": [\"Comida y Bebida\"] }, \"Frequently used\": { \"v\": [\"Frecuentemente utilizado\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y Cuerpo\"] }, \"Pick an emoji\": { \"v\": [\"Seleccionar un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de búsqueda\"] }, \"Smileys & Emotion\": { \"v\": [\"Caritas y Emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y Lugares\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tono de piel oscuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de emojis\"] }, \"Flags\": { \"v\": [\"Banderas\"] }, \"Food & Drink\": { \"v\": [\"Comida y Bebida\"] }, \"Frequently used\": { \"v\": [\"Usado frecuentemente\"] }, \"Light skin tone\": { \"v\": [\"Tono de piel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tono de piel medio oscuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tono de piel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tono de piel medio\"] }, \"Neutral skin color\": { \"v\": [\"Color de piel neutral\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y cuerpos\"] }, \"Pick an emoji\": { \"v\": [\"Seleccionar un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de la búsqueda\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Tono de piel\"] }, \"Smileys & Emotion\": { \"v\": [\"Caritas y Emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y lugares\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Activities\": { \"v\": [\"Tegevused\"] }, \"Animals & Nature\": { \"v\": [\"Loomad ja loodus\"] }, \"Custom\": { \"v\": [\"Kohanda\"] }, \"Dark skin tone\": { \"v\": [\"Kesta tume toon\"] }, \"Emoji picker\": { \"v\": [\"Emojide valija\"] }, \"Flags\": { \"v\": [\"Lipud\"] }, \"Food & Drink\": { \"v\": [\"Söök ja jook\"] }, \"Frequently used\": { \"v\": [\"Sageli kasutatud\"] }, \"Light skin tone\": { \"v\": [\"Kesta hele toon\"] }, \"Medium dark skin tone\": { \"v\": [\"Kesta keskmiselt tume toon\"] }, \"Medium light skin tone\": { \"v\": [\"Kesta keskmiselt hele toon\"] }, \"Medium skin tone\": { \"v\": [\"Kesta keskmine toon\"] }, \"Neutral skin color\": { \"v\": [\"Kesta neutraalne toon\"] }, \"Objects\": { \"v\": [\"Objektid\"] }, \"People & Body\": { \"v\": [\"Inimesed ja keha\"] }, \"Pick an emoji\": { \"v\": [\"Vali emoji\"] }, \"Search emoji\": { \"v\": [\"Otsi emojit\"] }, \"Search results\": { \"v\": [\"Otsi tulemustest\"] }, \"Selected\": { \"v\": [\"Valitud\"] }, \"Skin tone\": { \"v\": [\"Kesta toon\"] }, \"Smileys & Emotion\": { \"v\": [\"Smailid ja emotsioonid\"] }, \"Symbols\": { \"v\": [\"Sümbolid\"] }, \"Travel & Places\": { \"v\": [\"Reisimine ja kohad\"] } } }, { \"l\": \"eu\", \"t\": { \"Activities\": { \"v\": [\"Jarduerak\"] }, \"Animals & Nature\": { \"v\": [\"Animaliak eta Natura\"] }, \"Custom\": { \"v\": [\"Pertsonalizatua\"] }, \"Flags\": { \"v\": [\"Banderak\"] }, \"Food & Drink\": { \"v\": [\"Janaria eta edariak\"] }, \"Frequently used\": { \"v\": [\"Askotan erabilia\"] }, \"Objects\": { \"v\": [\"Objektuak\"] }, \"People & Body\": { \"v\": [\"Jendea eta gorputza\"] }, \"Pick an emoji\": { \"v\": [\"Hautatu emoji bat\"] }, \"Search emoji\": { \"v\": [\"Bilatu emojiak\"] }, \"Search results\": { \"v\": [\"Bilaketa emaitzak\"] }, \"Selected\": { \"v\": [\"Hautatuta\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileyak eta emozioa\"] }, \"Symbols\": { \"v\": [\"Sinboloak\"] }, \"Travel & Places\": { \"v\": [\"Bidaiak eta lekuak\"] } } }, { \"l\": \"fa\", \"t\": { \"Activities\": { \"v\": [\"فعالیتها\"] }, \"Animals & Nature\": { \"v\": [\"حیوانات و طبیعت\"] }, \"Custom\": { \"v\": [\"سفارشی\"] }, \"Dark skin tone\": { \"v\": [\"رنگ پوسته تیره\"] }, \"Emoji picker\": { \"v\": [\"انتخابگر شکلک\"] }, \"Flags\": { \"v\": [\"پرچمها\"] }, \"Food & Drink\": { \"v\": [\"غذا و نوشیدنی\"] }, \"Frequently used\": { \"v\": [\"پرکاربرد\"] }, \"Light skin tone\": { \"v\": [\"رنگ پوسته روشن\"] }, \"Medium dark skin tone\": { \"v\": [\"رنگ پوسته تیره متوسط\"] }, \"Medium light skin tone\": { \"v\": [\"رنگ پوسته روشن متوسط\"] }, \"Medium skin tone\": { \"v\": [\"رنگ پوسته متوسط\"] }, \"Neutral skin color\": { \"v\": [\"رنگ پوسته خنثی\"] }, \"Objects\": { \"v\": [\"اشیاء\"] }, \"People & Body\": { \"v\": [\"مردم و بدن\"] }, \"Pick an emoji\": { \"v\": [\"انتخاب شکلک\"] }, \"Search emoji\": { \"v\": [\"جستجوی شکلک\"] }, \"Search results\": { \"v\": [\"نتایج جستجو\"] }, \"Selected\": { \"v\": [\"انتخاب شده\"] }, \"Skin tone\": { \"v\": [\"رنگ پوسته\"] }, \"Smileys & Emotion\": { \"v\": [\"شکلکها و احساسات\"] }, \"Symbols\": { \"v\": [\"نمادها\"] }, \"Travel & Places\": { \"v\": [\"سفر و مکانها\"] } } }, { \"l\": \"fi\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteetit\"] }, \"Animals & Nature\": { \"v\": [\"Eläimet & luonto\"] }, \"Custom\": { \"v\": [\"Mukautettu\"] }, \"Dark skin tone\": { \"v\": [\"Tumma ihonväri\"] }, \"Emoji picker\": { \"v\": [\"Emojivalitsin\"] }, \"Flags\": { \"v\": [\"Liput\"] }, \"Food & Drink\": { \"v\": [\"Ruoka & juoma\"] }, \"Frequently used\": { \"v\": [\"Usein käytetyt\"] }, \"Light skin tone\": { \"v\": [\"Vaalea ihonväri\"] }, \"Medium dark skin tone\": { \"v\": [\"Keskitumma ihonväri\"] }, \"Medium light skin tone\": { \"v\": [\"Keskivaalea ihonväri\"] }, \"Medium skin tone\": { \"v\": [\"Keskimääräinen ihonväri\"] }, \"Neutral skin color\": { \"v\": [\"Neutraali ihonväri\"] }, \"Objects\": { \"v\": [\"Esineet & asiat\"] }, \"People & Body\": { \"v\": [\"Ihmiset & keho\"] }, \"Pick an emoji\": { \"v\": [\"Valitse emoji\"] }, \"Search emoji\": { \"v\": [\"Etsi emojia\"] }, \"Search results\": { \"v\": [\"Hakutulokset\"] }, \"Selected\": { \"v\": [\"Valittu\"] }, \"Skin tone\": { \"v\": [\"Ihonväri\"] }, \"Smileys & Emotion\": { \"v\": [\"Hymiöt & tunteet\"] }, \"Symbols\": { \"v\": [\"Symbolit\"] }, \"Travel & Places\": { \"v\": [\"Matkustus & kohteet\"] } } }, { \"l\": \"fr\", \"t\": { \"Activities\": { \"v\": [\"Activités\"] }, \"Animals & Nature\": { \"v\": [\"Animaux & Nature\"] }, \"Custom\": { \"v\": [\"Personnalisé\"] }, \"Dark skin tone\": { \"v\": [\"Teint de peau foncé\"] }, \"Emoji picker\": { \"v\": [\"Sélecteur d'émojis\"] }, \"Flags\": { \"v\": [\"Drapeaux\"] }, \"Food & Drink\": { \"v\": [\"Nourriture & Boissons\"] }, \"Frequently used\": { \"v\": [\"Utilisés fréquemment\"] }, \"Light skin tone\": { \"v\": [\"Teint de peau clair\"] }, \"Medium dark skin tone\": { \"v\": [\"Teint de peau moyennement foncé\"] }, \"Medium light skin tone\": { \"v\": [\"Teint de peau moyennement clair\"] }, \"Medium skin tone\": { \"v\": [\"Teint de peau moyen\"] }, \"Neutral skin color\": { \"v\": [\"Teint de peau neutre\"] }, \"Objects\": { \"v\": [\"Objets\"] }, \"People & Body\": { \"v\": [\"Personnes & Corps\"] }, \"Pick an emoji\": { \"v\": [\"Choisissez un émoji\"] }, \"Search emoji\": { \"v\": [\"Rechercher un emoji\"] }, \"Search results\": { \"v\": [\"Résultats de recherche\"] }, \"Selected\": { \"v\": [\"sélectionné\"] }, \"Skin tone\": { \"v\": [\"Teint de peau\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Émotions\"] }, \"Symbols\": { \"v\": [\"Symboles\"] }, \"Travel & Places\": { \"v\": [\"Voyage & Lieux\"] } } }, { \"l\": \"ga\", \"t\": { \"Activities\": { \"v\": [\"Gníomhaíochtaí\"] }, \"Animals & Nature\": { \"v\": [\"Ainmhithe & Dúlra\"] }, \"Custom\": { \"v\": [\"Saincheaptha\"] }, \"Dark skin tone\": { \"v\": [\"Ton craiceann dorcha\"] }, \"Emoji picker\": { \"v\": [\"Roghnóir Emoji\"] }, \"Flags\": { \"v\": [\"Bratacha\"] }, \"Food & Drink\": { \"v\": [\"Bia & Deoch\"] }, \"Frequently used\": { \"v\": [\"Úsáidtear go minic\"] }, \"Light skin tone\": { \"v\": [\"Ton craiceann éadrom\"] }, \"Medium dark skin tone\": { \"v\": [\"Ton craiceann meánach dorcha\"] }, \"Medium light skin tone\": { \"v\": [\"Ton craiceann meánach éadrom\"] }, \"Medium skin tone\": { \"v\": [\"Ton craiceann meánach\"] }, \"Neutral skin color\": { \"v\": [\"Dath craiceann neodrach\"] }, \"Objects\": { \"v\": [\"Réada\"] }, \"People & Body\": { \"v\": [\"Daoine & Corp\"] }, \"Pick an emoji\": { \"v\": [\"Roghnaigh emoji\"] }, \"Search emoji\": { \"v\": [\"Cuardaigh emoji\"] }, \"Search results\": { \"v\": [\"Torthaí cuardaigh\"] }, \"Selected\": { \"v\": [\"Roghnaithe\"] }, \"Skin tone\": { \"v\": [\"Ton craicinn\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Mothúchán\"] }, \"Symbols\": { \"v\": [\"Siombailí\"] }, \"Travel & Places\": { \"v\": [\"Taisteal & Áiteanna\"] } } }, { \"l\": \"gl\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animais e natureza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Ton de pel escuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de «emojis»\"] }, \"Flags\": { \"v\": [\"Bandeiras\"] }, \"Food & Drink\": { \"v\": [\"Comida e bebida\"] }, \"Frequently used\": { \"v\": [\"Usado con frecuencia\"] }, \"Light skin tone\": { \"v\": [\"Ton de pel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Ton de pel medio escuro\"] }, \"Medium light skin tone\": { \"v\": [\"Ton de pel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Ton de pel medio\"] }, \"Neutral skin color\": { \"v\": [\"Cor de pel neutra\"] }, \"Objects\": { \"v\": [\"Obxectos\"] }, \"People & Body\": { \"v\": [\"Persoas e corpo\"] }, \"Pick an emoji\": { \"v\": [\"Escolla un «emoji»\"] }, \"Search emoji\": { \"v\": [\"Buscar «emoji»\"] }, \"Search results\": { \"v\": [\"Resultados da busca\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Ton de pel\"] }, \"Smileys & Emotion\": { \"v\": [\"Sorrisos e emocións\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viaxes e lugares\"] } } }, { \"l\": \"he\", \"t\": { \"Activities\": { \"v\": [\"פעילויות\"] }, \"Animals & Nature\": { \"v\": [\"חיות וטבע\"] }, \"Custom\": { \"v\": [\"בהתאמה אישית\"] }, \"Flags\": { \"v\": [\"דגלים\"] }, \"Food & Drink\": { \"v\": [\"מזון ומשקאות\"] }, \"Frequently used\": { \"v\": [\"בשימוש תדיר\"] }, \"Objects\": { \"v\": [\"חפצים\"] }, \"People & Body\": { \"v\": [\"אנשים וגוף\"] }, \"Pick an emoji\": { \"v\": [\"נא לבחור אמוג׳י\"] }, \"Search emoji\": { \"v\": [\"חיפוש אמוג׳י\"] }, \"Search results\": { \"v\": [\"תוצאות חיפוש\"] }, \"Smileys & Emotion\": { \"v\": [\"חייכנים ורגשונים\"] }, \"Symbols\": { \"v\": [\"סמלים\"] }, \"Travel & Places\": { \"v\": [\"טיולים ומקומות\"] } } }, { \"l\": \"hu\", \"t\": { \"Activities\": { \"v\": [\"Tevékenységek\"] }, \"Animals & Nature\": { \"v\": [\"Állatok és természet\"] }, \"Custom\": { \"v\": [\"Egyéni\"] }, \"Flags\": { \"v\": [\"Zászlók\"] }, \"Food & Drink\": { \"v\": [\"Étel és ital\"] }, \"Frequently used\": { \"v\": [\"Gyakran használt\"] }, \"Objects\": { \"v\": [\"Tárgyak\"] }, \"People & Body\": { \"v\": [\"Emberek és test\"] }, \"Pick an emoji\": { \"v\": [\"Válasszon egy emodzsit\"] }, \"Search results\": { \"v\": [\"Találatok\"] }, \"Smileys & Emotion\": { \"v\": [\"Mosolyok és érzelmek\"] }, \"Symbols\": { \"v\": [\"Szimbólumok\"] }, \"Travel & Places\": { \"v\": [\"Utazás és helyek\"] } } }, { \"l\": \"id\", \"t\": { \"Activities\": { \"v\": [\"Aktivitas\"] }, \"Animals & Nature\": { \"v\": [\"Satwa dan Alam\"] }, \"Custom\": { \"v\": [\"Khusus\"] }, \"Flags\": { \"v\": [\"Tanda\"] }, \"Food & Drink\": { \"v\": [\"Makanan dan Minuman\"] }, \"Frequently used\": { \"v\": [\"Sering digunakan\"] }, \"Objects\": { \"v\": [\"Objek\"] }, \"People & Body\": { \"v\": [\"Orang & Badan\"] }, \"Pick an emoji\": { \"v\": [\"Pilih emoji\"] }, \"Search emoji\": { \"v\": [\"Cari emoji\"] }, \"Search results\": { \"v\": [\"Hasil pencarian\"] }, \"Selected\": { \"v\": [\"Dipilih\"] }, \"Smileys & Emotion\": { \"v\": [\"Senyuman & Perasaan\"] }, \"Symbols\": { \"v\": [\"Simbol\"] }, \"Travel & Places\": { \"v\": [\"Perjalanan & Tempat\"] } } }, { \"l\": \"is\", \"t\": { \"Activities\": { \"v\": [\"Aðgerðir\"] }, \"Animals & Nature\": { \"v\": [\"Dýr og náttúra\"] }, \"Custom\": { \"v\": [\"Sérsniðið\"] }, \"Dark skin tone\": { \"v\": [\"Dökkur húðlitur\"] }, \"Emoji picker\": { \"v\": [\"Emoji-táknmyndaval\"] }, \"Flags\": { \"v\": [\"Flögg\"] }, \"Food & Drink\": { \"v\": [\"Matur og drykkur\"] }, \"Frequently used\": { \"v\": [\"Oftast notað\"] }, \"Light skin tone\": { \"v\": [\"Ljós húðlitur\"] }, \"Medium dark skin tone\": { \"v\": [\"Meðaldökkur húðlitur\"] }, \"Medium light skin tone\": { \"v\": [\"Meðalljós húðlitur\"] }, \"Medium skin tone\": { \"v\": [\"Meðaltónn húðar\"] }, \"Neutral skin color\": { \"v\": [\"Hlutlaus húðlitur\"] }, \"Objects\": { \"v\": [\"Hlutir\"] }, \"People & Body\": { \"v\": [\"Fólk og líkami\"] }, \"Pick an emoji\": { \"v\": [\"Veldu tjáningartákn\"] }, \"Search emoji\": { \"v\": [\"Leita að tjáningartákni\"] }, \"Search results\": { \"v\": [\"Leitarniðurstöður\"] }, \"Selected\": { \"v\": [\"Valið\"] }, \"Skin tone\": { \"v\": [\"Húðlitur\"] }, \"Smileys & Emotion\": { \"v\": [\"Broskallar og tilfinningar\"] }, \"Symbols\": { \"v\": [\"Tákn\"] }, \"Travel & Places\": { \"v\": [\"Staðir og ferðalög\"] } } }, { \"l\": \"it\", \"t\": { \"Activities\": { \"v\": [\"Attività\"] }, \"Animals & Nature\": { \"v\": [\"Animali e natura\"] }, \"Custom\": { \"v\": [\"Personalizzato\"] }, \"Flags\": { \"v\": [\"Bandiere\"] }, \"Food & Drink\": { \"v\": [\"Cibo e bevande\"] }, \"Frequently used\": { \"v\": [\"Usati di frequente\"] }, \"Objects\": { \"v\": [\"Oggetti\"] }, \"People & Body\": { \"v\": [\"Persone e corpo\"] }, \"Pick an emoji\": { \"v\": [\"Scegli un emoji\"] }, \"Search emoji\": { \"v\": [\"Ricerca emoji\"] }, \"Search results\": { \"v\": [\"Risultati di ricerca\"] }, \"Selected\": { \"v\": [\"Selezionato\"] }, \"Smileys & Emotion\": { \"v\": [\"Faccine ed emozioni\"] }, \"Symbols\": { \"v\": [\"Simboli\"] }, \"Travel & Places\": { \"v\": [\"Viaggi e luoghi\"] } } }, { \"l\": \"ja\", \"t\": { \"Activities\": { \"v\": [\"アクティビティ\"] }, \"Animals & Nature\": { \"v\": [\"動物と自然\"] }, \"Custom\": { \"v\": [\"カスタム\"] }, \"Dark skin tone\": { \"v\": [\"暗い肌のトーン\"] }, \"Emoji picker\": { \"v\": [\"絵文字ピッカー\"] }, \"Flags\": { \"v\": [\"国旗\"] }, \"Food & Drink\": { \"v\": [\"食べ物と飲み物\"] }, \"Frequently used\": { \"v\": [\"よく使うもの\"] }, \"Light skin tone\": { \"v\": [\"明るい肌のトーン\"] }, \"Medium dark skin tone\": { \"v\": [\"やや暗い肌のトーン\"] }, \"Medium light skin tone\": { \"v\": [\"やや明るい肌のトーン\"] }, \"Medium skin tone\": { \"v\": [\"中間の肌のトーン\"] }, \"Neutral skin color\": { \"v\": [\"ニュートラルな肌の色\"] }, \"Objects\": { \"v\": [\"物\"] }, \"People & Body\": { \"v\": [\"様々な人と体の部位\"] }, \"Pick an emoji\": { \"v\": [\"絵文字を選択\"] }, \"Search emoji\": { \"v\": [\"絵文字を検索\"] }, \"Search results\": { \"v\": [\"検索結果\"] }, \"Selected\": { \"v\": [\"選択済み\"] }, \"Skin tone\": { \"v\": [\"肌のトーン\"] }, \"Smileys & Emotion\": { \"v\": [\"感情表現\"] }, \"Symbols\": { \"v\": [\"記号\"] }, \"Travel & Places\": { \"v\": [\"旅行と場所\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Activities\": { \"v\": [\"アクティビティ\"] }, \"Animals & Nature\": { \"v\": [\"動物と自然\"] }, \"Custom\": { \"v\": [\"カスタム\"] }, \"Dark skin tone\": { \"v\": [\"暗い肌のトーン\"] }, \"Emoji picker\": { \"v\": [\"絵文字ピッカー\"] }, \"Flags\": { \"v\": [\"国旗\"] }, \"Food & Drink\": { \"v\": [\"食べ物と飲み物\"] }, \"Frequently used\": { \"v\": [\"よく使うもの\"] }, \"Light skin tone\": { \"v\": [\"明るい肌のトーン\"] }, \"Medium dark skin tone\": { \"v\": [\"やや暗い肌のトーン\"] }, \"Medium light skin tone\": { \"v\": [\"やや明るい肌のトーン\"] }, \"Medium skin tone\": { \"v\": [\"中間の肌のトーン\"] }, \"Neutral skin color\": { \"v\": [\"ニュートラルな肌の色\"] }, \"Objects\": { \"v\": [\"物\"] }, \"People & Body\": { \"v\": [\"様々な人と体の部位\"] }, \"Pick an emoji\": { \"v\": [\"絵文字を選択\"] }, \"Search emoji\": { \"v\": [\"絵文字を検索\"] }, \"Search results\": { \"v\": [\"検索結果\"] }, \"Selected\": { \"v\": [\"選択済み\"] }, \"Skin tone\": { \"v\": [\"肌のトーン\"] }, \"Smileys & Emotion\": { \"v\": [\"感情表現\"] }, \"Symbols\": { \"v\": [\"記号\"] }, \"Travel & Places\": { \"v\": [\"旅行と場所\"] } } }, { \"l\": \"ko\", \"t\": { \"Activities\": { \"v\": [\"활동\"] }, \"Animals & Nature\": { \"v\": [\"동물 & 자연\"] }, \"Custom\": { \"v\": [\"맞춤 설정\"] }, \"Dark skin tone\": { \"v\": [\"어두운 피부 톤\"] }, \"Emoji picker\": { \"v\": [\"이모지 선택기\"] }, \"Flags\": { \"v\": [\"깃발\"] }, \"Food & Drink\": { \"v\": [\"음식 & 음료\"] }, \"Frequently used\": { \"v\": [\"자주 쓰임\"] }, \"Light skin tone\": { \"v\": [\"밝은 피부 톤\"] }, \"Medium dark skin tone\": { \"v\": [\"약간 어두운 피부 톤\"] }, \"Medium light skin tone\": { \"v\": [\"약간 밝은 피부 톤\"] }, \"Medium skin tone\": { \"v\": [\"중간 피부 톤\"] }, \"Neutral skin color\": { \"v\": [\"중성적 피부 톤\"] }, \"Objects\": { \"v\": [\"물체\"] }, \"People & Body\": { \"v\": [\"사람 & 신체\"] }, \"Pick an emoji\": { \"v\": [\"이모지 선택\"] }, \"Search emoji\": { \"v\": [\"이모지 검색\"] }, \"Search results\": { \"v\": [\"검색 결과\"] }, \"Selected\": { \"v\": [\"선택됨\"] }, \"Skin tone\": { \"v\": [\"피부 톤\"] }, \"Smileys & Emotion\": { \"v\": [\"스마일리 & 이모티콘\"] }, \"Symbols\": { \"v\": [\"기호\"] }, \"Travel & Places\": { \"v\": [\"여행 & 장소\"] } } }, { \"l\": \"lo\", \"t\": { \"Activities\": { \"v\": [\"ກິດຈະກຳ\"] }, \"Animals & Nature\": { \"v\": [\"ສັດ ແລະ ທຳມະຊາດ\"] }, \"Custom\": { \"v\": [\"ກຳນົດເອງ\"] }, \"Dark skin tone\": { \"v\": [\"ໂຕນສີຜິວເຂັ້ມ\"] }, \"Emoji picker\": { \"v\": [\"ໂຕເລືອກອີໂມຈິ\"] }, \"Flags\": { \"v\": [\"ທຸງ\"] }, \"Food & Drink\": { \"v\": [\"ອາຫານ ແລະ ເຄື່ອງດື່ມ\"] }, \"Frequently used\": { \"v\": [\"ໃຊ້ງານເລື້ອຍໆ\"] }, \"Light skin tone\": { \"v\": [\"ໂຕນສີຜິວອ່ອນ\"] }, \"Medium dark skin tone\": { \"v\": [\"ໂຕນສີຜິວເຂັ້ມປານກາງ\"] }, \"Medium light skin tone\": { \"v\": [\"ໂຕນສີຜິວອ່ອນປານກາງ\"] }, \"Medium skin tone\": { \"v\": [\"ໂຕນສີຜິວປານກາງ\"] }, \"Neutral skin color\": { \"v\": [\"ສີຜິວເປັນກາງ\"] }, \"Objects\": { \"v\": [\"ວັດຖຸ\"] }, \"People & Body\": { \"v\": [\"ຄົນ ແລະ ຮ່າງກາຍ\"] }, \"Pick an emoji\": { \"v\": [\"ເລືອກອີໂມຈິ\"] }, \"Search emoji\": { \"v\": [\"ຄົ້ນຫາອີໂມຈິ\"] }, \"Search results\": { \"v\": [\"ຜົນການຄົ້ນຫາ\"] }, \"Selected\": { \"v\": [\"ເລືອກແລ້ວ\"] }, \"Skin tone\": { \"v\": [\"ໂຕນສີຜິວ\"] }, \"Smileys & Emotion\": { \"v\": [\"ໜ້າຍິ້ມ ແລະ ອາລົມ\"] }, \"Symbols\": { \"v\": [\"ສັນຍາລັກ\"] }, \"Travel & Places\": { \"v\": [\"ການເດີນທາງ ແລະ ສະຖານທີ່\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Activities\": { \"v\": [\"Veiklos\"] }, \"Animals & Nature\": { \"v\": [\"Gyvūnai ir gamta\"] }, \"Custom\": { \"v\": [\"Tinkinti\"] }, \"Flags\": { \"v\": [\"Vėliavos\"] }, \"Food & Drink\": { \"v\": [\"Maistas ir gėrimai\"] }, \"Frequently used\": { \"v\": [\"Dažniausiai naudoti\"] }, \"Objects\": { \"v\": [\"Objektai\"] }, \"People & Body\": { \"v\": [\"Žmonės ir kūnas\"] }, \"Pick an emoji\": { \"v\": [\"Pasirinkti jaustuką\"] }, \"Search results\": { \"v\": [\"Paieškos rezultatai\"] }, \"Smileys & Emotion\": { \"v\": [\"Šypsenos ir emocijos\"] }, \"Symbols\": { \"v\": [\"Simboliai\"] }, \"Travel & Places\": { \"v\": [\"Kelionės ir vietos\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Activities\": { \"v\": [\"Активности\"] }, \"Animals & Nature\": { \"v\": [\"Животни & Природа\"] }, \"Custom\": { \"v\": [\"Прилагодени\"] }, \"Dark skin tone\": { \"v\": [\"Темна боја на кожа\"] }, \"Emoji picker\": { \"v\": [\"Избор на emoji\"] }, \"Flags\": { \"v\": [\"Знамиња\"] }, \"Food & Drink\": { \"v\": [\"Храна & Пијалоци\"] }, \"Frequently used\": { \"v\": [\"Најчесто користени\"] }, \"Light skin tone\": { \"v\": [\"Светла кожа\"] }, \"Medium dark skin tone\": { \"v\": [\"Средно темна кожа\"] }, \"Medium light skin tone\": { \"v\": [\"Средно светла кожа\"] }, \"Medium skin tone\": { \"v\": [\"Средна кожа\"] }, \"Neutral skin color\": { \"v\": [\"Неутрална боја на кожа\"] }, \"Objects\": { \"v\": [\"Објекти\"] }, \"People & Body\": { \"v\": [\"Луѓе & Тело\"] }, \"Pick an emoji\": { \"v\": [\"Избери емотикон\"] }, \"Search emoji\": { \"v\": [\"Барај emoji\"] }, \"Search results\": { \"v\": [\"Резултати од барувањето\"] }, \"Selected\": { \"v\": [\"Избрано\"] }, \"Skin tone\": { \"v\": [\"Боја на кожа\"] }, \"Smileys & Emotion\": { \"v\": [\"Смешковци & Емотикони\"] }, \"Symbols\": { \"v\": [\"Симболи\"] }, \"Travel & Places\": { \"v\": [\"Патувања & Места\"] } } }, { \"l\": \"my\", \"t\": { \"Activities\": { \"v\": [\"ပြုလုပ်ဆောင်တာများ\"] }, \"Animals & Nature\": { \"v\": [\"တိရစ္ဆာန်များနှင့် သဘာဝ\"] }, \"Custom\": { \"v\": [\"အလိုကျချိန်ညှိမှု\"] }, \"Flags\": { \"v\": [\"အလံများ\"] }, \"Food & Drink\": { \"v\": [\"အစားအသောက်\"] }, \"Frequently used\": { \"v\": [\"မကြာခဏအသုံးပြုသော\"] }, \"Objects\": { \"v\": [\"အရာဝတ္ထုများ\"] }, \"People & Body\": { \"v\": [\"လူပုဂ္ဂိုလ်များနှင့် ခန္ဓာကိုယ်\"] }, \"Pick an emoji\": { \"v\": [\"အီမိုဂျီရွေးရန်\"] }, \"Search results\": { \"v\": [\"ရှာဖွေမှု ရလဒ်များ\"] }, \"Smileys & Emotion\": { \"v\": [\"စမိုင်လီများနှင့် အီမိုရှင်း\"] }, \"Symbols\": { \"v\": [\"သင်္ကေတများ\"] }, \"Travel & Places\": { \"v\": [\"ခရီးသွားလာခြင်းနှင့် နေရာများ\"] } } }, { \"l\": \"nb\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteter\"] }, \"Animals & Nature\": { \"v\": [\"Dyr og natur\"] }, \"Custom\": { \"v\": [\"Tilpasset\"] }, \"Dark skin tone\": { \"v\": [\"Mørk hudtone\"] }, \"Emoji picker\": { \"v\": [\"Emoji-velger\"] }, \"Flags\": { \"v\": [\"Flagg\"] }, \"Food & Drink\": { \"v\": [\"Mat og drikke\"] }, \"Frequently used\": { \"v\": [\"Ofte brukt\"] }, \"Light skin tone\": { \"v\": [\"Lys hudtone\"] }, \"Medium dark skin tone\": { \"v\": [\"Middels mørk hudtone\"] }, \"Medium light skin tone\": { \"v\": [\"Middels lys hudtone\"] }, \"Medium skin tone\": { \"v\": [\"Middels hudtone\"] }, \"Neutral skin color\": { \"v\": [\"Nøytral hudfarge\"] }, \"Objects\": { \"v\": [\"Objekter\"] }, \"People & Body\": { \"v\": [\"Mennesker og kropp\"] }, \"Pick an emoji\": { \"v\": [\"Velg en emoji\"] }, \"Search emoji\": { \"v\": [\"Søk emoji\"] }, \"Search results\": { \"v\": [\"Søkeresultater\"] }, \"Selected\": { \"v\": [\"Valgt\"] }, \"Skin tone\": { \"v\": [\"Hudtone\"] }, \"Smileys & Emotion\": { \"v\": [\"Smilefjes og følelser\"] }, \"Symbols\": { \"v\": [\"Symboler\"] }, \"Travel & Places\": { \"v\": [\"Reise og steder\"] } } }, { \"l\": \"nl\", \"t\": { \"Activities\": { \"v\": [\"Activiteiten\"] }, \"Animals & Nature\": { \"v\": [\"Dieren & Natuur\"] }, \"Custom\": { \"v\": [\"Aangepast\"] }, \"Dark skin tone\": { \"v\": [\"Donkere huidskleur\"] }, \"Emoji picker\": { \"v\": [\"Emoji-kiezer\"] }, \"Flags\": { \"v\": [\"Vlaggen\"] }, \"Food & Drink\": { \"v\": [\"Eten & Drinken\"] }, \"Frequently used\": { \"v\": [\"Vaak gebruikt\"] }, \"Light skin tone\": { \"v\": [\"Lichte huidskleur\"] }, \"Medium dark skin tone\": { \"v\": [\"Gemiddeld donkere huidskleur\"] }, \"Medium light skin tone\": { \"v\": [\"Gemiddeld lichte huidskleur\"] }, \"Medium skin tone\": { \"v\": [\"Gemiddelde huidskleur\"] }, \"Neutral skin color\": { \"v\": [\"Neutrale huidskleur\"] }, \"Objects\": { \"v\": [\"Objecten\"] }, \"People & Body\": { \"v\": [\"Mensen & Lichaam\"] }, \"Pick an emoji\": { \"v\": [\"Kies een emoji\"] }, \"Search emoji\": { \"v\": [\"Emoji zoeken\"] }, \"Search results\": { \"v\": [\"Zoekresultaten\"] }, \"Selected\": { \"v\": [\"Geselecteerd\"] }, \"Skin tone\": { \"v\": [\"Huidskleur\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotie\"] }, \"Symbols\": { \"v\": [\"Symbolen\"] }, \"Travel & Places\": { \"v\": [\"Reizen & Plaatsen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Activities\": { \"v\": [\"Aktywność\"] }, \"Animals & Nature\": { \"v\": [\"Zwierzęta i natura\"] }, \"Custom\": { \"v\": [\"Zwyczajne\"] }, \"Dark skin tone\": { \"v\": [\"Ciemna tonacja\"] }, \"Emoji picker\": { \"v\": [\"Wybierz Emoji\"] }, \"Flags\": { \"v\": [\"Flagi\"] }, \"Food & Drink\": { \"v\": [\"Jedzenie i picie\"] }, \"Frequently used\": { \"v\": [\"Często używane\"] }, \"Light skin tone\": { \"v\": [\"Jasny odcień skóry\"] }, \"Medium dark skin tone\": { \"v\": [\"Średnio ciemny odcień skóry\"] }, \"Medium light skin tone\": { \"v\": [\"Średnio jasny odcień skóry\"] }, \"Medium skin tone\": { \"v\": [\"Średni odcień skóry\"] }, \"Neutral skin color\": { \"v\": [\"Neutralny kolor skróry\"] }, \"Objects\": { \"v\": [\"Obiekty\"] }, \"People & Body\": { \"v\": [\"Ludzie i ciało\"] }, \"Pick an emoji\": { \"v\": [\"Wybierz emoji\"] }, \"Search emoji\": { \"v\": [\"Szukaj emoji\"] }, \"Search results\": { \"v\": [\"Wyniki wyszukiwania\"] }, \"Selected\": { \"v\": [\"Wybrane\"] }, \"Skin tone\": { \"v\": [\"Kolor skóry\"] }, \"Smileys & Emotion\": { \"v\": [\"Buźki i emotikony\"] }, \"Symbols\": { \"v\": [\"Symbole\"] }, \"Travel & Places\": { \"v\": [\"Podróże i miejsca\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Activities\": { \"v\": [\"Atividades\"] }, \"Animals & Nature\": { \"v\": [\"Animais & Natureza\"] }, \"Custom\": { \"v\": [\"Personalizados\"] }, \"Dark skin tone\": { \"v\": [\"Tom de pele escuro\"] }, \"Emoji picker\": { \"v\": [\"Seletor de emoji\"] }, \"Flags\": { \"v\": [\"Bandeiras\"] }, \"Food & Drink\": { \"v\": [\"Comida & Bebida\"] }, \"Frequently used\": { \"v\": [\"Mais usados\"] }, \"Light skin tone\": { \"v\": [\"Tom de pele claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tom de pele meio escuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tom de pele meio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tom de pele médio\"] }, \"Neutral skin color\": { \"v\": [\"Tom de pele neutro\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Pessoas & Corpo\"] }, \"Pick an emoji\": { \"v\": [\"Escolha um emoji\"] }, \"Search emoji\": { \"v\": [\"Pesquisar emoji\"] }, \"Search results\": { \"v\": [\"Resultados da pesquisa\"] }, \"Selected\": { \"v\": [\"Selecionado\"] }, \"Skin tone\": { \"v\": [\"Tom de pele\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emoções\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viagem & Lugares\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Activities\": { \"v\": [\"Atividades\"] }, \"Animals & Nature\": { \"v\": [\"Animais e Natureza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tom de pele escuro\"] }, \"Emoji picker\": { \"v\": [\"seletor de emoji\"] }, \"Flags\": { \"v\": [\"Bandeiras\"] }, \"Food & Drink\": { \"v\": [\"Comida e Bebida\"] }, \"Frequently used\": { \"v\": [\"Mais utilizados\"] }, \"Light skin tone\": { \"v\": [\"Tom de pele claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tom de pele escuro médio\"] }, \"Medium light skin tone\": { \"v\": [\"Tom de pele claro médio\"] }, \"Medium skin tone\": { \"v\": [\"Tom de pele médio\"] }, \"Neutral skin color\": { \"v\": [\"Cor de pele neutra\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Pessoas e Corpo\"] }, \"Pick an emoji\": { \"v\": [\"Escolha um emoji\"] }, \"Search emoji\": { \"v\": [\"Pesquisar emoji\"] }, \"Search results\": { \"v\": [\"Resultados da pesquisa\"] }, \"Selected\": { \"v\": [\"Selecionado\"] }, \"Skin tone\": { \"v\": [\"Tom de pele\"] }, \"Smileys & Emotion\": { \"v\": [\"Sorrisos e Emoções\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viagens e Lugares\"] } } }, { \"l\": \"ro\", \"t\": { \"Activities\": { \"v\": [\"Activități\"] }, \"Animals & Nature\": { \"v\": [\"Animale și natură\"] }, \"Custom\": { \"v\": [\"Personalizat\"] }, \"Flags\": { \"v\": [\"Marcaje\"] }, \"Food & Drink\": { \"v\": [\"Alimente și băuturi\"] }, \"Frequently used\": { \"v\": [\"Utilizate frecvent\"] }, \"Objects\": { \"v\": [\"Obiecte\"] }, \"People & Body\": { \"v\": [\"Oameni și corp\"] }, \"Pick an emoji\": { \"v\": [\"Alege un emoji\"] }, \"Search emoji\": { \"v\": [\"Căutare emoji\"] }, \"Search results\": { \"v\": [\"Rezultatele căutării\"] }, \"Selected\": { \"v\": [\"Selectat\"] }, \"Smileys & Emotion\": { \"v\": [\"Zâmbete și emoții\"] }, \"Symbols\": { \"v\": [\"Simboluri\"] }, \"Travel & Places\": { \"v\": [\"Călătorii și locuri\"] } } }, { \"l\": \"ru\", \"t\": { \"Activities\": { \"v\": [\"События\"] }, \"Animals & Nature\": { \"v\": [\"Животные и природа \"] }, \"Custom\": { \"v\": [\"Пользовательское\"] }, \"Dark skin tone\": { \"v\": [\"Темный оттенок\"] }, \"Emoji picker\": { \"v\": [\"Подборщик эмодзи\"] }, \"Flags\": { \"v\": [\"Флаги\"] }, \"Food & Drink\": { \"v\": [\"Еда, напиток\"] }, \"Frequently used\": { \"v\": [\"Часто используемый\"] }, \"Light skin tone\": { \"v\": [\"Светлый оттенок\"] }, \"Medium dark skin tone\": { \"v\": [\"Средний темный оттенок\"] }, \"Medium light skin tone\": { \"v\": [\"Средний светлый оттенок\"] }, \"Medium skin tone\": { \"v\": [\"Средний оттенок\"] }, \"Neutral skin color\": { \"v\": [\"Нейтральный оттенок\"] }, \"Objects\": { \"v\": [\"Объекты\"] }, \"People & Body\": { \"v\": [\"Люди и тело\"] }, \"Pick an emoji\": { \"v\": [\"Выберите эмодзи\"] }, \"Search emoji\": { \"v\": [\"Поиск эмодзи\"] }, \"Search results\": { \"v\": [\"Результаты поиска\"] }, \"Selected\": { \"v\": [\"Выбрано\"] }, \"Skin tone\": { \"v\": [\"Оттенок скина\"] }, \"Smileys & Emotion\": { \"v\": [\"Смайлики и эмоции\"] }, \"Symbols\": { \"v\": [\"Символы\"] }, \"Travel & Places\": { \"v\": [\"Путешествия и места\"] } } }, { \"l\": \"sk\", \"t\": { \"Activities\": { \"v\": [\"Aktivity\"] }, \"Animals & Nature\": { \"v\": [\"Zvieratá a príroda\"] }, \"Custom\": { \"v\": [\"Vlastné\"] }, \"Dark skin tone\": { \"v\": [\"Tmavý vzhľad\"] }, \"Emoji picker\": { \"v\": [\"Výber emodži\"] }, \"Flags\": { \"v\": [\"Vlajky\"] }, \"Food & Drink\": { \"v\": [\"Jedlo a nápoje\"] }, \"Frequently used\": { \"v\": [\"Často používané\"] }, \"Light skin tone\": { \"v\": [\"Svetlý vzhľad\"] }, \"Medium dark skin tone\": { \"v\": [\"Stredne tmavý vzhľad\"] }, \"Medium light skin tone\": { \"v\": [\"Stredne svetlý vzhľad\"] }, \"Medium skin tone\": { \"v\": [\"Stredný vzhľad\"] }, \"Neutral skin color\": { \"v\": [\"Neutrálny vzhľad\"] }, \"Objects\": { \"v\": [\"Objekty\"] }, \"People & Body\": { \"v\": [\"Ľudia a telo\"] }, \"Pick an emoji\": { \"v\": [\"Vybrať emodži\"] }, \"Search emoji\": { \"v\": [\"Vyhľadať emoji\"] }, \"Search results\": { \"v\": [\"Výsledky vyhľadávania\"] }, \"Selected\": { \"v\": [\"Vybraný\"] }, \"Skin tone\": { \"v\": [\"Vzhľad\"] }, \"Smileys & Emotion\": { \"v\": [\"Smajlíky a emócie\"] }, \"Symbols\": { \"v\": [\"Symboly\"] }, \"Travel & Places\": { \"v\": [\"Cestovanie a miesta\"] } } }, { \"l\": \"sl\", \"t\": { \"Activities\": { \"v\": [\"Dejavnosti\"] }, \"Animals & Nature\": { \"v\": [\"Živali in Narava\"] }, \"Custom\": { \"v\": [\"Po meri\"] }, \"Flags\": { \"v\": [\"Zastavice\"] }, \"Food & Drink\": { \"v\": [\"Hrana in Pijača\"] }, \"Frequently used\": { \"v\": [\"Pogostost uporabe\"] }, \"Objects\": { \"v\": [\"Predmeti\"] }, \"People & Body\": { \"v\": [\"Ljudje in Telo\"] }, \"Pick an emoji\": { \"v\": [\"Izbor izrazne ikone\"] }, \"Search results\": { \"v\": [\"Zadetki iskanja\"] }, \"Smileys & Emotion\": { \"v\": [\"Izrazne ikone\"] }, \"Symbols\": { \"v\": [\"Simboli\"] }, \"Travel & Places\": { \"v\": [\"Potovanja in Kraji\"] } } }, { \"l\": \"sr\", \"t\": { \"Activities\": { \"v\": [\"Активности\"] }, \"Animals & Nature\": { \"v\": [\"Животиње и природа\"] }, \"Custom\": { \"v\": [\"Произвољно\"] }, \"Dark skin tone\": { \"v\": [\"Тамни тен коже\"] }, \"Emoji picker\": { \"v\": [\"Бирач емођија\"] }, \"Flags\": { \"v\": [\"Заставе\"] }, \"Food & Drink\": { \"v\": [\"Храна и пиће\"] }, \"Frequently used\": { \"v\": [\"Често коришћено\"] }, \"Light skin tone\": { \"v\": [\"Светли тен коже\"] }, \"Medium dark skin tone\": { \"v\": [\"Средње тамни тен коже\"] }, \"Medium light skin tone\": { \"v\": [\"Средње светли тен коже\"] }, \"Medium skin tone\": { \"v\": [\"Средњи тен коже\"] }, \"Neutral skin color\": { \"v\": [\"Неутрална боја коже\"] }, \"Objects\": { \"v\": [\"Предмети\"] }, \"People & Body\": { \"v\": [\"Људи и тело\"] }, \"Pick an emoji\": { \"v\": [\"Изаберите емођи\"] }, \"Search emoji\": { \"v\": [\"Претражи емођи\"] }, \"Search results\": { \"v\": [\"Резултати претраге\"] }, \"Selected\": { \"v\": [\"Изабрано\"] }, \"Skin tone\": { \"v\": [\"Тен коже\"] }, \"Smileys & Emotion\": { \"v\": [\"Смајлији и емоције\"] }, \"Symbols\": { \"v\": [\"Симболи\"] }, \"Travel & Places\": { \"v\": [\"Путовање и места\"] } } }, { \"l\": \"sv\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteter\"] }, \"Animals & Nature\": { \"v\": [\"Djur & Natur\"] }, \"Custom\": { \"v\": [\"Anpassad\"] }, \"Dark skin tone\": { \"v\": [\"Mörk hudton\"] }, \"Emoji picker\": { \"v\": [\"Emoji-väljare\"] }, \"Flags\": { \"v\": [\"Flaggor\"] }, \"Food & Drink\": { \"v\": [\"Mat & Dryck\"] }, \"Frequently used\": { \"v\": [\"Används ofta\"] }, \"Light skin tone\": { \"v\": [\"Ljus hudton\"] }, \"Medium dark skin tone\": { \"v\": [\"Medium mörk hudton\"] }, \"Medium light skin tone\": { \"v\": [\"Medium ljus hudton\"] }, \"Medium skin tone\": { \"v\": [\"Medium hudton\"] }, \"Neutral skin color\": { \"v\": [\"Neutral hudfärg\"] }, \"Objects\": { \"v\": [\"Objekt\"] }, \"People & Body\": { \"v\": [\"Kropp & Själ\"] }, \"Pick an emoji\": { \"v\": [\"Välj en emoji\"] }, \"Search emoji\": { \"v\": [\"Sök emoji\"] }, \"Search results\": { \"v\": [\"Sökresultat\"] }, \"Selected\": { \"v\": [\"Vald\"] }, \"Skin tone\": { \"v\": [\"Hudton\"] }, \"Smileys & Emotion\": { \"v\": [\"Selfies & Känslor\"] }, \"Symbols\": { \"v\": [\"Symboler\"] }, \"Travel & Places\": { \"v\": [\"Resor & Sevärdigheter\"] } } }, { \"l\": \"tr\", \"t\": { \"Activities\": { \"v\": [\"Etkinlikler\"] }, \"Animals & Nature\": { \"v\": [\"Hayvanlar ve doğa\"] }, \"Custom\": { \"v\": [\"Özel\"] }, \"Dark skin tone\": { \"v\": [\"Koyu deri rengi\"] }, \"Emoji picker\": { \"v\": [\"Emoji seçici\"] }, \"Flags\": { \"v\": [\"Bayraklar\"] }, \"Food & Drink\": { \"v\": [\"Yeme ve içme\"] }, \"Frequently used\": { \"v\": [\"Sık kullanılanlar\"] }, \"Light skin tone\": { \"v\": [\"Açık deri rengi\"] }, \"Medium dark skin tone\": { \"v\": [\"Orta koyu deri rengi\"] }, \"Medium light skin tone\": { \"v\": [\"Orta açık deri rengi\"] }, \"Medium skin tone\": { \"v\": [\"Orta deri rengi\"] }, \"Neutral skin color\": { \"v\": [\"Nötr deri rengi\"] }, \"Objects\": { \"v\": [\"Nesneler\"] }, \"People & Body\": { \"v\": [\"İnsanlar ve beden\"] }, \"Pick an emoji\": { \"v\": [\"Bir emoji seçin\"] }, \"Search emoji\": { \"v\": [\"Emoji ara\"] }, \"Search results\": { \"v\": [\"Arama sonuçları\"] }, \"Selected\": { \"v\": [\"Seçilmiş\"] }, \"Skin tone\": { \"v\": [\"Deri rengi\"] }, \"Smileys & Emotion\": { \"v\": [\"İfadeler ve duygular\"] }, \"Symbols\": { \"v\": [\"Simgeler\"] }, \"Travel & Places\": { \"v\": [\"Gezi ve yerler\"] } } }, { \"l\": \"uk\", \"t\": { \"Activities\": { \"v\": [\"Діяльність\"] }, \"Animals & Nature\": { \"v\": [\"Тварини та природа\"] }, \"Custom\": { \"v\": [\"Власне\"] }, \"Dark skin tone\": { \"v\": [\"Смаглявий\"] }, \"Emoji picker\": { \"v\": [\"Вибір емоційки\"] }, \"Flags\": { \"v\": [\"Прапори\"] }, \"Food & Drink\": { \"v\": [\"Їжа та напої\"] }, \"Frequently used\": { \"v\": [\"Найчастіші\"] }, \"Light skin tone\": { \"v\": [\"Світла шкіра\"] }, \"Medium dark skin tone\": { \"v\": [\"Какао\"] }, \"Medium light skin tone\": { \"v\": [\"Лате\"] }, \"Medium skin tone\": { \"v\": [\"Середній колір шкіри\"] }, \"Neutral skin color\": { \"v\": [\"Нейтральний колір шкіри\"] }, \"Objects\": { \"v\": [\"Об'єкти\"] }, \"People & Body\": { \"v\": [\"Люди та жести\"] }, \"Pick an emoji\": { \"v\": [\"Виберіть емоційку\"] }, \"Search emoji\": { \"v\": [\"Шукати емоційки\"] }, \"Search results\": { \"v\": [\"Результати пошуку\"] }, \"Selected\": { \"v\": [\"Вибрано\"] }, \"Skin tone\": { \"v\": [\"Колір шкіри\"] }, \"Smileys & Emotion\": { \"v\": [\"Смайли та емоції\"] }, \"Symbols\": { \"v\": [\"Символи\"] }, \"Travel & Places\": { \"v\": [\"Поїздки та місця\"] } } }, { \"l\": \"uz\", \"t\": { \"Activities\": { \"v\": [\"Faolliklar\"] }, \"Animals & Nature\": { \"v\": [\"Hayvonlar va Tabiat\"] }, \"Custom\": { \"v\": [\"Moslashtirilgan\"] }, \"Dark skin tone\": { \"v\": [\"Qora rangdagi qoplama\"] }, \"Emoji picker\": { \"v\": [\"Emoji tanlagich\"] }, \"Flags\": { \"v\": [\"Bayroqlar\"] }, \"Food & Drink\": { \"v\": [\"Oziq-ovqat va ichimliklar\"] }, \"Frequently used\": { \"v\": [\"Tez-tez ishlatiladi\"] }, \"Light skin tone\": { \"v\": [\"Yorug` rangdagi qoplama\"] }, \"Medium dark skin tone\": { \"v\": [\"O`rtacha qorong`u rangdagi qoplama\"] }, \"Medium light skin tone\": { \"v\": [\"O`rtacha yorug`lik rangdagi qoplama\"] }, \"Medium skin tone\": { \"v\": [\"O`rtacha rangdagi qoplama\"] }, \"Neutral skin color\": { \"v\": [\"Neytral rang\"] }, \"Objects\": { \"v\": [\"Obyekt\"] }, \"People & Body\": { \"v\": [\"Odamlar va Tana\"] }, \"Pick an emoji\": { \"v\": [\"Emojini tanlang\"] }, \"Search emoji\": { \"v\": [\"Emoji qidirish\"] }, \"Search results\": { \"v\": [\"Qidiruv natijalari\"] }, \"Selected\": { \"v\": [\"Tanlangan\"] }, \"Skin tone\": { \"v\": [\"Odatiy rangdagi qoplama\"] }, \"Smileys & Emotion\": { \"v\": [\"Smayllar va Hissiyotlar\"] }, \"Symbols\": { \"v\": [\"Belgilar\"] }, \"Travel & Places\": { \"v\": [\"Sayohat va Joylar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Activities\": { \"v\": [\"活动\"] }, \"Animals & Nature\": { \"v\": [\"动物 & 自然\"] }, \"Custom\": { \"v\": [\"自定义\"] }, \"Dark skin tone\": { \"v\": [\"深色皮肤\"] }, \"Emoji picker\": { \"v\": [\"表情拾取器\"] }, \"Flags\": { \"v\": [\"旗帜\"] }, \"Food & Drink\": { \"v\": [\"食物 & 饮品\"] }, \"Frequently used\": { \"v\": [\"经常使用\"] }, \"Light skin tone\": { \"v\": [\"浅色皮肤\"] }, \"Medium dark skin tone\": { \"v\": [\"中等深色皮肤\"] }, \"Medium light skin tone\": { \"v\": [\"中等浅色皮肤\"] }, \"Medium skin tone\": { \"v\": [\"中等皮肤\"] }, \"Neutral skin color\": { \"v\": [\"中性皮肤颜色\"] }, \"Objects\": { \"v\": [\"物体\"] }, \"People & Body\": { \"v\": [\"人 & 身体\"] }, \"Pick an emoji\": { \"v\": [\"选择一个表情\"] }, \"Search emoji\": { \"v\": [\"搜索表情\"] }, \"Search results\": { \"v\": [\"搜索结果\"] }, \"Selected\": { \"v\": [\"选择\"] }, \"Skin tone\": { \"v\": [\"皮肤\"] }, \"Smileys & Emotion\": { \"v\": [\"笑脸 & 情感\"] }, \"Symbols\": { \"v\": [\"符号\"] }, \"Travel & Places\": { \"v\": [\"旅游 & 地点\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Activities\": { \"v\": [\"活動\"] }, \"Animals & Nature\": { \"v\": [\"動物與自然\"] }, \"Custom\": { \"v\": [\"自定義\"] }, \"Dark skin tone\": { \"v\": [\"深膚色\"] }, \"Emoji picker\": { \"v\": [\"表情符號選擇器\"] }, \"Flags\": { \"v\": [\"旗幟\"] }, \"Food & Drink\": { \"v\": [\"食物與飲料\"] }, \"Frequently used\": { \"v\": [\"經常使用\"] }, \"Light skin tone\": { \"v\": [\"淺膚色\"] }, \"Medium dark skin tone\": { \"v\": [\"中等深膚色\"] }, \"Medium light skin tone\": { \"v\": [\"中等淺膚色\"] }, \"Medium skin tone\": { \"v\": [\"中等膚色\"] }, \"Neutral skin color\": { \"v\": [\"中性色膚色\"] }, \"Objects\": { \"v\": [\"物件\"] }, \"People & Body\": { \"v\": [\"人物\"] }, \"Pick an emoji\": { \"v\": [\"選擇表情符號\"] }, \"Search emoji\": { \"v\": [\"搜尋表情符號\"] }, \"Search results\": { \"v\": [\"搜尋結果\"] }, \"Selected\": { \"v\": [\"已選\"] }, \"Skin tone\": { \"v\": [\"膚色\"] }, \"Smileys & Emotion\": { \"v\": [\"表情\"] }, \"Symbols\": { \"v\": [\"標誌\"] }, \"Travel & Places\": { \"v\": [\"旅遊與景點\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Activities\": { \"v\": [\"活動\"] }, \"Animals & Nature\": { \"v\": [\"動物與自然\"] }, \"Custom\": { \"v\": [\"自定義\"] }, \"Dark skin tone\": { \"v\": [\"深膚色\"] }, \"Emoji picker\": { \"v\": [\"表情符號挑選器\"] }, \"Flags\": { \"v\": [\"旗幟\"] }, \"Food & Drink\": { \"v\": [\"食物與飲料\"] }, \"Frequently used\": { \"v\": [\"最近使用\"] }, \"Light skin tone\": { \"v\": [\"淺膚色\"] }, \"Medium dark skin tone\": { \"v\": [\"中等深膚色\"] }, \"Medium light skin tone\": { \"v\": [\"中等淺膚色\"] }, \"Medium skin tone\": { \"v\": [\"中等膚色\"] }, \"Neutral skin color\": { \"v\": [\"中性膚色\"] }, \"Objects\": { \"v\": [\"物件\"] }, \"People & Body\": { \"v\": [\"人物\"] }, \"Pick an emoji\": { \"v\": [\"選擇表情符號\"] }, \"Search emoji\": { \"v\": [\"搜尋表情符號\"] }, \"Search results\": { \"v\": [\"搜尋結果\"] }, \"Selected\": { \"v\": [\"已選取\"] }, \"Skin tone\": { \"v\": [\"膚色\"] }, \"Smileys & Emotion\": { \"v\": [\"表情\"] }, \"Symbols\": { \"v\": [\"標誌\"] }, \"Travel & Places\": { \"v\": [\"旅遊與景點\"] } } }];\nconst t6 = [{ \"l\": \"ar\", \"t\": { \"Add to a project\": { \"v\": [\"أضف إلى مشروع\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"ربط عناصر بمشروع لتسهيل العثور عليها\"] }, \"Failed to add the item to the project\": { \"v\": [\"تعذر ربط عنصر بمشروع\"] }, \"Failed to create a project\": { \"v\": [\"تعذر إنشاء مشروع\"] }, \"Failed to rename the project\": { \"v\": [\"تعذّر تغيير اسم المشروع\"] }, \"Type to search for existing projects\": { \"v\": [\"أكتُب للبحث في المشاريع الموجودة\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Add to a project\": { \"v\": [\"Přidat do projektu\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Připojte položky k projektu, čímž budou snáze dohledatelné\"] }, \"Failed to add the item to the project\": { \"v\": [\"Položku se nepodařilo přidat do projektu\"] }, \"Failed to create a project\": { \"v\": [\"Projekt se nepodařilo vytvořit\"] }, \"Failed to rename the project\": { \"v\": [\"Projekt se nepodařilo přejmenovat\"] }, \"Type to search for existing projects\": { \"v\": [\"Psaním vyhledávejte existující projekty\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Add to a project\": { \"v\": [\"Tilføj til et projekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Forbind elementer til et projekt for at gøre dem nemmere at finde\"] }, \"Failed to add the item to the project\": { \"v\": [\"Kunne ikke føje elementet til projektet\"] }, \"Failed to create a project\": { \"v\": [\"Kunne ikke oprette et projekt\"] }, \"Failed to rename the project\": { \"v\": [\"Projektet kunne ikke omdøbes\"] }, \"Type to search for existing projects\": { \"v\": [\"Skriv for at søge efter eksisterende projekter\"] } } }, { \"l\": \"de\", \"t\": { \"Add to a project\": { \"v\": [\"Einem Projekt hinzufügen\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Verbinde Elemente mit einem Projekt, um sie leichter zu finden\"] }, \"Failed to add the item to the project\": { \"v\": [\"Das Element konnte nicht zum Projekt hinzugefügt werden\"] }, \"Failed to create a project\": { \"v\": [\"Projekt konnte nicht erstellt werden\"] }, \"Failed to rename the project\": { \"v\": [\"Das Projekt konnte nicht umbenannt werden\"] }, \"Type to search for existing projects\": { \"v\": [\"Tippen, um nach vorhandenen Projekten zu suchen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Add to a project\": { \"v\": [\"Einem Projekt hinzufügen\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Verbinden Sie Elemente mit einem Projekt, um sie leichter zu finden\"] }, \"Failed to add the item to the project\": { \"v\": [\"Das Element konnte nicht zum Projekt hinzugefügt werden\"] }, \"Failed to create a project\": { \"v\": [\"Projekt konnte nicht erstellt werden\"] }, \"Failed to rename the project\": { \"v\": [\"Das Projekt konnte nicht umbenannt werden\"] }, \"Type to search for existing projects\": { \"v\": [\"Tippen, um nach vorhandenen Projekten zu suchen\"] } } }, { \"l\": \"el\", \"t\": { \"Add to a project\": { \"v\": [\"Προσθήκη σε ένα έργο\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Συνδέστε αντικείμενα σε ένα έργο για να τα βρίσκετε πιο εύκολα\"] }, \"Failed to add the item to the project\": { \"v\": [\"Αποτυχία προσθήκης του αντικειμένου στο έργο\"] }, \"Failed to create a project\": { \"v\": [\"Αποτυχία δημιουργίας έργου\"] }, \"Failed to rename the project\": { \"v\": [\"Αποτυχία μετονομασίας του έργου\"] }, \"Type to search for existing projects\": { \"v\": [\"Πληκτρολογήστε για αναζήτηση υπαρχόντων έργων\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Add to a project\": { \"v\": [\"Add to a project\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Connect items to a project to make them easier to find\"] }, \"Failed to add the item to the project\": { \"v\": [\"Failed to add the item to the project\"] }, \"Failed to create a project\": { \"v\": [\"Failed to create a project\"] }, \"Failed to rename the project\": { \"v\": [\"Failed to rename the project\"] }, \"Type to search for existing projects\": { \"v\": [\"Type to search for existing projects\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": { \"Add to a project\": { \"v\": [\"Agregar a un proyecto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conecte items a un proyecto para hacerlos más fáciles de encontrar\"] }, \"Failed to add the item to the project\": { \"v\": [\"No se pudo agregar el elemento al proyecto\"] }, \"Failed to create a project\": { \"v\": [\"No se pudo crear un proyecto\"] }, \"Failed to rename the project\": { \"v\": [\"No se pudo renombrar el proyecto\"] }, \"Type to search for existing projects\": { \"v\": [\"Escriba para buscar proyectos existentes\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Add to a project\": { \"v\": [\"Agregar a un proyecto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conecte elementos a un proyecto para hacerlos más fáciles de encontrar\"] }, \"Failed to add the item to the project\": { \"v\": [\"No se pudo agregar el elemento al proyecto\"] }, \"Failed to create a project\": { \"v\": [\"No se pudo crear el proyecto\"] }, \"Failed to rename the project\": { \"v\": [\"No se pudo renombrar el proyecto\"] }, \"Type to search for existing projects\": { \"v\": [\"Escriba para buscar proyectos existentes\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Add to a project\": { \"v\": [\"Lisa projekti\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Selleks, et objekte oleks lihtsam leida, seo nad projektiga\"] }, \"Failed to add the item to the project\": { \"v\": [\"Objekti lisamine projekti ei õnnestunud\"] }, \"Failed to create a project\": { \"v\": [\"Projekti loomine ei õnnestunud\"] }, \"Failed to rename the project\": { \"v\": [\"Projekti nime muutmine ei õnnestunud\"] }, \"Type to search for existing projects\": { \"v\": [\"Olemasolevate projektide otsimiseks kirjuta\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Add to a project\": { \"v\": [\"افزودن به پروژه\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"برای پیدا کردن راحتتر، مواردی را به پروژه متصل کنید\"] }, \"Failed to add the item to the project\": { \"v\": [\"موارد به پروژه اضافه نشد\"] }, \"Failed to create a project\": { \"v\": [\"ایجاد پروژه نامؤفق بود\"] }, \"Failed to rename the project\": { \"v\": [\"تغییر نام پروژه انجام نشد\"] }, \"Type to search for existing projects\": { \"v\": [\"برای جستجوی پروژههای موجود تایپ کنید\"] } } }, { \"l\": \"fi\", \"t\": { \"Add to a project\": { \"v\": [\"Lisää projektiin\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Yhdistä kohteet projektiin, jotta ne olisivat helpompia löytää\"] }, \"Failed to add the item to the project\": { \"v\": [\"Kohteiden lisääminen projektiin epäonnistui\"] }, \"Failed to create a project\": { \"v\": [\"Projektin luominen epäonnistui\"] }, \"Failed to rename the project\": { \"v\": [\"Projektin nimeäminen epäonnistui\"] }, \"Type to search for existing projects\": { \"v\": [\"Kirjoita etsiäksesi olemassaolevia projekteja\"] } } }, { \"l\": \"fr\", \"t\": { \"Add to a project\": { \"v\": [\"Ajouter à un projet\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Connectez des éléments à un projet pour les retrouver plus facilement\"] }, \"Failed to add the item to the project\": { \"v\": [\"Impossible d'ajouter l'élément au projet\"] }, \"Failed to create a project\": { \"v\": [\"Impossible de créer un projet\"] }, \"Failed to rename the project\": { \"v\": [\"Impossible de renommer le projet\"] }, \"Type to search for existing projects\": { \"v\": [\"Tapez pour rechercher des projets existants\"] } } }, { \"l\": \"ga\", \"t\": { \"Add to a project\": { \"v\": [\"Cuir le tionscadal\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ceangail míreanna le tionscadal chun iad a dhéanamh níos éasca iad a aimsiú\"] }, \"Failed to add the item to the project\": { \"v\": [\"Theip ar an mír a chur leis an tionscadal\"] }, \"Failed to create a project\": { \"v\": [\"Theip ar thionscadal a chruthú\"] }, \"Failed to rename the project\": { \"v\": [\"Theip ar an tionscadal a athainmniú\"] }, \"Type to search for existing projects\": { \"v\": [\"Clóscríobh chun tionscadail atá ann cheana a chuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Add to a project\": { \"v\": [\"Engadir a un proxecto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conectar elementos a un proxecto para facelos máis doados de atopar\"] }, \"Failed to add the item to the project\": { \"v\": [\"Produciuse un fallo ao engadir o elemento ao proxecto\"] }, \"Failed to create a project\": { \"v\": [\"Produciuse un fallo ao crear un proxecto\"] }, \"Failed to rename the project\": { \"v\": [\"Produciuse un fallo ao cambiarlle o nome ao proxecto\"] }, \"Type to search for existing projects\": { \"v\": [\"Escriba para buscar proxectos existentes\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": { \"Add to a project\": { \"v\": [\"Bæta við verkefni\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Tengdu atriði við verkefni til að gera einfaldara að finna þau\"] }, \"Failed to add the item to the project\": { \"v\": [\"Mistókst að bæta atriðinu í verkefnið\"] }, \"Failed to create a project\": { \"v\": [\"Mistókst að útbúa verkefni\"] }, \"Failed to rename the project\": { \"v\": [\"Mistókst að endurnefna verkefnið\"] }, \"Type to search for existing projects\": { \"v\": [\"Skrifaðu hér til að leita að fyrirliggjandi verkefnum\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Add to a project\": { \"v\": [\"プロジェクトに追加する\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"項目をプロジェクトに接続して検索しやすくする\"] }, \"Failed to add the item to the project\": { \"v\": [\"プロジェクトへのアイテムの追加に失敗しました\"] }, \"Failed to create a project\": { \"v\": [\"プロジェクトの作成に失敗しました\"] }, \"Failed to rename the project\": { \"v\": [\"プロジェクトの名前変更に失敗しました\"] }, \"Type to search for existing projects\": { \"v\": [\"既存のプロジェクトを検索するために入力します\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Add to a project\": { \"v\": [\"프로젝트에 추가\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"항목을 더 쉽게 찾을 수 있도록 프로젝트에 연결하세요.\"] }, \"Failed to add the item to the project\": { \"v\": [\"항목을 프로젝트에 추가하는 데 실패함\"] }, \"Failed to create a project\": { \"v\": [\"프로젝트를 만드는 데 실패함\"] }, \"Failed to rename the project\": { \"v\": [\"프로젝트의 이름을 바꾸는 데 실패함\"] }, \"Type to search for existing projects\": { \"v\": [\"입력하여 프로젝트를 검색\"] } } }, { \"l\": \"lo\", \"t\": { \"Add to a project\": { \"v\": [\"ເພີ່ມໃສ່ໂຄງການ\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"ເຊື່ອມຕໍ່ລາຍການຕ່າງໆໃສ່ໂຄງການ ເພື່ອເຮັດໃຫ້ຊອກຫາງ່າຍຂຶ້ນ\"] }, \"Failed to add the item to the project\": { \"v\": [\"ບໍ່ສາມາດເພີ່ມລາຍການໃສ່ໂຄງການໄດ້\"] }, \"Failed to create a project\": { \"v\": [\"ບໍ່ສາມາດສ້າງໂຄງການໄດ້\"] }, \"Failed to rename the project\": { \"v\": [\"ບໍ່ສາມາດປ່ຽນຊື່ໂຄງການໄດ້\"] }, \"Type to search for existing projects\": { \"v\": [\"ພິມເພື່ອຄົ້ນຫາໂຄງການທີ່ມີຢູ່\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Add to a project\": { \"v\": [\"Додај во проект\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Поврзете ги елементите со проект за да биде полесно да се најдат\"] }, \"Failed to add the item to the project\": { \"v\": [\"Неуспешно додавање на елементот во проектот\"] }, \"Failed to create a project\": { \"v\": [\"Неуспешно креирање на проект\"] }, \"Failed to rename the project\": { \"v\": [\"Неуспешно преименување на проектот\"] }, \"Type to search for existing projects\": { \"v\": [\"Пишувај за пребарување постоечки проекти\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Add to a project\": { \"v\": [\"Legge til i et prosjekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Koble elementer til et prosjekt for å gjøre det enklere å finne dem\"] }, \"Failed to add the item to the project\": { \"v\": [\"Kan ikke legge til elementet i prosjektet\"] }, \"Failed to create a project\": { \"v\": [\"Kan ikke opprette et prosjekt\"] }, \"Failed to rename the project\": { \"v\": [\"Kunne ikke gi prosjektet nytt navn\"] }, \"Type to search for existing projects\": { \"v\": [\"Skriv for å søke for eksisterende prosjekter\"] } } }, { \"l\": \"nl\", \"t\": { \"Add to a project\": { \"v\": [\"Toevoegen aan een project\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Items aan een project koppelen om ze eenvoudiger te vinden\"] }, \"Failed to add the item to the project\": { \"v\": [\"Toevoegen van item aan project mislukt\"] }, \"Failed to create a project\": { \"v\": [\"Project aanmaken mislukt\"] }, \"Failed to rename the project\": { \"v\": [\"Project hernoemen mislukt\"] }, \"Type to search for existing projects\": { \"v\": [\"Typ om te zoeken naar bestaande projecten\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Add to a project\": { \"v\": [\"Dodaj do projektu\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Połącz elementy z projektem, aby ułatwić ich znalezienie\"] }, \"Failed to add the item to the project\": { \"v\": [\"Nie udało się dodać elementu do projektu\"] }, \"Failed to create a project\": { \"v\": [\"Nie udało się utworzyć projektu\"] }, \"Failed to rename the project\": { \"v\": [\"Nie udało się zmienić nazwy projektu\"] }, \"Type to search for existing projects\": { \"v\": [\"Wpisz, aby wyszukać istniejące projekty\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Add to a project\": { \"v\": [\"Adicionar a um projeto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conectar itens a um projeto para encontrá-los mais facilmente\"] }, \"Failed to add the item to the project\": { \"v\": [\"Falha ao adicionar itens ao projeto\"] }, \"Failed to create a project\": { \"v\": [\"Falha ao criar um projeto\"] }, \"Failed to rename the project\": { \"v\": [\"Falha ao renomear o projeto\"] }, \"Type to search for existing projects\": { \"v\": [\"Digite para pesquisar projetos existentes\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Add to a project\": { \"v\": [\"Adicionar a um projeto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ligar itens a um projeto para serem mais facilmente encontrados\"] }, \"Failed to add the item to the project\": { \"v\": [\"Não foi possível adicionar item ao projeto\"] }, \"Failed to create a project\": { \"v\": [\"Não foi possível criar um projeto\"] }, \"Failed to rename the project\": { \"v\": [\"Não foi possível alterar o nome do projeto\"] }, \"Type to search for existing projects\": { \"v\": [\"Digite para procurar projetos existentes\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Add to a project\": { \"v\": [\"Добавить в проект\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Подключайте элементы к проекту, чтобы их было легче найти\"] }, \"Failed to add the item to the project\": { \"v\": [\"Не удалось добавить элемент в проект\"] }, \"Failed to create a project\": { \"v\": [\"Не удалось создать проект\"] }, \"Failed to rename the project\": { \"v\": [\"Не удалось переименовать проект\"] }, \"Type to search for existing projects\": { \"v\": [\"Введите для поиска существующих проектов\"] } } }, { \"l\": \"sk\", \"t\": { \"Add to a project\": { \"v\": [\"Pridať do projektu\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Pridať položky do projektu pre jednoduchšie vyhľadávanie\"] }, \"Failed to add the item to the project\": { \"v\": [\"Nepodarilo sa pridať položku do projektu\"] }, \"Failed to create a project\": { \"v\": [\"Nepodarilo sa vytvoriť projekt\"] }, \"Failed to rename the project\": { \"v\": [\"Nepodarilo sa premenovať projekt\"] }, \"Type to search for existing projects\": { \"v\": [\"Začnite písať pre vyhľadávanie v existujúcich projektoch\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Add to a project\": { \"v\": [\"Додај у пројекат\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Повезује ставке у пројекат како би се лакше пронашле\"] }, \"Failed to add the item to the project\": { \"v\": [\"Није успело додавање ставке у пројекат\"] }, \"Failed to create a project\": { \"v\": [\"Није успело креирање пројекта\"] }, \"Failed to rename the project\": { \"v\": [\"Није успела промена имена пројекта\"] }, \"Type to search for existing projects\": { \"v\": [\"Куцајте да претражите постојеће пројекте\"] } } }, { \"l\": \"sv\", \"t\": { \"Add to a project\": { \"v\": [\"Lägg till i ett projekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Anslut objekt till ett projekt för att göra dem lättare att hitta\"] }, \"Failed to add the item to the project\": { \"v\": [\"Det gick inte att lägga till objektet i projektet\"] }, \"Failed to create a project\": { \"v\": [\"Det gick inte att skapa ett projekt\"] }, \"Failed to rename the project\": { \"v\": [\"Kunde inte byta namn på projektet\"] }, \"Type to search for existing projects\": { \"v\": [\"Skriv för att söka efter befintliga projekt\"] } } }, { \"l\": \"tr\", \"t\": { \"Add to a project\": { \"v\": [\"Bir projeye ekle\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ögeleri daha kolay bulmak için bir proje ile ilişkilendirin\"] }, \"Failed to add the item to the project\": { \"v\": [\"Öge projeye eklenemedi\"] }, \"Failed to create a project\": { \"v\": [\"Bir proje oluşturulamadı\"] }, \"Failed to rename the project\": { \"v\": [\"Proje yeniden adlandırılamadı\"] }, \"Type to search for existing projects\": { \"v\": [\"Var olan projeleri aramak için yazmaya başlayın\"] } } }, { \"l\": \"uk\", \"t\": { \"Add to a project\": { \"v\": [\"Додати до проєкту\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Приєднайте ресурси до проєкту для швидшого пошуку\"] }, \"Failed to add the item to the project\": { \"v\": [\"Не вдалося приєднати ресурс до проєкту\"] }, \"Failed to create a project\": { \"v\": [\"Не вдалося створити проєкт\"] }, \"Failed to rename the project\": { \"v\": [\"Не вдалося перейменувати проєкт\"] }, \"Type to search for existing projects\": { \"v\": [\"Почніть вводити, щоб знайти проєкт\"] } } }, { \"l\": \"uz\", \"t\": { \"Add to a project\": { \"v\": [\"Loyihaga qo'shish\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Elementlarni topishni osonlashtirish uchun ularni loyihaga ulang\"] }, \"Failed to add the item to the project\": { \"v\": [\"Ob'ektni loyihaga qo'shib bo'lmadi\"] }, \"Failed to create a project\": { \"v\": [\"Loyiha yaratib bo‘lmadi\"] }, \"Failed to rename the project\": { \"v\": [\"Loyiha nomini o‘zgartirib bo‘lmadi\"] }, \"Type to search for existing projects\": { \"v\": [\"Mavjud loyihalarni qidirish uchun kiriting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Add to a project\": { \"v\": [\"添加至一个项目\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"将条目连接至一个项目以易于查找\"] }, \"Failed to add the item to the project\": { \"v\": [\"添加条目至项目失败\"] }, \"Failed to create a project\": { \"v\": [\"创建项目失败\"] }, \"Failed to rename the project\": { \"v\": [\"重命名项目失败\"] }, \"Type to search for existing projects\": { \"v\": [\"输入以搜索现存项目\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Add to a project\": { \"v\": [\"添加到方案中\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"將項目連接到方案中,以便更容易找到。\"] }, \"Failed to add the item to the project\": { \"v\": [\"無法將項目添加到方案中\"] }, \"Failed to create a project\": { \"v\": [\"無法創建方案\"] }, \"Failed to rename the project\": { \"v\": [\"無法重命名方案\"] }, \"Type to search for existing projects\": { \"v\": [\"輸入以搜索現有方案\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Add to a project\": { \"v\": [\"新增至專案中\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"將項目連結至專案中以方便尋找\"] }, \"Failed to add the item to the project\": { \"v\": [\"新增項目至專案失敗\"] }, \"Failed to create a project\": { \"v\": [\"建立專案失敗\"] }, \"Failed to rename the project\": { \"v\": [\"重新命名專案失敗\"] }, \"Type to search for existing projects\": { \"v\": [\"輸入以搜尋既有專案\"] } } }];\nconst t7 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Mezerník\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Slet\"] }, \"Enter\": { \"v\": [\"Indtast\"] }, \"Escape\": { \"v\": [\"Afbrud\"] }, \"Shift\": { \"v\": [\"Skift\"] }, \"Space\": { \"v\": [\"Mellemrum\"] }, \"Tab\": { \"v\": [\"Faneblad\"] } } }, { \"l\": \"de\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Strg\"] }, \"Delete\": { \"v\": [\"Entf\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Umschalt\"] }, \"Space\": { \"v\": [\"Leertaste\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Strg\"] }, \"Delete\": { \"v\": [\"Entf\"] }, \"Enter\": { \"v\": [\"Eingabe\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Umschalt\"] }, \"Space\": { \"v\": [\"Leertaste\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"el\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Kustutusklahv\"] }, \"Enter\": { \"v\": [\"Sisestusklahv\"] }, \"Escape\": { \"v\": [\"Esc-klahv\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Tühikuklahv\"] }, \"Tab\": { \"v\": [\"Tabulaator\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Suppr\"] }, \"Enter\": { \"v\": [\"Entrée\"] }, \"Escape\": { \"v\": [\"Echap\"] }, \"Shift\": { \"v\": [\"Maj\"] }, \"Space\": { \"v\": [\"Espace\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"ga\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Scrios\"] }, \"Enter\": { \"v\": [\"Iontráil\"] }, \"Escape\": { \"v\": [\"Éalú\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Spás\"] }, \"Tab\": { \"v\": [\"Táb\"] } } }, { \"l\": \"gl\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Eliminar\"] }, \"Enter\": { \"v\": [\"Intro\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Maiús.\"] }, \"Space\": { \"v\": [\"Espazo\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": {} }, { \"l\": \"lo\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"ລຶບ\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Избриши\"] }, \"Enter\": { \"v\": [\"Ентер\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Празно место\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Excluir\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Barra de espaço\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Пробел\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Обриши\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"sv\", \"t\": {} }, { \"l\": \"tr\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"O'chirish\"] }, \"Enter\": { \"v\": [\"Kirish\"] }, \"Escape\": { \"v\": [\"Orqaga\"] }, \"Shift\": { \"v\": [\"Yuqorigi\"] }, \"Space\": { \"v\": [\"Bo'shliq\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"zh-TW\", \"t\": {} }];\nconst t8 = [{ \"l\": \"ar\", \"t\": { \"Any link\": { \"v\": [\"أيَّ رابط\"] } } }, { \"l\": \"ast\", \"t\": { \"Any link\": { \"v\": [\"Cualesquier enllaz\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Any link\": { \"v\": [\"Jakýkoli odkaz\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Any link\": { \"v\": [\"Jakýkoli odkaz\"] } } }, { \"l\": \"da\", \"t\": { \"Any link\": { \"v\": [\"Ethvert link\"] } } }, { \"l\": \"de\", \"t\": { \"Any link\": { \"v\": [\"Irgendein Link\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Any link\": { \"v\": [\"Irgendein Link\"] } } }, { \"l\": \"el\", \"t\": { \"Any link\": { \"v\": [\"Οποιοσδήποτε σύνδεσμος\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Any link\": { \"v\": [\"Any link\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Any link\": { \"v\": [\"Mistahes link\"] } } }, { \"l\": \"eu\", \"t\": { \"Any link\": { \"v\": [\"Edozein esteka\"] } } }, { \"l\": \"fa\", \"t\": { \"Any link\": { \"v\": [\"هر پیوندی\"] } } }, { \"l\": \"fi\", \"t\": { \"Any link\": { \"v\": [\"Mikä tahansa linkki\"] } } }, { \"l\": \"fr\", \"t\": { \"Any link\": { \"v\": [\"N'importe quel lien\"] } } }, { \"l\": \"ga\", \"t\": { \"Any link\": { \"v\": [\"Aon nasc\"] } } }, { \"l\": \"gl\", \"t\": { \"Any link\": { \"v\": [\"Calquera ligazón\"] } } }, { \"l\": \"he\", \"t\": { \"Any link\": { \"v\": [\"קישור כלשהו\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Any link\": { \"v\": [\"Semua tautan\"] } } }, { \"l\": \"is\", \"t\": { \"Any link\": { \"v\": [\"Einhver tengill\"] } } }, { \"l\": \"it\", \"t\": { \"Any link\": { \"v\": [\"Qualsiasi link\"] } } }, { \"l\": \"ja\", \"t\": { \"Any link\": { \"v\": [\"任意のリンク\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Any link\": { \"v\": [\"任意のリンク\"] } } }, { \"l\": \"ko\", \"t\": { \"Any link\": { \"v\": [\"아무 링크\"] } } }, { \"l\": \"lo\", \"t\": { \"Any link\": { \"v\": [\"ລິງໃດກໍໄດ້\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Any link\": { \"v\": [\"Секој линк\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Any link\": { \"v\": [\"Enhver lenke\"] } } }, { \"l\": \"nl\", \"t\": { \"Any link\": { \"v\": [\"Elke link\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Any link\": { \"v\": [\"Dowolny link\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Any link\": { \"v\": [\"Qualquer link\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Any link\": { \"v\": [\"Qualquer hiperligação\"] } } }, { \"l\": \"ro\", \"t\": { \"Any link\": { \"v\": [\"Orice link\"] } } }, { \"l\": \"ru\", \"t\": { \"Any link\": { \"v\": [\"Любая ссылка\"] } } }, { \"l\": \"sk\", \"t\": { \"Any link\": { \"v\": [\"Akýkoľvek odkaz\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Any link\": { \"v\": [\"Било који линк\"] } } }, { \"l\": \"sv\", \"t\": { \"Any link\": { \"v\": [\"Vilken länk som helst\"] } } }, { \"l\": \"tr\", \"t\": { \"Any link\": { \"v\": [\"Herhangi bir bağlantı\"] } } }, { \"l\": \"uk\", \"t\": { \"Any link\": { \"v\": [\"Будь-яке посилання\"] } } }, { \"l\": \"uz\", \"t\": { \"Any link\": { \"v\": [\"Har qanday havola\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Any link\": { \"v\": [\"任何链接\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Any link\": { \"v\": [\"任何連結\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Any link\": { \"v\": [\"任何連結\"] } } }];\nconst t9 = [{ \"l\": \"ar\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"أيّ مادة تمت مشاركتها مع نفس المجموعة من الأشخاص سيتم عرضها هنا\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"خطأ في الحصول على الموارد ذات الصلة. يرجى الاتصال بمشرف النظام عندك إذا كان لديك أيّ أسئلة.\"] }, \"Related resources\": { \"v\": [\"مصادر ذات صلة\"] } } }, { \"l\": \"ast\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Equí va apaecer tolo que compartas col mesmu grupu de persones\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Hebo un error al consiguir los recursos rellacionaos. Ponte en contautu col alministrador del sistema si tienes dalguna entruga.\"] }, \"Related resources\": { \"v\": [\"Recursos rellacionao\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Qualsevol cosa compartida amb el mateix grup de persones es mostrarà aquí\"] }, \"Related resources\": { \"v\": [\"Recursos relacionats\"] } } }, { \"l\": \"cs\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cokoli nasdíleného stejné skupině lidí se zobrazí zde\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Chyba při získávání souvisejících prostředků. Pokud máte jakékoli dotazy, obraťte se na správce vámi využívaného systému.\"] }, \"Related resources\": { \"v\": [\"Související prostředky\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cokoli nasdíleného stejné skupině lidí se zobrazí zde\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Chyba při získávání souvisejících prostředků. Pokud máte jakékoli dotazy, obraťte se na správce vámi využívaného systému.\"] }, \"Related resources\": { \"v\": [\"Související prostředky\"] } } }, { \"l\": \"da\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alt der deles med samme gruppe af personer vil vises her\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fejl ved hentning af relaterede ressourcer. Kontakt venligst din systemadministrator, hvis du har spørgsmål.\"] }, \"Related resources\": { \"v\": [\"Relaterede emner\"] } } }, { \"l\": \"de\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alles, das mit derselben Gruppe von Personen geteilt wird, wird hier angezeigt\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fehler beim Abrufen verwandter Ressourcen. Bei Fragen wende dich bitte an deinen Systemadministrator.\"] }, \"Related resources\": { \"v\": [\"Verwandte Ressourcen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alles, das mit derselben Gruppe von Personen geteilt wird, wird hier angezeigt\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fehler beim Abrufen verwandter Ressourcen. Bei Fragen wenden Sie sich bitte an Ihre Systemadministration.\"] }, \"Related resources\": { \"v\": [\"Verwandte Ressourcen\"] } } }, { \"l\": \"el\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Οτιδήποτε μοιράζεται με την ίδια ομάδα ατόμων θα εμφανίζεται εδώ\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Σφάλμα λήψης σχετικών πόρων. Παρακαλούμε επικοινωνήστε με τον διαχειριστή του συστήματός σας εάν έχετε οποιεσδήποτε ερωτήσεις.\"] }, \"Related resources\": { \"v\": [\"Σχετικοί πόροι\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Anything shared with the same group of people will show up here\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error getting related resources. Please contact your system administrator if you have any questions.\"] }, \"Related resources\": { \"v\": [\"Related resources\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cualquier cosa que esté compartida con el mismo grupo de personas se mostrará aquí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor, contacte a su administrador del sistema si tiene alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cualquier cosa compartida con el mismo grupo de personas aparecerá aquí.\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor, contacte a su administrador del sistema si tiene alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cualquier cosa compartida con el mismo grupo de personas aparecerá aquí.\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor, contacta a tu administrador del sistema si tienes alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Todo lo que se comparta con el mismo grupo de personas se mostrará aquí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor contacte al administrador si tiene alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Siin kuvatakse kõik, mida jagatakse sama kasutajagrupiga\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Viga seotud ressursside saamisel. Küsimuste korral võtke ühendust oma süsteemiadministraatoriga.\"] }, \"Related resources\": { \"v\": [\"Seotud ressursid\"] } } }, { \"l\": \"eu\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Pertsona-talde berarekin partekatutako edozer agertuko da hemen\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Errore bat gertatu da erlazionatutako baliabideak eskuratzean. Jarri harremanetan zure sistemaren administratzailearekin galderarik baduzu.\"] }, \"Related resources\": { \"v\": [\"Erlazionatutako baliabideak\"] } } }, { \"l\": \"fa\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"هر چیزی که با گروه مشابهی همرسانی شود در این قسمت نمایش مییابد\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"خطا در دریافت منابع مرتبط. لطفاً در صورت داشتن هر گونه سؤال با مدیر سیستم خود تماس بگیرید.\"] }, \"Related resources\": { \"v\": [\"منابع مرتبط\"] } } }, { \"l\": \"fi\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Kaikki saman ryhmän kesken jaettu näkyy tässä\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Virhe resurssien haussa. Ota yhteyttä järjestelmän ylläpitäjään, mikäli sinulla on kysyttävää.\"] }, \"Related resources\": { \"v\": [\"Liittyvät resurssit\"] } } }, { \"l\": \"fr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tout ce qui est partagé avec le même groupe de personnes apparaîtra ici\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Erreur lors de la récupération des ressources liées. Contactez votre administrateur système pour répondre à vos éventuelles questions.\"] }, \"Related resources\": { \"v\": [\"Ressources liées\"] } } }, { \"l\": \"ga\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Taispeánfar aon rud a roinntear leis an ngrúpa céanna daoine anseo\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Earráid agus acmhainní gaolmhara á bhfáil. Déan teagmháil le riarthóir do chórais má tá aon cheist agat.\"] }, \"Related resources\": { \"v\": [\"Acmhainní gaolmhara\"] } } }, { \"l\": \"gl\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Todo o que se comparta co mesmo grupo de persoas aparecerá aquí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Produciuse un erro ao obter os recursos relacionados. Póñase en contacto coa administración do seu sistema se ten algunha dúbida.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"he\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"כל מה שמשותף עם אותה קבוצת האנשים יופיע כאן\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"שגיאה בקבלת המשאבים הקשורים. נא ליצור קשר עם הנהלת המערכת אם יש לך שאלות.\"] }, \"Related resources\": { \"v\": [\"משאבים קשורים\"] } } }, { \"l\": \"hu\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Minden, amit ugyanazzal a csoporttal oszt meg, itt fog megjelenni\"] }, \"Related resources\": { \"v\": [\"Kapcsolódó erőforrások\"] } } }, { \"l\": \"id\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Apa pun yang dibagikan dengan grup orang yang sama akan muncul di sini\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Kesalahan saat mengambil sumber daya terkait. Hubungi administrator sistem Anda jika ada pertanyaan.\"] }, \"Related resources\": { \"v\": [\"Sumber daya terkait\"] } } }, { \"l\": \"is\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Allt sem deilt er með sama hópi fólks mun birtast hér\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Villa við að sækja tengd tilföng. Hafðu samband við kerfisstjórann þinn ef þú ert með einhverjar spurningar.\"] }, \"Related resources\": { \"v\": [\"Tengd tilföng\"] } } }, { \"l\": \"it\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tutto ciò che è stato condiviso con lo stesso gruppo di persone viene visualizzato qui\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Errore nell'ottenere le risorse correlate. Per qualsiasi domanda, contattare l'amministratore di sistema.\"] }, \"Related resources\": { \"v\": [\"Risorse correlate\"] } } }, { \"l\": \"ja\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"同じグループで共有しているものは、全てここに表示されます\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"関連リソースの取得エラー。ご不明な点がございましたら、システム管理者にお問い合わせください。\"] }, \"Related resources\": { \"v\": [\"関連リソース\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"同じグループで共有しているものは、全てここに表示されます\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"関連リソースの取得エラー。ご不明な点がございましたら、システム管理者にお問い合わせください。\"] }, \"Related resources\": { \"v\": [\"関連リソース\"] } } }, { \"l\": \"ko\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"같은 그룹의 사용자와 공유된 모든 것들이 이곳에 나타납니다.\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"관련 리소스를 가져오는 중 오류가 발생했습니다. 궁금한 것이 있는 경우 시스템 관리자에게 연락해 주세요.\"] }, \"Related resources\": { \"v\": [\"관련 리소스\"] } } }, { \"l\": \"lo\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"ທຸກຢ່າງທີ່ແບ່ງປັນກັບກຸ່ມຄົນດຽວກັນຈະສະແດງຢູ່ບ່ອນນີ້\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"ເກີດຂໍ້ຜິດພາດໃນການເອີ້ນຂໍ້ມູນຊັບພະຍາກອນທີ່ກ່ຽວຂ້ອງ. ກະລຸນາຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ ຖ້າທ່ານມີຄຳຖາມ.\"] }, \"Related resources\": { \"v\": [\"ຊັບພະຍາກອນທີ່ກ່ຽວຂ້ອງ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Сè што е споделено со истата група луѓе ќе се појави овде\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Грешка при добивање поврзани ресурси. Ве молиме контактирајте го вашиот систем администратор ако имате прашања.\"] }, \"Related resources\": { \"v\": [\"Поврзани ресурси\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alt som er delt med den samme gruppen vil vises her\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Feil ved henting av relaterte ressurser. Kontakt systemansvarlig hvis du har spørsmål.\"] }, \"Related resources\": { \"v\": [\"Relaterte ressurser\"] } } }, { \"l\": \"nl\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alles dat gedeeld is met dezelfde groep mensen zal hier getoond worden\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fout bij het ophalen van gerelateerde bronnen. Neem contact op met uw systeembeheerder als u vragen heeft.\"] }, \"Related resources\": { \"v\": [\"Gerelateerde bronnen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tutaj pojawi się wszystko, co zostało udostępnione tej samej grupie osób\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Błąd podczas pobierania powiązanych zasobów. Jeśli masz jakiekolwiek pytania, skontaktuj się z administratorem systemu.\"] }, \"Related resources\": { \"v\": [\"Powiązane zasoby\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Qualquer coisa compartilhada com o mesmo grupo de pessoas aparecerá aqui\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Erro ao obter recursos relacionados. Por favor, entre em contato com o administrador do sistema se tiver alguma dúvida.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Qualquer coisa partilhada com o mesmo grupo de pessoas irá aparecer aqui\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Erro ao obter os recursos relacionados. Por favor, contacte o administrador do sistema se tiver quaisquer perguntas.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"ro\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tot ceea ce este partajat cu același grup de persoane va fi afișat aici\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Eroare la preluarea resurselor adiționale. Vă rugăm să contactați administratorul pentru întrebări.\"] }, \"Related resources\": { \"v\": [\"Resurse legate\"] } } }, { \"l\": \"ru\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Всё, чем поделились с той же группой людей, будет отображаться здесь\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Ошибка при получении связанных ресурсов. Если у вас есть какие-либо вопросы, обратитесь к системному администратору.\"] }, \"Related resources\": { \"v\": [\"Связанные ресурсы\"] } } }, { \"l\": \"sk\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tu sa zobrazí čokoľvek zdieľané s rovnakou skupinou ľudí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Chyba pri získavaní súvisiacich zdrojov. V prípade otázok kontaktujte prosím svojho systemového administrátora.\"] }, \"Related resources\": { \"v\": [\"Súvisiace zdroje\"] } } }, { \"l\": \"sl\", \"t\": { \"Related resources\": { \"v\": [\"Povezani viri\"] } } }, { \"l\": \"sr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Све што се дели са истом групом људи ће се појавити овде\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Грешка код прибављања везаних ресурса. Молимо вас да се обратите администратору ако имате питања.\"] }, \"Related resources\": { \"v\": [\"Повезани ресурси\"] } } }, { \"l\": \"sv\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Något som delats med samma grupp av personer kommer att visas här\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Det gick inte att hämta relaterade resurser. Kontakta din systemadministratör om du har några frågor.\"] }, \"Related resources\": { \"v\": [\"Relaterade resurser\"] } } }, { \"l\": \"tr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Aynı kişi grubu ile paylaşılan herşey burada görüntülenir\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"İlgili kaynaklara ulaşılırken sorun çıktı. Herhangi bir sorunuz varsa lütfen sistem yöneticiniz ile görüşün \"] }, \"Related resources\": { \"v\": [\"İlgili kaynaklar\"] } } }, { \"l\": \"uk\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Будь-що доступне для цієї же групи людей буде показано тут\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Помилка під час отримання пов'язаних ресурсів. Будь ласка, сконтактуйте з системним адміністратором, якщо у вас виникли запитання.\"] }, \"Related resources\": { \"v\": [\"Пов'язані ресурси\"] } } }, { \"l\": \"uz\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Xuddi shu guruhdagi odamlarga ulashilgan hamma narsa shu yerda chiqadi\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Tegishli manbalarni olishda xatolik yuz berdi. Savollaringiz bo'lsa, tizim administratoriga murojaat qiling.\"] }, \"Related resources\": { \"v\": [\"Tegishli manbalar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"与同组用户分享的所有内容都会显示于此\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"获取相关资源出现错误。如果你有任何问题,请联系系统管理员。\"] }, \"Related resources\": { \"v\": [\"相关资源\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"與同一組人共享的任何內容都會顯示在此處\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"取得相關資源時發生錯誤。如果有任何問題,請聯絡系統管理員。\"] }, \"Related resources\": { \"v\": [\"相關資源\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"與相同群組分享的所有內容都會顯示於此\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"取得相關資源時發生錯誤。如果有任何問題,請聯絡系統管理員。\"] }, \"Related resources\": { \"v\": [\"相關資源\"] } } }];\nconst t10 = [{ \"l\": \"ar\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"صورة الملف الشخصي الرمزية لــ {displayName} \"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"صورة الملف الشخصي الرمزية لــ {displayName}، {status}\"] } } }, { \"l\": \"ast\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de: {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de: {displayName}, {status}\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"cs\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}, {status}\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}, {status}\"] } } }, { \"l\": \"da\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar af {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar af {displayName}, {status}\"] } } }, { \"l\": \"de\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar von {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar von {displayName}, {status}\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar von {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar von {displayName}, {status}\"] } } }, { \"l\": \"el\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Άβαταρ του {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Άβαταρ του {displayName}, {status}\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar of {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar of {displayName}, {status}\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar {displayName}, {status}\"] } } }, { \"l\": \"eu\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}-(e)n irudia\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} -(e)n irudia, {status}\"] } } }, { \"l\": \"fa\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"آواتار {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"آواتار {displayName} ، {status}\"] } } }, { \"l\": \"fi\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}n avatar\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}n avatar, {status}\"] } } }, { \"l\": \"fr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"ga\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"gl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"he\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"תמונה ייצוגית של {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"תמונה ייצוגית של {displayName}, {status}\"] } } }, { \"l\": \"hu\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} profilképe\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} profilképe, {status}\"] } } }, { \"l\": \"id\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar {displayName}, {status}\"] } } }, { \"l\": \"is\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Auðkennismynd fyrir {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Auðkennismynd fyrir {displayName}, {status}\"] } } }, { \"l\": \"it\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar di {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar di {displayName}, {status}\"] } } }, { \"l\": \"ja\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} のアバター\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} のアバター\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} のアバター\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} のアバター\"] } } }, { \"l\": \"ko\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}님의 아바타\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status}님의 아바타\"] } } }, { \"l\": \"lo\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"ຮູບແທນຕົວຂອງ {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"ຮູບແທນຕົວຂອງ {displayName}, {status}\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар на {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Аватар на {displayName}, {status}\"] } } }, { \"l\": \"my\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} ၏ ကိုယ်ပွား\"] } } }, { \"l\": \"nb\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avataren til {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}'s avatar, {status}\"] } } }, { \"l\": \"nl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar van {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar van {displayName}, {status}\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Awatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Awatar {displayName}, {status}\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"ro\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatarul lui {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatarul lui {displayName}, {status}\"] } } }, { \"l\": \"ru\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Фотография {displayName}, {status}\"] } } }, { \"l\": \"sk\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar {displayName}, {status}\"] } } }, { \"l\": \"sl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Podoba {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Prikazna slika {displayName}, {status}\"] } } }, { \"l\": \"sr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар за {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar za {displayName}, {status}\"] } } }, { \"l\": \"sv\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}s avatar\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}s avatar, {status}\"] } } }, { \"l\": \"tr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} avatarı\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} avatarı\"] } } }, { \"l\": \"uk\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Аватар {displayName}, {status}\"] } } }, { \"l\": \"uz\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\" {displayName}Avatari\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} Avatari\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}的头像\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}的头像,{status}\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} 的頭像\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} 的頭像,{status}\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} 的大頭照\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} 的大頭照\"] } } }];\nconst t11 = [{ \"l\": \"ar\", \"t\": { \"away\": { \"v\": [\"غير موجود\"] }, \"busy\": { \"v\": [\"مشغول\"] }, \"do not disturb\": { \"v\": [\"يُرجى عدم الإزعاج\"] }, \"invisible\": { \"v\": [\"غير مرئي\"] }, \"offline\": { \"v\": [\"غير متصل\"] }, \"online\": { \"v\": [\"متصل\"] } } }, { \"l\": \"ast\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupáu\"] }, \"do not disturb\": { \"v\": [\"nun molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"desconectáu\"] }, \"online\": { \"v\": [\"en llinia\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"away\": { \"v\": [\"pryč\"] }, \"busy\": { \"v\": [\"zaneprádněn(a)\"] }, \"do not disturb\": { \"v\": [\"nerušit\"] }, \"invisible\": { \"v\": [\"neviditelné\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"away\": { \"v\": [\"pryč\"] }, \"busy\": { \"v\": [\"zaneprádněn(a)\"] }, \"do not disturb\": { \"v\": [\"nerušit\"] }, \"invisible\": { \"v\": [\"neviditelné\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"da\", \"t\": { \"away\": { \"v\": [\"væk\"] }, \"busy\": { \"v\": [\"optaget\"] }, \"do not disturb\": { \"v\": [\"forstyr ikke\"] }, \"invisible\": { \"v\": [\"usynlig\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"de\", \"t\": { \"away\": { \"v\": [\"Abwesend\"] }, \"busy\": { \"v\": [\"Beschäftigt\"] }, \"do not disturb\": { \"v\": [\"Bitte nicht stören\"] }, \"invisible\": { \"v\": [\"Unsichtbar\"] }, \"offline\": { \"v\": [\"Offline\"] }, \"online\": { \"v\": [\"Online\"] } } }, { \"l\": \"de-DE\", \"t\": { \"away\": { \"v\": [\"Abwesend\"] }, \"busy\": { \"v\": [\"Beschäftigt\"] }, \"do not disturb\": { \"v\": [\"Bitte nicht stören\"] }, \"invisible\": { \"v\": [\"Unsichtbar\"] }, \"offline\": { \"v\": [\"Offline\"] }, \"online\": { \"v\": [\"Online\"] } } }, { \"l\": \"el\", \"t\": { \"away\": { \"v\": [\"μακριά\"] }, \"busy\": { \"v\": [\"απασχολημένος\"] }, \"do not disturb\": { \"v\": [\"μην ενοχλείτε\"] }, \"invisible\": { \"v\": [\"αόρατο\"] }, \"offline\": { \"v\": [\"εκτός σύνδεσης\"] }, \"online\": { \"v\": [\"συνδεδεμένος\"] } } }, { \"l\": \"en-GB\", \"t\": { \"away\": { \"v\": [\"away\"] }, \"busy\": { \"v\": [\"busy\"] }, \"do not disturb\": { \"v\": [\"do not disturb\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"no molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"fuera de línea\"] }, \"online\": { \"v\": [\"en línea\"] } } }, { \"l\": \"es-AR\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"no molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"desconectado\"] }, \"online\": { \"v\": [\"en línea\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"no molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"fuera de línea\"] }, \"online\": { \"v\": [\"en línea\"] } } }, { \"l\": \"et-EE\", \"t\": { \"away\": { \"v\": [\"eemal\"] }, \"busy\": { \"v\": [\"hõivatud\"] }, \"do not disturb\": { \"v\": [\"ära sega\"] }, \"invisible\": { \"v\": [\"nähtamatu\"] }, \"offline\": { \"v\": [\"pole võrgus\"] }, \"online\": { \"v\": [\"võrgus\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"away\": { \"v\": [\"دور از دستگاه\"] }, \"busy\": { \"v\": [\"مشغول\"] }, \"do not disturb\": { \"v\": [\"مزاحم نشوید\"] }, \"invisible\": { \"v\": [\"مخفی\"] }, \"offline\": { \"v\": [\"برونخط\"] }, \"online\": { \"v\": [\"برخط\"] } } }, { \"l\": \"fi\", \"t\": { \"away\": { \"v\": [\"poissa\"] }, \"busy\": { \"v\": [\"varattu\"] }, \"do not disturb\": { \"v\": [\"älä häiritse\"] }, \"invisible\": { \"v\": [\"näkymätön\"] }, \"offline\": { \"v\": [\"ei linjalla\"] }, \"online\": { \"v\": [\"linjalla\"] } } }, { \"l\": \"fr\", \"t\": { \"away\": { \"v\": [\"absent\"] }, \"busy\": { \"v\": [\"occupé\"] }, \"do not disturb\": { \"v\": [\"ne pas déranger\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"hors ligne\"] }, \"online\": { \"v\": [\"en ligne\"] } } }, { \"l\": \"ga\", \"t\": { \"away\": { \"v\": [\"ar shiúl\"] }, \"busy\": { \"v\": [\"gnóthach\"] }, \"do not disturb\": { \"v\": [\"ná cur as\"] }, \"invisible\": { \"v\": [\"dofheicthe\"] }, \"offline\": { \"v\": [\"as líne\"] }, \"online\": { \"v\": [\"ar líne\"] } } }, { \"l\": \"gl\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"non molestar\"] }, \"invisible\": { \"v\": [\"invisíbel\"] }, \"offline\": { \"v\": [\"desconectado\"] }, \"online\": { \"v\": [\"conectado\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"away\": { \"v\": [\"tidak tersedia\"] }, \"do not disturb\": { \"v\": [\"jangan ganggu\"] }, \"offline\": { \"v\": [\"luring\"] }, \"online\": { \"v\": [\"daring\"] } } }, { \"l\": \"is\", \"t\": { \"away\": { \"v\": [\"í burtu\"] }, \"busy\": { \"v\": [\"upptekin/n\"] }, \"do not disturb\": { \"v\": [\"ekki ónáða\"] }, \"invisible\": { \"v\": [\"ósýnilegt\"] }, \"offline\": { \"v\": [\"ónettengt\"] }, \"online\": { \"v\": [\"nettengt\"] } } }, { \"l\": \"it\", \"t\": { \"away\": { \"v\": [\"via\"] }, \"do not disturb\": { \"v\": [\"non disturbare\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"ja\", \"t\": { \"away\": { \"v\": [\"離れる\"] }, \"busy\": { \"v\": [\"ビジー\"] }, \"do not disturb\": { \"v\": [\"邪魔をしないでください\"] }, \"invisible\": { \"v\": [\"不可視\"] }, \"offline\": { \"v\": [\"オフライン\"] }, \"online\": { \"v\": [\"オンライン\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"away\": { \"v\": [\"離れる\"] }, \"busy\": { \"v\": [\"ビジー\"] }, \"do not disturb\": { \"v\": [\"邪魔をしないでください\"] }, \"invisible\": { \"v\": [\"不可視\"] }, \"offline\": { \"v\": [\"オフライン\"] }, \"online\": { \"v\": [\"オンライン\"] } } }, { \"l\": \"ko\", \"t\": { \"away\": { \"v\": [\"자리 비움\"] }, \"busy\": { \"v\": [\"바쁨\"] }, \"do not disturb\": { \"v\": [\"방해 금지\"] }, \"invisible\": { \"v\": [\"보이지 않음\"] }, \"offline\": { \"v\": [\"오프라인\"] }, \"online\": { \"v\": [\"온라인\"] } } }, { \"l\": \"lo\", \"t\": { \"away\": { \"v\": [\"ບໍ່ຢູ່\"] }, \"busy\": { \"v\": [\"ບໍ່ວ່າງ\"] }, \"do not disturb\": { \"v\": [\"ຫ້າມລົບກວນ\"] }, \"invisible\": { \"v\": [\"ບໍ່ສະແດງ\"] }, \"offline\": { \"v\": [\"ອອບໄລນ໌\"] }, \"online\": { \"v\": [\"ອອນໄລນ໌\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"away\": { \"v\": [\"оддалечен\"] }, \"busy\": { \"v\": [\"зафатен\"] }, \"do not disturb\": { \"v\": [\"не вознемирувај\"] }, \"invisible\": { \"v\": [\"невидливо\"] }, \"offline\": { \"v\": [\"офлајн\"] }, \"online\": { \"v\": [\"онлајн\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"away\": { \"v\": [\"borte\"] }, \"busy\": { \"v\": [\"opptatt\"] }, \"do not disturb\": { \"v\": [\"ikke forstyrr\"] }, \"invisible\": { \"v\": [\"usynlig\"] }, \"offline\": { \"v\": [\"frakoblet\"] }, \"online\": { \"v\": [\"tilkoblet\"] } } }, { \"l\": \"nl\", \"t\": { \"away\": { \"v\": [\"weg\"] }, \"busy\": { \"v\": [\"bezig\"] }, \"do not disturb\": { \"v\": [\"niet storen\"] }, \"invisible\": { \"v\": [\"Onzichtbaar\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"away\": { \"v\": [\"stąd\"] }, \"busy\": { \"v\": [\"zajęty\"] }, \"do not disturb\": { \"v\": [\"nie przeszkadzać\"] }, \"invisible\": { \"v\": [\"niewidzialny\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"não perturbe\"] }, \"invisible\": { \"v\": [\"invisível\"] }, \"offline\": { \"v\": [\"off-line\"] }, \"online\": { \"v\": [\"on-line\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"away\": { \"v\": [\"longe\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"não incomodar\"] }, \"invisible\": { \"v\": [\"invisível\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"ro\", \"t\": { \"away\": { \"v\": [\"plecat\"] }, \"do not disturb\": { \"v\": [\"nu deranjați\"] }, \"offline\": { \"v\": [\"deconectat\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"ru\", \"t\": { \"away\": { \"v\": [\"отсутствие\"] }, \"busy\": { \"v\": [\"занятый\"] }, \"do not disturb\": { \"v\": [\"не беспокоить\"] }, \"invisible\": { \"v\": [\"невидимый\"] }, \"offline\": { \"v\": [\"офлайн\"] }, \"online\": { \"v\": [\"онлайн\"] } } }, { \"l\": \"sk\", \"t\": { \"away\": { \"v\": [\"neprítomný\"] }, \"busy\": { \"v\": [\"zaneprázdnený\"] }, \"do not disturb\": { \"v\": [\"nerušiť\"] }, \"invisible\": { \"v\": [\"neviditeľný\"] }, \"offline\": { \"v\": [\"Odpojený - offline\"] }, \"online\": { \"v\": [\"Pripojený - online\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"away\": { \"v\": [\"одсутан\"] }, \"busy\": { \"v\": [\"заузет\"] }, \"do not disturb\": { \"v\": [\"не узнемиравај\"] }, \"invisible\": { \"v\": [\"невидљиво\"] }, \"offline\": { \"v\": [\"ван мреже\"] }, \"online\": { \"v\": [\"на мрежи\"] } } }, { \"l\": \"sv\", \"t\": { \"away\": { \"v\": [\"borta\"] }, \"busy\": { \"v\": [\"upptagen\"] }, \"do not disturb\": { \"v\": [\"stör ej\"] }, \"invisible\": { \"v\": [\"osynlig\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"tr\", \"t\": { \"away\": { \"v\": [\"Uzakta\"] }, \"busy\": { \"v\": [\"Meşgul\"] }, \"do not disturb\": { \"v\": [\"Rahatsız etmeyin\"] }, \"invisible\": { \"v\": [\"görünmez\"] }, \"offline\": { \"v\": [\"Çevrim dışı\"] }, \"online\": { \"v\": [\"Çevrim içi\"] } } }, { \"l\": \"uk\", \"t\": { \"away\": { \"v\": [\"відсутній\"] }, \"busy\": { \"v\": [\"зайнято\"] }, \"do not disturb\": { \"v\": [\"не турбувати\"] }, \"invisible\": { \"v\": [\"Невидимий\"] }, \"offline\": { \"v\": [\"не в мережі\"] }, \"online\": { \"v\": [\"в мережі\"] } } }, { \"l\": \"uz\", \"t\": { \"away\": { \"v\": [\"uzoqda\"] }, \"busy\": { \"v\": [\"band\"] }, \"do not disturb\": { \"v\": [\"bezovta qilmang\"] }, \"invisible\": { \"v\": [\"ko'rinmas\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"away\": { \"v\": [\"离开\"] }, \"busy\": { \"v\": [\"繁忙\"] }, \"do not disturb\": { \"v\": [\"请勿打扰\"] }, \"invisible\": { \"v\": [\"隐藏的\"] }, \"offline\": { \"v\": [\"离线\"] }, \"online\": { \"v\": [\"在线\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"away\": { \"v\": [\"離開\"] }, \"busy\": { \"v\": [\"忙碌\"] }, \"do not disturb\": { \"v\": [\"請勿打擾\"] }, \"invisible\": { \"v\": [\"隐藏的\"] }, \"offline\": { \"v\": [\"離線\"] }, \"online\": { \"v\": [\"在線\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"away\": { \"v\": [\"離開\"] }, \"busy\": { \"v\": [\"忙碌\"] }, \"do not disturb\": { \"v\": [\"請勿打擾\"] }, \"invisible\": { \"v\": [\"不可見\"] }, \"offline\": { \"v\": [\"離線\"] }, \"online\": { \"v\": [\"線上\"] } } }];\nconst t12 = [{ \"l\": \"ar\", \"t\": { \"Back to provider selection\": { \"v\": [\"عودة إلى اختيار المزوّد\"] }, \"Close Smart Picker\": { \"v\": [\"إغلاق المحدد الذكي\"] }, \"Smart Picker\": { \"v\": [\"اللاقط الذكي smart picker\"] } } }, { \"l\": \"ast\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la seleición de fornidores\"] }, \"Close Smart Picker\": { \"v\": [\"Zarrar la seleición intelixente\"] }, \"Smart Picker\": { \"v\": [\"Selector intelixente\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zpět na výběr poskytovatele\"] }, \"Close Smart Picker\": { \"v\": [\"Zavřít inteligentní výběr\"] }, \"Smart Picker\": { \"v\": [\"Inteligentní výběr\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zpět na výběr poskytovatele\"] }, \"Close Smart Picker\": { \"v\": [\"Zavřít inteligentní výběr\"] }, \"Smart Picker\": { \"v\": [\"Inteligentní výběr\"] } } }, { \"l\": \"da\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tilbage til udbydervalg\"] }, \"Close Smart Picker\": { \"v\": [\"Luk Smart Vælger\"] }, \"Smart Picker\": { \"v\": [\"Smart Vælger\"] } } }, { \"l\": \"de\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zurück zur Anbieterauswahl\"] }, \"Close Smart Picker\": { \"v\": [\"Smart Picker schließen\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zurück zur Anbieterauswahl\"] }, \"Close Smart Picker\": { \"v\": [\"Smart Picker schließen\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"el\", \"t\": { \"Back to provider selection\": { \"v\": [\"Επιστροφή στην επιλογή παρόχου\"] }, \"Close Smart Picker\": { \"v\": [\"Κλείσιμο Έξυπνης Επιλογής\"] }, \"Smart Picker\": { \"v\": [\"Έξυπνη Επιλογή\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Back to provider selection\": { \"v\": [\"Back to provider selection\"] }, \"Close Smart Picker\": { \"v\": [\"Close Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tagasi teenusepakkuja valiku juurde\"] }, \"Close Smart Picker\": { \"v\": [\"Sulge nutikas valija\"] }, \"Smart Picker\": { \"v\": [\"Nutikas valija\"] } } }, { \"l\": \"eu\", \"t\": { \"Back to provider selection\": { \"v\": [\"Itzuli hornitzaileen hautapenera\"] }, \"Close Smart Picker\": { \"v\": [\"Itxi hautatzaile adimenduna\"] }, \"Smart Picker\": { \"v\": [\"Hautatzaile adimenduna\"] } } }, { \"l\": \"fa\", \"t\": { \"Back to provider selection\": { \"v\": [\"بازگشت به انتخاب ارائه دهنده\"] }, \"Close Smart Picker\": { \"v\": [\"بستن انتخابگر هوشمند\"] }, \"Smart Picker\": { \"v\": [\"انتخابگر هوشمند\"] } } }, { \"l\": \"fi\", \"t\": { \"Back to provider selection\": { \"v\": [\"Takaisin toimittajavalintaan\"] }, \"Close Smart Picker\": { \"v\": [\"Sulje älykas valitsin\"] }, \"Smart Picker\": { \"v\": [\"Älykäs valitsin\"] } } }, { \"l\": \"fr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Revenir à la sélection du fournisseur\"] }, \"Close Smart Picker\": { \"v\": [\"Fermer le sélecteur intelligent\"] }, \"Smart Picker\": { \"v\": [\"Sélecteur intelligent\"] } } }, { \"l\": \"ga\", \"t\": { \"Back to provider selection\": { \"v\": [\"Ar ais go roghnú soláthróra\"] }, \"Close Smart Picker\": { \"v\": [\"Dún Piocálaí Cliste\"] }, \"Smart Picker\": { \"v\": [\"Roghnóir Cliste\"] } } }, { \"l\": \"gl\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver á selección do provedor\"] }, \"Close Smart Picker\": { \"v\": [\"Pechar o Selector intelixente\"] }, \"Smart Picker\": { \"v\": [\"Selector intelixente\"] } } }, { \"l\": \"he\", \"t\": { \"Back to provider selection\": { \"v\": [\"חזרה לבחירת ספק\"] }, \"Close Smart Picker\": { \"v\": [\"סגירת הבורר החכם\"] }, \"Smart Picker\": { \"v\": [\"בורר חכם\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Back to provider selection\": { \"v\": [\"Kembali ke pemilihan penyedia\"] }, \"Close Smart Picker\": { \"v\": [\"Tutup Pemilih Cerdas\"] }, \"Smart Picker\": { \"v\": [\"Pemilih Cerdas\"] } } }, { \"l\": \"is\", \"t\": { \"Back to provider selection\": { \"v\": [\"Til baka í val á þjónustuveitu\"] }, \"Close Smart Picker\": { \"v\": [\"Loka snjall-veljara\"] }, \"Smart Picker\": { \"v\": [\"Snjall-veljari\"] } } }, { \"l\": \"it\", \"t\": { \"Back to provider selection\": { \"v\": [\"Torna alla selezione del provider\"] }, \"Close Smart Picker\": { \"v\": [\"Chiudere lo Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Picker intelligente\"] } } }, { \"l\": \"ja\", \"t\": { \"Back to provider selection\": { \"v\": [\"プロバイダーの選択に戻る\"] }, \"Close Smart Picker\": { \"v\": [\"スマートピッカーを閉じる\"] }, \"Smart Picker\": { \"v\": [\"スマートピッカー\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Back to provider selection\": { \"v\": [\"プロバイダーの選択に戻る\"] }, \"Close Smart Picker\": { \"v\": [\"スマートピッカーを閉じる\"] }, \"Smart Picker\": { \"v\": [\"スマートピッカー\"] } } }, { \"l\": \"ko\", \"t\": { \"Back to provider selection\": { \"v\": [\"제공자 선택으로 돌아가기\"] }, \"Close Smart Picker\": { \"v\": [\"스마트 선택기 닫기\"] }, \"Smart Picker\": { \"v\": [\"스마트 선택기\"] } } }, { \"l\": \"lo\", \"t\": { \"Back to provider selection\": { \"v\": [\"ກັບໄປທີ່ການເລືອກຜູ້ໃຫ້ບໍລິການ\"] }, \"Close Smart Picker\": { \"v\": [\"ປິດໂຕເລືອກອັດສະລິຍະ\"] }, \"Smart Picker\": { \"v\": [\"ໂຕເລືອກອັດສະລິຍະ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Back to provider selection\": { \"v\": [\"Назад до избор на провајдер\"] }, \"Close Smart Picker\": { \"v\": [\"Затвори паметен избирач\"] }, \"Smart Picker\": { \"v\": [\"Паметен избирач\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tilbake til leverandørvalg\"] }, \"Close Smart Picker\": { \"v\": [\"Lukk Smart Velger\"] }, \"Smart Picker\": { \"v\": [\"Smart Velger\"] } } }, { \"l\": \"nl\", \"t\": { \"Back to provider selection\": { \"v\": [\"Terug naar provider selectie\"] }, \"Close Smart Picker\": { \"v\": [\"Slimme Kiezer sluiten\"] }, \"Smart Picker\": { \"v\": [\"Slimme Kiezer\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Back to provider selection\": { \"v\": [\"Powrót do wyboru dostawcy\"] }, \"Close Smart Picker\": { \"v\": [\"Zamknij inteligentny selektor\"] }, \"Smart Picker\": { \"v\": [\"Inteligentne wybieranie\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Back to provider selection\": { \"v\": [\"Voltar para seleção de provedor\"] }, \"Close Smart Picker\": { \"v\": [\"Fechar Seletor Inteligente\"] }, \"Smart Picker\": { \"v\": [\"Seletor Inteligente\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Back to provider selection\": { \"v\": [\"Voltar à seleção de fornecedor\"] }, \"Close Smart Picker\": { \"v\": ['Fechar \"Smart Picker\"'] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"ro\", \"t\": { \"Back to provider selection\": { \"v\": [\"Înapoi la selecția providerului\"] }, \"Close Smart Picker\": { \"v\": [\"Închide Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"ru\", \"t\": { \"Back to provider selection\": { \"v\": [\"Вернуться к выбору провайдера\"] }, \"Close Smart Picker\": { \"v\": [\"Закрыть интеллектуальный выбор\"] }, \"Smart Picker\": { \"v\": [\"Умный выбор\"] } } }, { \"l\": \"sk\", \"t\": { \"Back to provider selection\": { \"v\": [\"Späť na výber poskytovateľa\"] }, \"Close Smart Picker\": { \"v\": [\"Zavrieť inteligentný výber\"] }, \"Smart Picker\": { \"v\": [\"Inteligentný výber\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Назад на избор пружаоца\"] }, \"Close Smart Picker\": { \"v\": [\"Затвори паметни бирач\"] }, \"Smart Picker\": { \"v\": [\"Паметни бирач\"] } } }, { \"l\": \"sv\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tillbaka till leverantörsval\"] }, \"Close Smart Picker\": { \"v\": [\"Stäng Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"tr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Hizmet sağlayıcı seçimine dön\"] }, \"Close Smart Picker\": { \"v\": [\"Akıllı seçimi kapat\"] }, \"Smart Picker\": { \"v\": [\"Akıllı seçim\"] } } }, { \"l\": \"uk\", \"t\": { \"Back to provider selection\": { \"v\": [\"Назад до вибору постачальника\"] }, \"Close Smart Picker\": { \"v\": [\"Закрити асистент вибору\"] }, \"Smart Picker\": { \"v\": [\"Асистент вибору\"] } } }, { \"l\": \"uz\", \"t\": { \"Back to provider selection\": { \"v\": [\"Provayder tanloviga qaytish\"] }, \"Close Smart Picker\": { \"v\": [\"Smart Picker-ni yoping\"] }, \"Smart Picker\": { \"v\": [\"Aqlli tanlovchi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Back to provider selection\": { \"v\": [\"返回至提供者选择列表\"] }, \"Close Smart Picker\": { \"v\": [\"关闭智能拾取器\"] }, \"Smart Picker\": { \"v\": [\"智能拾取器\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Back to provider selection\": { \"v\": [\"回到提供者選擇\"] }, \"Close Smart Picker\": { \"v\": [\"關閉 Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Back to provider selection\": { \"v\": [\"回到提供者選擇\"] }, \"Close Smart Picker\": { \"v\": [\"關閉智慧型挑選器\"] }, \"Smart Picker\": { \"v\": [\"智慧型挑選器\"] } } }];\nconst t13 = [{ \"l\": \"ar\", \"t\": { \"Calendar icon\": { \"v\": [\"أيقونة التقويم\"] }, \"Cancel\": { \"v\": [\"إلغاء\"] }, \"Clear value\": { \"v\": [\"مَحو القيمة\"] }, \"Close time Picker\": { \"v\": [\"إغلاق لاقط الوقت\"] }, \"Datepicker input\": { \"v\": [\"مُدخَلات لاقط التاريخ\"] }, \"Datepicker menu\": { \"v\": [\"قائمة لاقط التاريخ\"] }, \"Decrement hours\": { \"v\": [\"إنقاص الساعات\"] }, \"Decrement minutes\": { \"v\": [\"إنقاص الدقائق\"] }, \"Decrement seconds\": { \"v\": [\"إنقاص الثواني\"] }, \"Increment hours\": { \"v\": [\"زيادة الساعات\"] }, \"Increment minutes\": { \"v\": [\"زيادة الدقائق\"] }, \"Increment seconds\": { \"v\": [\"زيادة الثواني\"] }, \"Month picker\": { \"v\": [\"لاقط الشهر\"] }, \"Month picker overlay\": { \"v\": [\"تراكب لاقط الشهر\"] }, \"Next month\": { \"v\": [\"الشهر القادم\"] }, \"Next year\": { \"v\": [\"السنة القادمة\"] }, \"Now\": { \"v\": [\"الآن\"] }, \"Open hours overlay\": { \"v\": [\"فتح تراكب الساعات \"] }, \"Open minutes overlay\": { \"v\": [\"فتح تراكب الدقائق\"] }, \"Open months overlay\": { \"v\": [\"فتح تراكب الشهور\"] }, \"Open seconds overlay\": { \"v\": [\"فتح تراكب الثواني\"] }, \"Open time picker\": { \"v\": [\"فتح لاقط الوقت\"] }, \"Open years overlay\": { \"v\": [\"فتح تراكب السنوات\"] }, \"Pick\": { \"v\": [\"إلتقاط\"] }, \"Previous month\": { \"v\": [\"الشهر الماضي\"] }, \"Previous year\": { \"v\": [\"السنة الماضية\"] }, \"Select date\": { \"v\": [\"إختيار التاريخ\"] }, \"Select date and time\": { \"v\": [\"إختيار التاريخ والوقت\"] }, \"Select month\": { \"v\": [\"إختيار الشهر\"] }, \"Select time\": { \"v\": [\"إختيار الوقت\"] }, \"Select time range\": { \"v\": [\"إختيار المدى الزمني\"] }, \"Select week\": { \"v\": [\"إختيار الأسبوع\"] }, \"Select year\": { \"v\": [\"إختيار السنة\"] }, \"Switch AM/PM mode\": { \"v\": [\"تبديل وضعية صباحاً/مساءً\"] }, \"Time picker\": { \"v\": [\"لاقط الوقت\"] }, \"Toggle overlay\": { \"v\": [\"تبديل التراكب\"] }, \"W\": { \"v\": [\"أ\"] }, \"Year picker\": { \"v\": [\"لاقط السنة\"] }, \"Year picker overlay\": { \"v\": [\"تراكب لاقط السنة\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Calendar icon\": { \"v\": [\"Ikona kalendáře\"] }, \"Cancel\": { \"v\": [\"Storno\"] }, \"Clear value\": { \"v\": [\"Vyčistit hodnotu\"] }, \"Close time Picker\": { \"v\": [\"Zavřít výběr času\"] }, \"Datepicker input\": { \"v\": [\"Vstup výběru data\"] }, \"Datepicker menu\": { \"v\": [\"Nabídka výběru data\"] }, \"Decrement hours\": { \"v\": [\"Snížit hodiny\"] }, \"Decrement minutes\": { \"v\": [\"Snížit minuty\"] }, \"Decrement seconds\": { \"v\": [\"Snížit sekundy\"] }, \"Increment hours\": { \"v\": [\"Zvýšit hodiny\"] }, \"Increment minutes\": { \"v\": [\"Zvýšit minuty\"] }, \"Increment seconds\": { \"v\": [\"Zvýšit sekundy\"] }, \"Month picker\": { \"v\": [\"Výběr měsíce\"] }, \"Month picker overlay\": { \"v\": [\"Překryvné okno výběru měsíce\"] }, \"Next month\": { \"v\": [\"Příští měsíc\"] }, \"Next year\": { \"v\": [\"Příští rok\"] }, \"Now\": { \"v\": [\"Nyní\"] }, \"Open hours overlay\": { \"v\": [\"Otevřít překryvné okno hodin\"] }, \"Open minutes overlay\": { \"v\": [\"Otevřít překryvné okno minut\"] }, \"Open months overlay\": { \"v\": [\"Otevřít překryvné okno měsíců\"] }, \"Open seconds overlay\": { \"v\": [\"Otevřít překryvné okno sekund\"] }, \"Open time picker\": { \"v\": [\"Otevřít výběr času\"] }, \"Open years overlay\": { \"v\": [\"Otevřít překryvné okno roku\"] }, \"Pick\": { \"v\": [\"Vybrat\"] }, \"Previous month\": { \"v\": [\"Předchozí měsíc\"] }, \"Previous year\": { \"v\": [\"Předchozí rok\"] }, \"Select date\": { \"v\": [\"Vybrat datum\"] }, \"Select date and time\": { \"v\": [\"Vybrat datum a čas\"] }, \"Select month\": { \"v\": [\"Vybrat měsíc\"] }, \"Select time\": { \"v\": [\"Vybrat čas\"] }, \"Select time range\": { \"v\": [\"Vybrat časový rozsah\"] }, \"Select week\": { \"v\": [\"Vybrat týden\"] }, \"Select year\": { \"v\": [\"Vybrat rok\"] }, \"Switch AM/PM mode\": { \"v\": [\"Přepnout režim dopo/odpoledne\"] }, \"Time picker\": { \"v\": [\"Výběr času\"] }, \"Time zone\": { \"v\": [\"Časové pásmo\"] }, \"Toggle overlay\": { \"v\": [\"Vyp/zap. překryvné okno\"] }, \"W\": { \"v\": [\"T\"] }, \"Year picker\": { \"v\": [\"Výběr roku\"] }, \"Year picker overlay\": { \"v\": [\"Překryvné okno výběru roku\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalenderikon\"] }, \"Cancel\": { \"v\": [\"Annullér\"] }, \"Clear value\": { \"v\": [\"Klar værdi\"] }, \"Close time Picker\": { \"v\": [\"Nærtid Picker\"] }, \"Datepicker input\": { \"v\": [\"Datapicker input\"] }, \"Datepicker menu\": { \"v\": [\"Datapicker menu\"] }, \"Decrement hours\": { \"v\": [\"Formindsk timer\"] }, \"Decrement minutes\": { \"v\": [\"Formindsk minutter\"] }, \"Decrement seconds\": { \"v\": [\"Formindsk sekunder\"] }, \"Increment hours\": { \"v\": [\"Forøg timer\"] }, \"Increment minutes\": { \"v\": [\"Forøg minutter\"] }, \"Increment seconds\": { \"v\": [\"Forøg sekunder\"] }, \"Month picker\": { \"v\": [\"Månedsvælger\"] }, \"Month picker overlay\": { \"v\": [\"Måneder vælger overlay\"] }, \"Next month\": { \"v\": [\"Næste måned\"] }, \"Next year\": { \"v\": [\"Næste år\"] }, \"Now\": { \"v\": [\"Nu\"] }, \"Open hours overlay\": { \"v\": [\"Åbne timer overlay\"] }, \"Open minutes overlay\": { \"v\": [\"Åbn minutter overlay\"] }, \"Open months overlay\": { \"v\": [\"Åbne måneder overlay\"] }, \"Open seconds overlay\": { \"v\": [\"Åbne sekunder overlay\"] }, \"Open time picker\": { \"v\": [\"Åbent tidsvælger\"] }, \"Open years overlay\": { \"v\": [\"Åbne år overlay\"] }, \"Pick\": { \"v\": [\"Vælg\"] }, \"Previous month\": { \"v\": [\"Forrige måned\"] }, \"Previous year\": { \"v\": [\"Foregående år\"] }, \"Select date\": { \"v\": [\"Vælg dato\"] }, \"Select date and time\": { \"v\": [\"Vælg dato og tidspunkt\"] }, \"Select month\": { \"v\": [\"Vælg måned\"] }, \"Select time\": { \"v\": [\"Vælg tid\"] }, \"Select time range\": { \"v\": [\"Vælg tidsinterval\"] }, \"Select week\": { \"v\": [\"Vælg uge\"] }, \"Select year\": { \"v\": [\"Vælg år\"] }, \"Switch AM/PM mode\": { \"v\": [\"Skift AM/PM-tilstand\"] }, \"Time picker\": { \"v\": [\"Tidsvælger\"] }, \"Toggle overlay\": { \"v\": [\"Slå overlay til / fra\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"År vælger\"] }, \"Year picker overlay\": { \"v\": [\"År vælger overlay\"] } } }, { \"l\": \"de\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendersymbol\"] }, \"Cancel\": { \"v\": [\"Abbrechen\"] }, \"Clear value\": { \"v\": [\"Wert löschen\"] }, \"Close time Picker\": { \"v\": [\"Zeitauswahl schließen\"] }, \"Datepicker input\": { \"v\": [\"Eingabe Datumsauswahl\"] }, \"Datepicker menu\": { \"v\": [\"Menü Datumsauswahl\"] }, \"Decrement hours\": { \"v\": [\"Stunden verringern\"] }, \"Decrement minutes\": { \"v\": [\"Minuten verringern\"] }, \"Decrement seconds\": { \"v\": [\"Sekunden verringern\"] }, \"Increment hours\": { \"v\": [\"Stunden hochzählen\"] }, \"Increment minutes\": { \"v\": [\"Minuten hochzählen\"] }, \"Increment seconds\": { \"v\": [\"Sekunden hochzählen\"] }, \"Month picker\": { \"v\": [\"Monatsauswahl\"] }, \"Month picker overlay\": { \"v\": [\"Monatsauswahl-Overlay\"] }, \"Next month\": { \"v\": [\"Nächster Monat\"] }, \"Next year\": { \"v\": [\"Nächstes Jahr\"] }, \"Now\": { \"v\": [\"Jetzt\"] }, \"Open hours overlay\": { \"v\": [\"Stunden-Overlay öffnen\"] }, \"Open minutes overlay\": { \"v\": [\"Minuten-Overlay öffnen\"] }, \"Open months overlay\": { \"v\": [\"Monate-Overlay öffnen\"] }, \"Open seconds overlay\": { \"v\": [\"Sekunden-Overlay öffnen\"] }, \"Open time picker\": { \"v\": [\"Zeitauswahl öffnen\"] }, \"Open years overlay\": { \"v\": [\"Jahre-Overlay öffnen\"] }, \"Pick\": { \"v\": [\"Auswählen\"] }, \"Previous month\": { \"v\": [\"Vorheriger Monat\"] }, \"Previous year\": { \"v\": [\"Vorheriges Jahr\"] }, \"Select date\": { \"v\": [\"Datum auswählen\"] }, \"Select date and time\": { \"v\": [\"Datum und Uhrzeit auswählen\"] }, \"Select month\": { \"v\": [\"Monat auswählen\"] }, \"Select time\": { \"v\": [\"Uhrzeit auswählen\"] }, \"Select time range\": { \"v\": [\"Zeitspanne auswählen\"] }, \"Select week\": { \"v\": [\"Woche auswählen\"] }, \"Select year\": { \"v\": [\"Jahr auswählen\"] }, \"Switch AM/PM mode\": { \"v\": [\"Zwischen AM/PM-Modus wechseln\"] }, \"Time picker\": { \"v\": [\"Zeitauswahl\"] }, \"Time zone\": { \"v\": [\"Zeitzone\"] }, \"Toggle overlay\": { \"v\": [\"Overlay umschalten\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Jahresauswahl\"] }, \"Year picker overlay\": { \"v\": [\"Jahre-Overlay öffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendersymbol\"] }, \"Cancel\": { \"v\": [\"Abbrechen\"] }, \"Clear value\": { \"v\": [\"Wert löschen\"] }, \"Close time Picker\": { \"v\": [\"Zeitauswahl schließen\"] }, \"Datepicker input\": { \"v\": [\"Eingabe Datumsauswahl\"] }, \"Datepicker menu\": { \"v\": [\"Menü Datumsauswahl\"] }, \"Decrement hours\": { \"v\": [\"Stunden verringern\"] }, \"Decrement minutes\": { \"v\": [\"Minuten verringern\"] }, \"Decrement seconds\": { \"v\": [\"Sekunden verringern\"] }, \"Increment hours\": { \"v\": [\"Stunden hochzählen\"] }, \"Increment minutes\": { \"v\": [\"Minuten hochzählen\"] }, \"Increment seconds\": { \"v\": [\"Sekunden hochzählen\"] }, \"Month picker\": { \"v\": [\"Monatsauswahl\"] }, \"Month picker overlay\": { \"v\": [\"Monatsauswahl-Overlay\"] }, \"Next month\": { \"v\": [\"Nächster Monat\"] }, \"Next year\": { \"v\": [\"Nächstes Jahr\"] }, \"Now\": { \"v\": [\"Jetzt\"] }, \"Open hours overlay\": { \"v\": [\"Stunden-Overlay öffnen\"] }, \"Open minutes overlay\": { \"v\": [\"Minuten-Overlay öffnen\"] }, \"Open months overlay\": { \"v\": [\"Monate-Overlay öffnen\"] }, \"Open seconds overlay\": { \"v\": [\"Sekunden-Overlay öffnen\"] }, \"Open time picker\": { \"v\": [\"Zeitauswahl öffnen\"] }, \"Open years overlay\": { \"v\": [\"Jahre-Overlay öffnen\"] }, \"Pick\": { \"v\": [\"Auswählen\"] }, \"Previous month\": { \"v\": [\"Vorheriger Monat\"] }, \"Previous year\": { \"v\": [\"Vorheriges Jahr\"] }, \"Select date\": { \"v\": [\"Datum auswählen\"] }, \"Select date and time\": { \"v\": [\"Datum und Uhrzeit auswählen\"] }, \"Select month\": { \"v\": [\"Monat auswählen\"] }, \"Select time\": { \"v\": [\"Uhrzeit auswählen\"] }, \"Select time range\": { \"v\": [\"Zeitspanne auswählen\"] }, \"Select week\": { \"v\": [\"Woche auswählen\"] }, \"Select year\": { \"v\": [\"Jahr auswählen\"] }, \"Switch AM/PM mode\": { \"v\": [\"Zwischen AM/PM-Modus wechseln\"] }, \"Time picker\": { \"v\": [\"Zeitauswahl\"] }, \"Time zone\": { \"v\": [\"Zeitzone\"] }, \"Toggle overlay\": { \"v\": [\"Overlay umschalten\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Jahresauswahl\"] }, \"Year picker overlay\": { \"v\": [\"Jahre-Overlay öffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Calendar icon\": { \"v\": [\"Εικονίδιο ημερολογίου\"] }, \"Cancel\": { \"v\": [\"Ακύρωση\"] }, \"Clear value\": { \"v\": [\"Εκκαθάριση αξίας\"] }, \"Close time Picker\": { \"v\": [\"Κλείσιμο επιλογέα ώρας\"] }, \"Datepicker input\": { \"v\": [\"Εισαγωγή ημερομηνίας\"] }, \"Datepicker menu\": { \"v\": [\"Μενού επιλογής ημερομηνίας\"] }, \"Decrement hours\": { \"v\": [\"Μείωση ωρών\"] }, \"Decrement minutes\": { \"v\": [\"Μείωση λεπτών\"] }, \"Decrement seconds\": { \"v\": [\"Μείωση δευτερολέπτων\"] }, \"Increment hours\": { \"v\": [\"Αύξηση ωρών\"] }, \"Increment minutes\": { \"v\": [\"Αύξηση λεπτών\"] }, \"Increment seconds\": { \"v\": [\"Αύξηση δευτερολέπτων\"] }, \"Month picker\": { \"v\": [\"Επιλογή μήνα\"] }, \"Month picker overlay\": { \"v\": [\"Επικάλυψη επιλογής μήνα\"] }, \"Next month\": { \"v\": [\"Επόμενος μήνας\"] }, \"Next year\": { \"v\": [\"Επόμενο έτος\"] }, \"Now\": { \"v\": [\"Τώρα\"] }, \"Open hours overlay\": { \"v\": [\"Άνοιγμα επικάλυψης ωρών\"] }, \"Open minutes overlay\": { \"v\": [\"Άνοιγμα επικάλυψης λεπτών\"] }, \"Open months overlay\": { \"v\": [\"Άνοιγμα επικάλυψης μηνών\"] }, \"Open seconds overlay\": { \"v\": [\"Άνοιγμα επικάλυψης δευτερολέπτων\"] }, \"Open time picker\": { \"v\": [\"Άνοιγμα επιλογέα ώρας\"] }, \"Open years overlay\": { \"v\": [\"Άνοιγμα επικάλυψης ετών\"] }, \"Pick\": { \"v\": [\"Επιλογή\"] }, \"Previous month\": { \"v\": [\"Προηγούμενος μήνας\"] }, \"Previous year\": { \"v\": [\"Προηγούμενο έτος\"] }, \"Select date\": { \"v\": [\"Επιλογή ημερομηνίας\"] }, \"Select date and time\": { \"v\": [\"Επιλογή ημερομηνίας και ώρας\"] }, \"Select month\": { \"v\": [\"Επιλογή μήνα\"] }, \"Select time\": { \"v\": [\"Επιλογή ώρας\"] }, \"Select time range\": { \"v\": [\"Επιλογή χρονικού διαστήματος\"] }, \"Select week\": { \"v\": [\"Επιλογή εβδομάδας\"] }, \"Select year\": { \"v\": [\"Επιλογή έτους\"] }, \"Switch AM/PM mode\": { \"v\": [\"Εναλλαγή λειτουργίας AM/PM\"] }, \"Time picker\": { \"v\": [\"Επιλογή ώρας\"] }, \"Toggle overlay\": { \"v\": [\"Εναλλαγή επικάλυψης\"] }, \"W\": { \"v\": [\"Τε\"] }, \"Year picker\": { \"v\": [\"Επιλογέας έτους\"] }, \"Year picker overlay\": { \"v\": [\"Επικάλυψη επιλογέα έτους\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Calendar icon\": { \"v\": [\"Calendar icon\"] }, \"Cancel\": { \"v\": [\"Cancel\"] }, \"Clear value\": { \"v\": [\"Clear value\"] }, \"Close time Picker\": { \"v\": [\"Close time Picker\"] }, \"Datepicker input\": { \"v\": [\"Datepicker input\"] }, \"Datepicker menu\": { \"v\": [\"Datepicker menu\"] }, \"Decrement hours\": { \"v\": [\"Decrement hours\"] }, \"Decrement minutes\": { \"v\": [\"Decrement minutes\"] }, \"Decrement seconds\": { \"v\": [\"Decrement seconds\"] }, \"Increment hours\": { \"v\": [\"Increment hours\"] }, \"Increment minutes\": { \"v\": [\"Increment minutes\"] }, \"Increment seconds\": { \"v\": [\"Increment seconds\"] }, \"Month picker\": { \"v\": [\"Month picker\"] }, \"Month picker overlay\": { \"v\": [\"Month picker overlay\"] }, \"Next month\": { \"v\": [\"Next month\"] }, \"Next year\": { \"v\": [\"Next year\"] }, \"Now\": { \"v\": [\"Now\"] }, \"Open hours overlay\": { \"v\": [\"Open hours overlay\"] }, \"Open minutes overlay\": { \"v\": [\"Open minutes overlay\"] }, \"Open months overlay\": { \"v\": [\"Open months overlay\"] }, \"Open seconds overlay\": { \"v\": [\"Open seconds overlay\"] }, \"Open time picker\": { \"v\": [\"Open time picker\"] }, \"Open years overlay\": { \"v\": [\"Open years overlay\"] }, \"Pick\": { \"v\": [\"Pick\"] }, \"Previous month\": { \"v\": [\"Previous month\"] }, \"Previous year\": { \"v\": [\"Previous year\"] }, \"Select date\": { \"v\": [\"Select date\"] }, \"Select date and time\": { \"v\": [\"Select date and time\"] }, \"Select month\": { \"v\": [\"Select month\"] }, \"Select time\": { \"v\": [\"Select time\"] }, \"Select time range\": { \"v\": [\"Select time range\"] }, \"Select week\": { \"v\": [\"Select week\"] }, \"Select year\": { \"v\": [\"Select year\"] }, \"Switch AM/PM mode\": { \"v\": [\"Switch AM/PM mode\"] }, \"Time picker\": { \"v\": [\"Time picker\"] }, \"Time zone\": { \"v\": [\"Time zone\"] }, \"Toggle overlay\": { \"v\": [\"Toggle overlay\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Year picker\"] }, \"Year picker overlay\": { \"v\": [\"Year picker overlay\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendriikoon\"] }, \"Cancel\": { \"v\": [\"Katkesta\"] }, \"Clear value\": { \"v\": [\"Kustuta väärtus\"] }, \"Close time Picker\": { \"v\": [\"Sulge ajavalija\"] }, \"Datepicker input\": { \"v\": [\"Kuupäevavalija sisend\"] }, \"Datepicker menu\": { \"v\": [\"Kuupäevavalija sisend\"] }, \"Decrement hours\": { \"v\": [\"Vähenda tunde\"] }, \"Decrement minutes\": { \"v\": [\"Vähenda minuteid\"] }, \"Decrement seconds\": { \"v\": [\"Vähenda sekundeid\"] }, \"Increment hours\": { \"v\": [\"Suurenda tunde\"] }, \"Increment minutes\": { \"v\": [\"Suurenda minuteid\"] }, \"Increment seconds\": { \"v\": [\"Suurenda sekundeid\"] }, \"Month picker\": { \"v\": [\"Kuupäevavalija\"] }, \"Month picker overlay\": { \"v\": [\"Kuupäevavalija ülekatteaken\"] }, \"Next month\": { \"v\": [\"Järgmine kuu\"] }, \"Next year\": { \"v\": [\"Järgmine aasta\"] }, \"Now\": { \"v\": [\"Praegu\"] }, \"Open hours overlay\": { \"v\": [\"Ava tundide vaade\"] }, \"Open minutes overlay\": { \"v\": [\"Ava minutite vaade\"] }, \"Open months overlay\": { \"v\": [\"Ava kuude vaade\"] }, \"Open seconds overlay\": { \"v\": [\"Ava sekundite vaade\"] }, \"Open time picker\": { \"v\": [\"Ava ajavalija\"] }, \"Open years overlay\": { \"v\": [\"Ava aastate vaade\"] }, \"Pick\": { \"v\": [\"Vali\"] }, \"Previous month\": { \"v\": [\"Eelmine kuu\"] }, \"Previous year\": { \"v\": [\"Eelmine aasta\"] }, \"Select date\": { \"v\": [\"Vali kuupäev\"] }, \"Select date and time\": { \"v\": [\"Vali kuupäev ja kellaaeg\"] }, \"Select month\": { \"v\": [\"Vali kuu\"] }, \"Select time\": { \"v\": [\"Vali aeg\"] }, \"Select time range\": { \"v\": [\"Vali ajavahemik\"] }, \"Select week\": { \"v\": [\"Vali nädal\"] }, \"Select year\": { \"v\": [\"Vali aasta\"] }, \"Switch AM/PM mode\": { \"v\": [\"Vaheta AM/PM kuvamist\"] }, \"Time picker\": { \"v\": [\"Ajavalija\"] }, \"Time zone\": { \"v\": [\"Ajavöönd\"] }, \"Toggle overlay\": { \"v\": [\"Lülita ülekatteaken sisse/välja\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Aastavalija\"] }, \"Year picker overlay\": { \"v\": [\"Aastavavalija ülekatteaken\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Calendar icon\": { \"v\": [\"Icône de calendrier\"] }, \"Cancel\": { \"v\": [\"Annuler\"] }, \"Clear value\": { \"v\": [\"Effacer la valeur\"] }, \"Close time Picker\": { \"v\": [\"Fermer le sélecteur de temps\"] }, \"Datepicker input\": { \"v\": [\"Entrée du sélecteur de date\"] }, \"Datepicker menu\": { \"v\": [\"Menu du sélecteur de date\"] }, \"Decrement hours\": { \"v\": [\"Diminuer les heures\"] }, \"Decrement minutes\": { \"v\": [\"Diminuer les minutes\"] }, \"Decrement seconds\": { \"v\": [\"Diminuer les secondes\"] }, \"Increment hours\": { \"v\": [\"Augmenter les heures\"] }, \"Increment minutes\": { \"v\": [\"Augmenter les minutes\"] }, \"Increment seconds\": { \"v\": [\"Augmenter les secondes\"] }, \"Month picker\": { \"v\": [\"Sélecteur de mois\"] }, \"Month picker overlay\": { \"v\": [\"Superposition du sélecteur de mois\"] }, \"Next month\": { \"v\": [\"Mois prochain\"] }, \"Next year\": { \"v\": [\"Année prochaine\"] }, \"Now\": { \"v\": [\"Maintenant\"] }, \"Open hours overlay\": { \"v\": [\"Superposition des heures d'ouverture\"] }, \"Open minutes overlay\": { \"v\": [\"Superposition des minutes d'ouverture\"] }, \"Open months overlay\": { \"v\": [\"Superposition des mois ouverts\"] }, \"Open seconds overlay\": { \"v\": [\"Superposition des secondes ouvertes\"] }, \"Open time picker\": { \"v\": [\"Ouvrir le sélecteur de temps\"] }, \"Open years overlay\": { \"v\": [\"Superposition des années ouvertes\"] }, \"Pick\": { \"v\": [\"Choisir\"] }, \"Previous month\": { \"v\": [\"Mois précédent\"] }, \"Previous year\": { \"v\": [\"Année précédente\"] }, \"Select date\": { \"v\": [\"Sélectionnez la date\"] }, \"Select date and time\": { \"v\": [\"Sélectionnez la date et l'heure\"] }, \"Select month\": { \"v\": [\"Sélectionnez le mois\"] }, \"Select time\": { \"v\": [\"Sélectionnez l'heure\"] }, \"Select time range\": { \"v\": [\"Sélectionnez la plage horaire\"] }, \"Select week\": { \"v\": [\"Sélectionnez la semaine\"] }, \"Select year\": { \"v\": [\"Sélectionnez l'année\"] }, \"Switch AM/PM mode\": { \"v\": [\"Basculer le mode Matin/Après-midi\"] }, \"Time picker\": { \"v\": [\"Sélecteur de temps\"] }, \"Time zone\": { \"v\": [\"Fuseau horaire\"] }, \"Toggle overlay\": { \"v\": [\"Basculer la superposition\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Sélecteur d'année\"] }, \"Year picker overlay\": { \"v\": [\"Superposition du sélecteur d’année\"] } } }, { \"l\": \"ga\", \"t\": { \"Calendar icon\": { \"v\": [\"Deilbhín féilire\"] }, \"Cancel\": { \"v\": [\"Cealaigh\"] }, \"Clear value\": { \"v\": [\"Luach soiléir\"] }, \"Close time Picker\": { \"v\": [\"Roghnóir am dúnta\"] }, \"Datepicker input\": { \"v\": [\"Ionchur datepicker\"] }, \"Datepicker menu\": { \"v\": [\"Roghchlár datepicker\"] }, \"Decrement hours\": { \"v\": [\"Laghdaigh uaireanta\"] }, \"Decrement minutes\": { \"v\": [\"Laghdaigh nóiméid \"] }, \"Decrement seconds\": { \"v\": [\"Laghdaigh soicind\"] }, \"Increment hours\": { \"v\": [\"Méadaigh uaireanta\"] }, \"Increment minutes\": { \"v\": [\"Méadaigh nóiméid\"] }, \"Increment seconds\": { \"v\": [\"Méadaigh soicind\"] }, \"Month picker\": { \"v\": [\"Roghnóir míosa\"] }, \"Month picker overlay\": { \"v\": [\"Forleagan roghnóir míosa\"] }, \"Next month\": { \"v\": [\"An mhí seo chugainn\"] }, \"Next year\": { \"v\": [\"An bhliain seo chugainn\"] }, \"Now\": { \"v\": [\"Anois\"] }, \"Open hours overlay\": { \"v\": [\"Forleagan uaireanta oscailte\"] }, \"Open minutes overlay\": { \"v\": [\"Forleagan nóiméad oscailte\"] }, \"Open months overlay\": { \"v\": [\"Forleagan míonna oscailte\"] }, \"Open seconds overlay\": { \"v\": [\"Soicind oscailte forleagan\"] }, \"Open time picker\": { \"v\": [\"Roghnóir am oscailte\"] }, \"Open years overlay\": { \"v\": [\"Forleagan blianta oscailte\"] }, \"Pick\": { \"v\": [\"Pioc\"] }, \"Previous month\": { \"v\": [\"An mhí roimhe sin\"] }, \"Previous year\": { \"v\": [\"Bhliain roimhe sin\"] }, \"Select date\": { \"v\": [\"Roghnaigh dáta\"] }, \"Select date and time\": { \"v\": [\"Roghnaigh dáta agus am\"] }, \"Select month\": { \"v\": [\"Roghnaigh mí\"] }, \"Select time\": { \"v\": [\"Roghnaigh am\"] }, \"Select time range\": { \"v\": [\"Roghnaigh raon ama\"] }, \"Select week\": { \"v\": [\"Roghnaigh seachtain\"] }, \"Select year\": { \"v\": [\"Roghnaigh bliain\"] }, \"Switch AM/PM mode\": { \"v\": [\"Athraigh mód AM/PM\"] }, \"Time picker\": { \"v\": [\"Roghnóir ama\"] }, \"Time zone\": { \"v\": [\"Crios ama\"] }, \"Toggle overlay\": { \"v\": [\"Scoránaigh forleagan\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Roghnóir bliana\"] }, \"Year picker overlay\": { \"v\": [\"Forleagan roghnóir bliana\"] } } }, { \"l\": \"gl\", \"t\": { \"Calendar icon\": { \"v\": [\"Icona do calendario\"] }, \"Cancel\": { \"v\": [\"Cancelar\"] }, \"Clear value\": { \"v\": [\"Limpar o valor\"] }, \"Close time Picker\": { \"v\": [\"Pechar o Selector de hora\"] }, \"Datepicker input\": { \"v\": [\"Entrada do selector de datas\"] }, \"Datepicker menu\": { \"v\": [\"Menú do selector de datas\"] }, \"Decrement hours\": { \"v\": [\"Diminuír as horas\"] }, \"Decrement minutes\": { \"v\": [\"Diminuír os minutos\"] }, \"Decrement seconds\": { \"v\": [\"Diminuír os segundos\"] }, \"Increment hours\": { \"v\": [\"Aumentar as horas\"] }, \"Increment minutes\": { \"v\": [\"Aumentar os minutos\"] }, \"Increment seconds\": { \"v\": [\"Aumentar os segundos\"] }, \"Month picker\": { \"v\": [\"Selector de mes\"] }, \"Month picker overlay\": { \"v\": [\"Superposición do selector de mes\"] }, \"Next month\": { \"v\": [\"Próximo mes\"] }, \"Next year\": { \"v\": [\"Próximo ano\"] }, \"Now\": { \"v\": [\"Agora\"] }, \"Open hours overlay\": { \"v\": [\"Abrir a superposición de horas\"] }, \"Open minutes overlay\": { \"v\": [\"Abrir a superposición de minutos\"] }, \"Open months overlay\": { \"v\": [\"Abrir a superposición de meses\"] }, \"Open seconds overlay\": { \"v\": [\"Abrir a superposición de segundos\"] }, \"Open time picker\": { \"v\": [\"Abrir o selector de hora\"] }, \"Open years overlay\": { \"v\": [\"Abrir a superposición de anos\"] }, \"Pick\": { \"v\": [\"Escoller\"] }, \"Previous month\": { \"v\": [\"Mes pasado\"] }, \"Previous year\": { \"v\": [\"Ano pasado\"] }, \"Select date\": { \"v\": [\"Seleccione a data\"] }, \"Select date and time\": { \"v\": [\"Seleccione a data e a hora\"] }, \"Select month\": { \"v\": [\"Seleccione o mes\"] }, \"Select time\": { \"v\": [\"Seleccione a hora\"] }, \"Select time range\": { \"v\": [\" Seleccione o intervalo de tempo\"] }, \"Select week\": { \"v\": [\"Seleccione a semana\"] }, \"Select year\": { \"v\": [\"Seleccione o ano\"] }, \"Switch AM/PM mode\": { \"v\": [\"Alternar o modo AM/PM\"] }, \"Time picker\": { \"v\": [\"Selector de hora\"] }, \"Time zone\": { \"v\": [\"Fuso horario\"] }, \"Toggle overlay\": { \"v\": [\"Alternar a sobreposición\"] }, \"W\": { \"v\": [\"S\"] }, \"Year picker\": { \"v\": [\"Selector de ano\"] }, \"Year picker overlay\": { \"v\": [\"Superposición do selector de ano\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Calendar icon\": { \"v\": [\"カレンダーのアイコン\"] }, \"Cancel\": { \"v\": [\"キャンセル\"] }, \"Clear value\": { \"v\": [\"値をクリア\"] }, \"Close time Picker\": { \"v\": [\"時間ピッカーを閉じる\"] }, \"Datepicker input\": { \"v\": [\"データピッカー入力\"] }, \"Datepicker menu\": { \"v\": [\"データピッカーメニュー\"] }, \"Decrement hours\": { \"v\": [\"時間を減らす\"] }, \"Decrement minutes\": { \"v\": [\"分を減らす\"] }, \"Decrement seconds\": { \"v\": [\"秒を減らす\"] }, \"Increment hours\": { \"v\": [\"時間を増やす\"] }, \"Increment minutes\": { \"v\": [\"分を増やす\"] }, \"Increment seconds\": { \"v\": [\"秒を増やす\"] }, \"Month picker\": { \"v\": [\"月ピッカー\"] }, \"Month picker overlay\": { \"v\": [\"月ピッカーオーバーレイ\"] }, \"Next month\": { \"v\": [\"次月\"] }, \"Next year\": { \"v\": [\"次年\"] }, \"Now\": { \"v\": [\"現在\"] }, \"Open hours overlay\": { \"v\": [\"時間オーバーレイを開く\"] }, \"Open minutes overlay\": { \"v\": [\"分オーバーレイを開く\"] }, \"Open months overlay\": { \"v\": [\"月オーバーレイを開く\"] }, \"Open seconds overlay\": { \"v\": [\"秒オーバーレイを開く\"] }, \"Open time picker\": { \"v\": [\"時間ピッカーを開く\"] }, \"Open years overlay\": { \"v\": [\"年オーバーレイを開く\"] }, \"Pick\": { \"v\": [\"選択\"] }, \"Previous month\": { \"v\": [\"前月\"] }, \"Previous year\": { \"v\": [\"前年\"] }, \"Select date\": { \"v\": [\"日付を選択\"] }, \"Select date and time\": { \"v\": [\"日付と時刻を選択\"] }, \"Select month\": { \"v\": [\"月を選択\"] }, \"Select time\": { \"v\": [\"時刻を選択\"] }, \"Select time range\": { \"v\": [\"時間範囲を選択\"] }, \"Select week\": { \"v\": [\"週を選択\"] }, \"Select year\": { \"v\": [\"年を選択\"] }, \"Switch AM/PM mode\": { \"v\": [\"AM/PMモードの切り替え\"] }, \"Time picker\": { \"v\": [\"時刻ピッカー\"] }, \"Toggle overlay\": { \"v\": [\"オーバーレイの切り替え\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"年ピッカー\"] }, \"Year picker overlay\": { \"v\": [\"年ピッカーオーバーレイ\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Calendar icon\": { \"v\": [\"캘린더 아이콘\"] }, \"Cancel\": { \"v\": [\"취소\"] }, \"Clear value\": { \"v\": [\"값 지우기\"] }, \"Close time Picker\": { \"v\": [\"시간 선택기 닫기\"] }, \"Datepicker input\": { \"v\": [\"날짜 선택기 입력\"] }, \"Datepicker menu\": { \"v\": [\"날짜 입력기 메뉴\"] }, \"Decrement hours\": { \"v\": [\"시 감소\"] }, \"Decrement minutes\": { \"v\": [\"분 감소\"] }, \"Decrement seconds\": { \"v\": [\"초 감소\"] }, \"Increment hours\": { \"v\": [\"시 증가\"] }, \"Increment minutes\": { \"v\": [\"분 증가\"] }, \"Increment seconds\": { \"v\": [\"초 증가\"] }, \"Month picker\": { \"v\": [\"월 선택기\"] }, \"Month picker overlay\": { \"v\": [\"월 선택기 오버레이\"] }, \"Next month\": { \"v\": [\"다음 달\"] }, \"Next year\": { \"v\": [\"다음 해\"] }, \"Now\": { \"v\": [\"현재\"] }, \"Open hours overlay\": { \"v\": [\"시 오버레이 열기\"] }, \"Open minutes overlay\": { \"v\": [\"분 오버레이 열기\"] }, \"Open months overlay\": { \"v\": [\"월 오버레이 열기\"] }, \"Open seconds overlay\": { \"v\": [\"초 오버레이 열기\"] }, \"Open time picker\": { \"v\": [\"시간 선택기 열기\"] }, \"Open years overlay\": { \"v\": [\"년 오버레이 열기\"] }, \"Pick\": { \"v\": [\"선택\"] }, \"Previous month\": { \"v\": [\"이전 달\"] }, \"Previous year\": { \"v\": [\"이전 해\"] }, \"Select date\": { \"v\": [\"날짜 선택\"] }, \"Select date and time\": { \"v\": [\"날짜와 시간 선택\"] }, \"Select month\": { \"v\": [\"월 선택\"] }, \"Select time\": { \"v\": [\"시간 선택\"] }, \"Select time range\": { \"v\": [\"시간 구간 선택\"] }, \"Select week\": { \"v\": [\"주 선택\"] }, \"Select year\": { \"v\": [\"년도 선택\"] }, \"Switch AM/PM mode\": { \"v\": [\"AM/PM 모드 전환\"] }, \"Time picker\": { \"v\": [\"시간 선택기\"] }, \"Toggle overlay\": { \"v\": [\"오버레이 토글\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"년도 선택기\"] }, \"Year picker overlay\": { \"v\": [\"년도 선택기 오버레이\"] } } }, { \"l\": \"lo\", \"t\": { \"Calendar icon\": { \"v\": [\"ໄອຄອນປະຕິທິນ\"] }, \"Cancel\": { \"v\": [\"ຍົກເລີກ\"] }, \"Clear value\": { \"v\": [\"ລຶບຄ່າ\"] }, \"Close time Picker\": { \"v\": [\"ປິດໂຕເລືອກເວລາ\"] }, \"Datepicker input\": { \"v\": [\"ຊ່ອງປ້ອນວັນທີ\"] }, \"Datepicker menu\": { \"v\": [\"ເມນູໂຕເລືອກວັນທີ\"] }, \"Decrement hours\": { \"v\": [\"ຫຼຸດຊົ່ວໂມງ\"] }, \"Decrement minutes\": { \"v\": [\"ຫຼຸດນາທີ\"] }, \"Decrement seconds\": { \"v\": [\"ຫຼຸດວິນາທີ\"] }, \"Increment hours\": { \"v\": [\"ເພີ່ມຊົ່ວໂມງ\"] }, \"Increment minutes\": { \"v\": [\"ເພີ່ມນາທີ\"] }, \"Increment seconds\": { \"v\": [\"ເພີ່ມວິນາທີ\"] }, \"Month picker\": { \"v\": [\"ໂຕເລືອກເດືອນ\"] }, \"Month picker overlay\": { \"v\": [\"ໜ້າຕ່າງໂຕເລືອກເດືອນ\"] }, \"Next month\": { \"v\": [\"ເດືອນໜ້າ\"] }, \"Next year\": { \"v\": [\"ປີໜ້າ\"] }, \"Now\": { \"v\": [\"ຕອນນີ້\"] }, \"Open hours overlay\": { \"v\": [\"ເປີດໜ້າຕ່າງເລືອກຊົ່ວໂມງ\"] }, \"Open minutes overlay\": { \"v\": [\"ເປີດໜ້າຕ່າງເລືອກນາທີ\"] }, \"Open months overlay\": { \"v\": [\"ເປີດໜ້າຕ່າງເລືອກເດືອນ\"] }, \"Open seconds overlay\": { \"v\": [\"ເປີດໜ້າຕ່າງເລືອກວິນາທີ\"] }, \"Open time picker\": { \"v\": [\"ເປີດໂຕເລືອກເວລາ\"] }, \"Open years overlay\": { \"v\": [\"ເປີດໜ້າຕ່າງເລືອກປີ\"] }, \"Pick\": { \"v\": [\"ເລືອກ\"] }, \"Previous month\": { \"v\": [\"ເດືອນກ່ອນ\"] }, \"Previous year\": { \"v\": [\"ປີກ່ອນ\"] }, \"Select date\": { \"v\": [\"ເລືອກວັນທີ\"] }, \"Select date and time\": { \"v\": [\"ເລືອກວັນທີ ແລະ ເວລາ\"] }, \"Select month\": { \"v\": [\"ເລືອກເດືອນ\"] }, \"Select time\": { \"v\": [\"ເລືອກເວລາ\"] }, \"Select time range\": { \"v\": [\"ເລືອກຊ່ວງເວລາ\"] }, \"Select week\": { \"v\": [\"ເລືອກອາທິດ\"] }, \"Select year\": { \"v\": [\"ເລືອກປີ\"] }, \"Switch AM/PM mode\": { \"v\": [\"ສະຫຼັບໂໝດ AM/PM\"] }, \"Time picker\": { \"v\": [\"ໂຕເລືອກເວລາ\"] }, \"Toggle overlay\": { \"v\": [\"ສະຫຼັບໜ້າຕ່າງ\"] }, \"W\": { \"v\": [\"ອ\"] }, \"Year picker\": { \"v\": [\"ໂຕເລືອກປີ\"] }, \"Year picker overlay\": { \"v\": [\"ໜ້າຕ່າງໂຕເລືອກປີ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Calendar icon\": { \"v\": [\"Икона за календар\"] }, \"Cancel\": { \"v\": [\"Откажи\"] }, \"Clear value\": { \"v\": [\"Исчисти вредност\"] }, \"Close time Picker\": { \"v\": [\"Затвори избирач на време\"] }, \"Datepicker input\": { \"v\": [\"Поле за избор на датум\"] }, \"Datepicker menu\": { \"v\": [\"Мени за избор на датум\"] }, \"Decrement hours\": { \"v\": [\"Намали часови\"] }, \"Decrement minutes\": { \"v\": [\"Намали минути\"] }, \"Decrement seconds\": { \"v\": [\"Намали секунди\"] }, \"Increment hours\": { \"v\": [\"Зголеми часови\"] }, \"Increment minutes\": { \"v\": [\"Зголеми минути\"] }, \"Increment seconds\": { \"v\": [\"Зголеми секунди\"] }, \"Month picker\": { \"v\": [\"Избор на месец\"] }, \"Month picker overlay\": { \"v\": [\"Надолжен избор на месец\"] }, \"Next month\": { \"v\": [\"Следен месец\"] }, \"Next year\": { \"v\": [\"Следна година\"] }, \"Now\": { \"v\": [\"Сега\"] }, \"Open hours overlay\": { \"v\": [\"Отвори преклоп за часови\"] }, \"Open minutes overlay\": { \"v\": [\"Отвори преклоп за минути\"] }, \"Open months overlay\": { \"v\": [\"Отвори преклоп за месеци\"] }, \"Open seconds overlay\": { \"v\": [\"Отвори преклоп за секунди\"] }, \"Open time picker\": { \"v\": [\"Отвори избор на време\"] }, \"Open years overlay\": { \"v\": [\"Отвори преклоп за години\"] }, \"Pick\": { \"v\": [\"Избери\"] }, \"Previous month\": { \"v\": [\"Предходен месец\"] }, \"Previous year\": { \"v\": [\"Предходна година\"] }, \"Select date\": { \"v\": [\"Избери датум\"] }, \"Select date and time\": { \"v\": [\"Избери датум и време\"] }, \"Select month\": { \"v\": [\"Избери месец\"] }, \"Select time\": { \"v\": [\"Избери време\"] }, \"Select time range\": { \"v\": [\"Избери времески опсег\"] }, \"Select week\": { \"v\": [\"Избери недела\"] }, \"Select year\": { \"v\": [\"Избери година\"] }, \"Switch AM/PM mode\": { \"v\": [\"Смени AM/PM режим\"] }, \"Time picker\": { \"v\": [\"Избирач на време\"] }, \"Toggle overlay\": { \"v\": [\"Вклучи/исклучи преклоп\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Избор на година\"] }, \"Year picker overlay\": { \"v\": [\"Надолжен избор на година\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalender-pictogram\"] }, \"Cancel\": { \"v\": [\"Annuleren\"] }, \"Clear value\": { \"v\": [\"Waarde wissen\"] }, \"Close time Picker\": { \"v\": [\"Tijdkiezer sluiten\"] }, \"Datepicker input\": { \"v\": [\"Datumkiezer invoer\"] }, \"Datepicker menu\": { \"v\": [\"Datumkiezer menu\"] }, \"Decrement hours\": { \"v\": [\"Uren verminderen\"] }, \"Decrement minutes\": { \"v\": [\"Minuten verminderen\"] }, \"Decrement seconds\": { \"v\": [\"Seconden verminderen\"] }, \"Increment hours\": { \"v\": [\"Uren vermeerderen\"] }, \"Increment minutes\": { \"v\": [\"Minuten vermeerderen\"] }, \"Increment seconds\": { \"v\": [\"Seconden vermeerderen\"] }, \"Month picker\": { \"v\": [\"Maandkiezer\"] }, \"Month picker overlay\": { \"v\": [\"Maandkiezer-overlay\"] }, \"Next month\": { \"v\": [\"Volgende maand\"] }, \"Next year\": { \"v\": [\"Volgend jaar\"] }, \"Now\": { \"v\": [\"Nu\"] }, \"Open hours overlay\": { \"v\": [\"Uren-overlay openen\"] }, \"Open minutes overlay\": { \"v\": [\"Minuten-overlay openen\"] }, \"Open months overlay\": { \"v\": [\"Maanden-overlay openen\"] }, \"Open seconds overlay\": { \"v\": [\"Seconden-overlay openen\"] }, \"Open time picker\": { \"v\": [\"Tijdkiezer openen\"] }, \"Open years overlay\": { \"v\": [\"Jaren-overlay openen\"] }, \"Pick\": { \"v\": [\"Kiezen\"] }, \"Previous month\": { \"v\": [\"Vorige maand\"] }, \"Previous year\": { \"v\": [\"Vorig jaar\"] }, \"Select date\": { \"v\": [\"Selecteer datum\"] }, \"Select date and time\": { \"v\": [\"Selecteer datum en tijd\"] }, \"Select month\": { \"v\": [\"Selecteer maand\"] }, \"Select time\": { \"v\": [\"Selecteer tijd\"] }, \"Select time range\": { \"v\": [\"Selecteer tijdsbereik\"] }, \"Select week\": { \"v\": [\"Selecteer week\"] }, \"Select year\": { \"v\": [\"Selecteer jaar\"] }, \"Switch AM/PM mode\": { \"v\": [\"AM/PM-modus wisselen\"] }, \"Time picker\": { \"v\": [\"Tijdkiezer\"] }, \"Toggle overlay\": { \"v\": [\"Overlay wisselen\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Jaarkiezer\"] }, \"Year picker overlay\": { \"v\": [\"Jaarkiezer-overlay\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Calendar icon\": { \"v\": [\"Ícone de calendário\"] }, \"Cancel\": { \"v\": [\"Cancelar\"] }, \"Clear value\": { \"v\": [\"Limpar valor\"] }, \"Close time Picker\": { \"v\": [\"Fechar Seletor de tempo\"] }, \"Datepicker input\": { \"v\": [\"entrada do seletor de data\"] }, \"Datepicker menu\": { \"v\": [\"menu do seletor de data\"] }, \"Decrement hours\": { \"v\": [\"Diminuir horas\"] }, \"Decrement minutes\": { \"v\": [\"Diminuir minutos\"] }, \"Decrement seconds\": { \"v\": [\"Diminuir segundos\"] }, \"Increment hours\": { \"v\": [\"Aumentar horas\"] }, \"Increment minutes\": { \"v\": [\"Aumentar minutos\"] }, \"Increment seconds\": { \"v\": [\"Aumentar segundos\"] }, \"Month picker\": { \"v\": [\"Seletor de meses\"] }, \"Month picker overlay\": { \"v\": [\"Sobreposição do seletor de meses\"] }, \"Next month\": { \"v\": [\"Próximo mês\"] }, \"Next year\": { \"v\": [\"Próximo ano\"] }, \"Now\": { \"v\": [\"Agora\"] }, \"Open hours overlay\": { \"v\": [\"Abrir sobreposição de horas\"] }, \"Open minutes overlay\": { \"v\": [\"Abrir sobreposição de minutos\"] }, \"Open months overlay\": { \"v\": [\"Abrir sobreposição de meses\"] }, \"Open seconds overlay\": { \"v\": [\"Abrir sobreposição de segundos\"] }, \"Open time picker\": { \"v\": [\"Abrir seletor de tempo\"] }, \"Open years overlay\": { \"v\": [\"Abrir sobreposição de anos\"] }, \"Pick\": { \"v\": [\"Escolher\"] }, \"Previous month\": { \"v\": [\"Mês anterior\"] }, \"Previous year\": { \"v\": [\"Ano anterior\"] }, \"Select date\": { \"v\": [\"Selecione data\"] }, \"Select date and time\": { \"v\": [\"Selecione data e hora\"] }, \"Select month\": { \"v\": [\"Selecione mês\"] }, \"Select time\": { \"v\": [\"Selecione hora\"] }, \"Select time range\": { \"v\": [\"Selecione intervalo de tempo\"] }, \"Select week\": { \"v\": [\"Selecione semana\"] }, \"Select year\": { \"v\": [\"Selecione ano\"] }, \"Switch AM/PM mode\": { \"v\": [\"Alternar modo AM/PM\"] }, \"Time picker\": { \"v\": [\"Seletor de tempo\"] }, \"Time zone\": { \"v\": [\"Fuso horário\"] }, \"Toggle overlay\": { \"v\": [\"Alternar sobreposição\"] }, \"W\": { \"v\": [\"S\"] }, \"Year picker\": { \"v\": [\"Seletor de ano\"] }, \"Year picker overlay\": { \"v\": [\"Sobreposição do seletor de ano\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Calendar icon\": { \"v\": [\"Ícone de calendário\"] }, \"Cancel\": { \"v\": [\"Cancelar\"] }, \"Clear value\": { \"v\": [\"Limpar valor\"] }, \"Close time Picker\": { \"v\": [\"Fechar seletor de hora\"] }, \"Datepicker input\": { \"v\": [\"Campo do seletor de data\"] }, \"Datepicker menu\": { \"v\": [\"Menu do seletor de data\"] }, \"Decrement hours\": { \"v\": [\"Diminuir horas\"] }, \"Decrement minutes\": { \"v\": [\"Diminuir minutos\"] }, \"Decrement seconds\": { \"v\": [\"Diminuir segundos\"] }, \"Increment hours\": { \"v\": [\"Aumentar horas\"] }, \"Increment minutes\": { \"v\": [\"Aumentar minutos\"] }, \"Increment seconds\": { \"v\": [\"Aumentar segundos\"] }, \"Month picker\": { \"v\": [\"Seletor de mês\"] }, \"Month picker overlay\": { \"v\": [\"Janela do seletor de mês\"] }, \"Next month\": { \"v\": [\"Próximo mês\"] }, \"Next year\": { \"v\": [\"Próximo ano\"] }, \"Now\": { \"v\": [\"Agora\"] }, \"Open hours overlay\": { \"v\": [\"Abrir janela de horas\"] }, \"Open minutes overlay\": { \"v\": [\"Abrir janela de minutos\"] }, \"Open months overlay\": { \"v\": [\"Abrir janela de meses\"] }, \"Open seconds overlay\": { \"v\": [\"Abrir janela de segundos\"] }, \"Open time picker\": { \"v\": [\"Abrir seletor de hora\"] }, \"Open years overlay\": { \"v\": [\"Abrir janela de anos\"] }, \"Pick\": { \"v\": [\"Selecionar\"] }, \"Previous month\": { \"v\": [\"Mês anterior\"] }, \"Previous year\": { \"v\": [\"Ano anterior\"] }, \"Select date\": { \"v\": [\"Selecionar data\"] }, \"Select date and time\": { \"v\": [\"Selecionar data e hora\"] }, \"Select month\": { \"v\": [\"Selecionar mês\"] }, \"Select time\": { \"v\": [\"Selecionar hora\"] }, \"Select time range\": { \"v\": [\"Selecionar intervalo de horas\"] }, \"Select week\": { \"v\": [\"Selecionar semana\"] }, \"Select year\": { \"v\": [\"Selecionar ano\"] }, \"Switch AM/PM mode\": { \"v\": [\"Alternar modo AM/PM\"] }, \"Time picker\": { \"v\": [\"Seletor de hora\"] }, \"Toggle overlay\": { \"v\": [\"Alternar sobreposição\"] }, \"W\": { \"v\": [\"S\"] }, \"Year picker\": { \"v\": [\"Seletor de ano\"] }, \"Year picker overlay\": { \"v\": [\"Janela do seletor de ano\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Calendar icon\": { \"v\": [\"Значок календаря\"] }, \"Cancel\": { \"v\": [\"Отмена\"] }, \"Clear value\": { \"v\": [\"Очистить значение\"] }, \"Close time Picker\": { \"v\": [\"Закрыть выбор времени\"] }, \"Datepicker input\": { \"v\": [\"Поле выбора даты\"] }, \"Datepicker menu\": { \"v\": [\"Меню выбора даты\"] }, \"Decrement hours\": { \"v\": [\"Уменьшить количество часов\"] }, \"Decrement minutes\": { \"v\": [\"Уменьшить количество минут\"] }, \"Decrement seconds\": { \"v\": [\"Уменьшить количество секунд\"] }, \"Increment hours\": { \"v\": [\"Увеличить количество часов\"] }, \"Increment minutes\": { \"v\": [\"Увеличить количество минут\"] }, \"Increment seconds\": { \"v\": [\"Увеличить количество секунд\"] }, \"Month picker\": { \"v\": [\"Выбор месяца\"] }, \"Month picker overlay\": { \"v\": [\"Окно выбора месяца\"] }, \"Next month\": { \"v\": [\"Следующий месяц\"] }, \"Next year\": { \"v\": [\"Следующий год\"] }, \"Now\": { \"v\": [\"Сейчас\"] }, \"Open hours overlay\": { \"v\": [\"Открыть окно выбора часов\"] }, \"Open minutes overlay\": { \"v\": [\"Открыть окно выбора минут\"] }, \"Open months overlay\": { \"v\": [\"Открыть окно выбора месяца\"] }, \"Open seconds overlay\": { \"v\": [\"Открыть окно выбора секунд\"] }, \"Open time picker\": { \"v\": [\"Открыть средство выбора времени\"] }, \"Open years overlay\": { \"v\": [\"Открыть окно выбора года\"] }, \"Pick\": { \"v\": [\"Выбор\"] }, \"Previous month\": { \"v\": [\"Предыдущий месяц\"] }, \"Previous year\": { \"v\": [\"Предыдущий год\"] }, \"Select date\": { \"v\": [\"Выбрать дату\"] }, \"Select date and time\": { \"v\": [\"Выбрать дату и время\"] }, \"Select month\": { \"v\": [\"Выбрать месяц\"] }, \"Select time\": { \"v\": [\"Выбрать время\"] }, \"Select time range\": { \"v\": [\"Выбрать временной диапазон\"] }, \"Select week\": { \"v\": [\"Выбрать неделю\"] }, \"Select year\": { \"v\": [\"Выбрать год\"] }, \"Switch AM/PM mode\": { \"v\": [\"Переключение режима AM/PM\"] }, \"Time picker\": { \"v\": [\"Выбор времени\"] }, \"Time zone\": { \"v\": [\"Часовой пояс\"] }, \"Toggle overlay\": { \"v\": [\"Переключить панель\"] }, \"W\": { \"v\": [\"Н\"] }, \"Year picker\": { \"v\": [\"Выбор года\"] }, \"Year picker overlay\": { \"v\": [\"Окно выбора года\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Calendar icon\": { \"v\": [\"Икона календара\"] }, \"Cancel\": { \"v\": [\"Откажи\"] }, \"Clear value\": { \"v\": [\"Обриши вредност\"] }, \"Close time Picker\": { \"v\": [\"Затвори бирач времена\"] }, \"Datepicker input\": { \"v\": [\"Улаз бирача датума\"] }, \"Datepicker menu\": { \"v\": [\"Мени бирача датума\"] }, \"Decrement hours\": { \"v\": [\"Умањи сате\"] }, \"Decrement minutes\": { \"v\": [\"Умањи минуте\"] }, \"Decrement seconds\": { \"v\": [\"Умањи секунде\"] }, \"Increment hours\": { \"v\": [\"Увећај сате\"] }, \"Increment minutes\": { \"v\": [\"Увећај минуте\"] }, \"Increment seconds\": { \"v\": [\"Увећај секунде\"] }, \"Month picker\": { \"v\": [\"Бирач месеца\"] }, \"Month picker overlay\": { \"v\": [\"Маска бирача месеца\"] }, \"Next month\": { \"v\": [\"Наредни месец\"] }, \"Next year\": { \"v\": [\"Наредна година\"] }, \"Now\": { \"v\": [\"Сада\"] }, \"Open hours overlay\": { \"v\": [\"Отвори маску сати\"] }, \"Open minutes overlay\": { \"v\": [\"Отвори маску минута\"] }, \"Open months overlay\": { \"v\": [\"Отвори маску месеци\"] }, \"Open seconds overlay\": { \"v\": [\"Отвори маску секунди\"] }, \"Open time picker\": { \"v\": [\"Отвори бирач времена\"] }, \"Open years overlay\": { \"v\": [\"Отвори маску година\"] }, \"Pick\": { \"v\": [\"Изабери\"] }, \"Previous month\": { \"v\": [\"Претходни месец\"] }, \"Previous year\": { \"v\": [\"Претходна година\"] }, \"Select date\": { \"v\": [\"Изаберите датум\"] }, \"Select date and time\": { \"v\": [\"Изаберите датум и време\"] }, \"Select month\": { \"v\": [\"Изаберите месец\"] }, \"Select time\": { \"v\": [\"Изаберите време\"] }, \"Select time range\": { \"v\": [\"Изаберите опсег времена\"] }, \"Select week\": { \"v\": [\"Изаберите недељу\"] }, \"Select year\": { \"v\": [\"Изаберите годину\"] }, \"Switch AM/PM mode\": { \"v\": [\"Укљ./Искљ. AM/PM режим\"] }, \"Time picker\": { \"v\": [\"Бирач времена\"] }, \"Toggle overlay\": { \"v\": [\"Укљ./Искљ. маску\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Бирач године\"] }, \"Year picker overlay\": { \"v\": [\"Маска бирача године\"] } } }, { \"l\": \"sv\", \"t\": {} }, { \"l\": \"tr\", \"t\": { \"Calendar icon\": { \"v\": [\"Takvim simgesi\"] }, \"Cancel\": { \"v\": [\"İptal\"] }, \"Clear value\": { \"v\": [\"Değeri temizle\"] }, \"Close time Picker\": { \"v\": [\"Zaman seçiciyi kapat\"] }, \"Datepicker input\": { \"v\": [\"Tarih seçici girişi\"] }, \"Datepicker menu\": { \"v\": [\"Tarih seçici menüsü\"] }, \"Decrement hours\": { \"v\": [\"Azalma saati\"] }, \"Decrement minutes\": { \"v\": [\"Azalma dakikası\"] }, \"Decrement seconds\": { \"v\": [\"Azalma saniyesi\"] }, \"Increment hours\": { \"v\": [\"Artma saati\"] }, \"Increment minutes\": { \"v\": [\"Artma dakikası\"] }, \"Increment seconds\": { \"v\": [\"Artma saniyesi\"] }, \"Month picker\": { \"v\": [\"Ay seçici\"] }, \"Month picker overlay\": { \"v\": [\"Ay seçici kaplaması\"] }, \"Next month\": { \"v\": [\"Sonraki ay\"] }, \"Next year\": { \"v\": [\"Sonraki yıl\"] }, \"Now\": { \"v\": [\"Şimdi\"] }, \"Open hours overlay\": { \"v\": [\"Açık saatler kaplaması\"] }, \"Open minutes overlay\": { \"v\": [\"Dakika kaplamasını aç\"] }, \"Open months overlay\": { \"v\": [\"Ay kaplamasını aç\"] }, \"Open seconds overlay\": { \"v\": [\"Saniye kaplamasını aç\"] }, \"Open time picker\": { \"v\": [\"Saat seçiciyi aç\"] }, \"Open years overlay\": { \"v\": [\"Yıl kaplamasını aç\"] }, \"Pick\": { \"v\": [\"Seçin\"] }, \"Previous month\": { \"v\": [\"Önceki ay\"] }, \"Previous year\": { \"v\": [\"Önceki yıl\"] }, \"Select date\": { \"v\": [\"Tarih seçin\"] }, \"Select date and time\": { \"v\": [\"Tarih ve saat seçin\"] }, \"Select month\": { \"v\": [\"Ay seçin\"] }, \"Select time\": { \"v\": [\"Saat seçin\"] }, \"Select time range\": { \"v\": [\"Saat aralığı seçin\"] }, \"Select week\": { \"v\": [\"Hafta seçin\"] }, \"Select year\": { \"v\": [\"Yıl seçin\"] }, \"Switch AM/PM mode\": { \"v\": [\"ÖÖ/ÖS kipine geç\"] }, \"Time picker\": { \"v\": [\"Saat seçici\"] }, \"Time zone\": { \"v\": [\"Saat dilimi\"] }, \"Toggle overlay\": { \"v\": [\"Kaplamayı aç/kapat\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Yıl seçici\"] }, \"Year picker overlay\": { \"v\": [\"Yıl seçici kaplaması\"] } } }, { \"l\": \"uk\", \"t\": { \"Calendar icon\": { \"v\": [\"Значок календаря\"] }, \"Cancel\": { \"v\": [\"Скасувати\"] }, \"Clear value\": { \"v\": [\"Очистити значення\"] }, \"Close time Picker\": { \"v\": [\"Закрити вибір часу\"] }, \"Datepicker input\": { \"v\": [\"Вибір дати\"] }, \"Datepicker menu\": { \"v\": [\"Меню вибору дати\"] }, \"Decrement hours\": { \"v\": [\"Зменшення годин\"] }, \"Decrement minutes\": { \"v\": [\"Зменшення хвилин\"] }, \"Decrement seconds\": { \"v\": [\"Зменшення секунд\"] }, \"Increment hours\": { \"v\": [\"Збільшення годин\"] }, \"Increment minutes\": { \"v\": [\"Збільшення хвилин\"] }, \"Increment seconds\": { \"v\": [\"Збільшення секунд\"] }, \"Month picker\": { \"v\": [\"Вибір місяця\"] }, \"Month picker overlay\": { \"v\": [\"Напис вибору місяця\"] }, \"Next month\": { \"v\": [\"Наступний місяць\"] }, \"Next year\": { \"v\": [\"Наступний рік\"] }, \"Now\": { \"v\": [\"Зараз\"] }, \"Open hours overlay\": { \"v\": [\"Відкрити напис годин\"] }, \"Open minutes overlay\": { \"v\": [\"Відкрити напис хвилин\"] }, \"Open months overlay\": { \"v\": [\"Відкрити напис місяців\"] }, \"Open seconds overlay\": { \"v\": [\"Відкрити напис секунд\"] }, \"Open time picker\": { \"v\": [\"Відкрити вибір часу\"] }, \"Open years overlay\": { \"v\": [\"Відкрити напис років\"] }, \"Pick\": { \"v\": [\"Вибрати\"] }, \"Previous month\": { \"v\": [\"Попередній місяць\"] }, \"Previous year\": { \"v\": [\"Попередній рік\"] }, \"Select date\": { \"v\": [\"Вибрати дату\"] }, \"Select date and time\": { \"v\": [\"Вибрати дату та час\"] }, \"Select month\": { \"v\": [\"Вибрати місяць\"] }, \"Select time\": { \"v\": [\"Вибрати час\"] }, \"Select time range\": { \"v\": [\"Вибрати проміжок часу\"] }, \"Select week\": { \"v\": [\"Вибрати тиждень\"] }, \"Select year\": { \"v\": [\"Вибрати рік\"] }, \"Switch AM/PM mode\": { \"v\": [\"Перемкнути показ по полудні/до полудня\"] }, \"Time picker\": { \"v\": [\"Вибір часу\"] }, \"Toggle overlay\": { \"v\": [\"Перемкнути напис\"] }, \"W\": { \"v\": [\"Тиж.\"] }, \"Year picker\": { \"v\": [\"Вибір року\"] }, \"Year picker overlay\": { \"v\": [\"Напис вибору року\"] } } }, { \"l\": \"uz\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendar belgisi\"] }, \"Cancel\": { \"v\": [\"Bekor qilish\"] }, \"Clear value\": { \"v\": [\"Qiymatni tozalash\"] }, \"Close time Picker\": { \"v\": [\"Vaqtni tanlash vositasini yopish\"] }, \"Datepicker input\": { \"v\": [\"Sana tanlash vositasi kiritish\"] }, \"Datepicker menu\": { \"v\": [\"Sana tanlash menyusi\"] }, \"Decrement hours\": { \"v\": [\"Ish vaqtini qisqartirish\"] }, \"Decrement minutes\": { \"v\": [\"Daqiqalarni kamaytirish\"] }, \"Decrement seconds\": { \"v\": [\"Soniyalarni kamaytirish\"] }, \"Increment hours\": { \"v\": [\"Ish soatlarini oshirish\"] }, \"Increment minutes\": { \"v\": [\"Daqiqalarni oshiring\"] }, \"Increment seconds\": { \"v\": [\"Soniyalarni ko'paytirish\"] }, \"Month picker\": { \"v\": [\"Oyni tanlovchi\"] }, \"Month picker overlay\": { \"v\": [\"Oyni tanlash vositasi qoplamasi\"] }, \"Next month\": { \"v\": [\"Keyingi oy\"] }, \"Next year\": { \"v\": [\"Keyingi yil\"] }, \"Now\": { \"v\": [\"Hozir\"] }, \"Open hours overlay\": { \"v\": [\"Ochiq ish soatlari\"] }, \"Open minutes overlay\": { \"v\": [\"Ochiq daqiqalar qoplamasi\"] }, \"Open months overlay\": { \"v\": [\"Ochiq oylik qoplama\"] }, \"Open seconds overlay\": { \"v\": [\"Ochiq soniyalar qoplamasi\"] }, \"Open time picker\": { \"v\": [\"Vaqt tanlagichni ochish\"] }, \"Open years overlay\": { \"v\": [\"Yillar qoplamasini ochish\"] }, \"Pick\": { \"v\": [\"Tanlash\"] }, \"Previous month\": { \"v\": [\"Oldingi oy\"] }, \"Previous year\": { \"v\": [\"O'tgan yil\"] }, \"Select date\": { \"v\": [\"Sana tanlang\"] }, \"Select date and time\": { \"v\": [\"Sana va vaqtni tanlang\"] }, \"Select month\": { \"v\": [\"Oyni tanlang\"] }, \"Select time\": { \"v\": [\"Oyni tanlang\"] }, \"Select time range\": { \"v\": [\"Vaqt oralig'ini tanlang\"] }, \"Select week\": { \"v\": [\"Haftani tanlang\"] }, \"Select year\": { \"v\": [\"Yilni tanlang\"] }, \"Switch AM/PM mode\": { \"v\": [\"AM/PM rejimini almashtiring\"] }, \"Time picker\": { \"v\": [\"Vaqtni tanlovchi\"] }, \"Toggle overlay\": { \"v\": [\"Qoplamani almashtirish\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Yilni tanlovchi\"] }, \"Year picker overlay\": { \"v\": [\"Yilni tanlash vositasi\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Calendar icon\": { \"v\": [\"行事曆圖示\"] }, \"Cancel\": { \"v\": [\"取消\"] }, \"Clear value\": { \"v\": [\"清除值\"] }, \"Close time Picker\": { \"v\": [\"關閉時間挑選器\"] }, \"Datepicker input\": { \"v\": [\"日期挑選器輸入\"] }, \"Datepicker menu\": { \"v\": [\"日期挑選器選單\"] }, \"Decrement hours\": { \"v\": [\"小時遞減\"] }, \"Decrement minutes\": { \"v\": [\"分鐘遞減\"] }, \"Decrement seconds\": { \"v\": [\"秒遞減\"] }, \"Increment hours\": { \"v\": [\"小時遞增\"] }, \"Increment minutes\": { \"v\": [\"分鐘遞增\"] }, \"Increment seconds\": { \"v\": [\"秒遞增\"] }, \"Month picker\": { \"v\": [\"月挑選器\"] }, \"Month picker overlay\": { \"v\": [\"月挑選器覆蓋層\"] }, \"Next month\": { \"v\": [\"下個月\"] }, \"Next year\": { \"v\": [\"明年\"] }, \"Now\": { \"v\": [\"現在\"] }, \"Open hours overlay\": { \"v\": [\"開啟小時覆蓋層\"] }, \"Open minutes overlay\": { \"v\": [\"開啟分鐘覆蓋層\"] }, \"Open months overlay\": { \"v\": [\"開啟月覆蓋層\"] }, \"Open seconds overlay\": { \"v\": [\"開啟秒覆蓋層\"] }, \"Open time picker\": { \"v\": [\"開啟時間挑選器\"] }, \"Open years overlay\": { \"v\": [\"開啟年覆蓋層\"] }, \"Pick\": { \"v\": [\"挑選\"] }, \"Previous month\": { \"v\": [\"上個月\"] }, \"Previous year\": { \"v\": [\"去年\"] }, \"Select date\": { \"v\": [\"選取日期\"] }, \"Select date and time\": { \"v\": [\"選取日期與時間\"] }, \"Select month\": { \"v\": [\"選取月\"] }, \"Select time\": { \"v\": [\"選取時間\"] }, \"Select time range\": { \"v\": [\"選取時間範圍\"] }, \"Select week\": { \"v\": [\"選取週\"] }, \"Select year\": { \"v\": [\"選取年\"] }, \"Switch AM/PM mode\": { \"v\": [\"切換上午/下午模式\"] }, \"Time picker\": { \"v\": [\"時間挑選器\"] }, \"Toggle overlay\": { \"v\": [\"切換覆蓋層\"] }, \"W\": { \"v\": [\"週\"] }, \"Year picker\": { \"v\": [\"年挑選器\"] }, \"Year picker overlay\": { \"v\": [\"年挑選器覆蓋層\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Calendar icon\": { \"v\": [\"行事曆圖示\"] }, \"Cancel\": { \"v\": [\"取消\"] }, \"Clear value\": { \"v\": [\"清除值\"] }, \"Close time Picker\": { \"v\": [\"關閉時間挑選器\"] }, \"Datepicker input\": { \"v\": [\"日期挑選器輸入\"] }, \"Datepicker menu\": { \"v\": [\"日期挑選器選單\"] }, \"Decrement hours\": { \"v\": [\"小時遞減\"] }, \"Decrement minutes\": { \"v\": [\"分鐘遞減\"] }, \"Decrement seconds\": { \"v\": [\"秒遞減\"] }, \"Increment hours\": { \"v\": [\"小時遞增\"] }, \"Increment minutes\": { \"v\": [\"分鐘遞增\"] }, \"Increment seconds\": { \"v\": [\"秒遞增\"] }, \"Month picker\": { \"v\": [\"月挑選器\"] }, \"Month picker overlay\": { \"v\": [\"月挑選器覆蓋層\"] }, \"Next month\": { \"v\": [\"下個月\"] }, \"Next year\": { \"v\": [\"明年\"] }, \"Now\": { \"v\": [\"現在\"] }, \"Open hours overlay\": { \"v\": [\"開啟小時覆蓋層\"] }, \"Open minutes overlay\": { \"v\": [\"開啟分鐘覆蓋層\"] }, \"Open months overlay\": { \"v\": [\"開啟月覆蓋層\"] }, \"Open seconds overlay\": { \"v\": [\"開啟秒覆蓋層\"] }, \"Open time picker\": { \"v\": [\"開啟時間挑選器\"] }, \"Open years overlay\": { \"v\": [\"開啟年覆蓋層\"] }, \"Pick\": { \"v\": [\"挑選\"] }, \"Previous month\": { \"v\": [\"上個月\"] }, \"Previous year\": { \"v\": [\"去年\"] }, \"Select date\": { \"v\": [\"選取日期\"] }, \"Select date and time\": { \"v\": [\"選取日期與時間\"] }, \"Select month\": { \"v\": [\"選取月\"] }, \"Select time\": { \"v\": [\"選取時間\"] }, \"Select time range\": { \"v\": [\"選取時間範圍\"] }, \"Select week\": { \"v\": [\"選取週\"] }, \"Select year\": { \"v\": [\"選取年\"] }, \"Switch AM/PM mode\": { \"v\": [\"切換上午/下午模式\"] }, \"Time picker\": { \"v\": [\"時間挑選器\"] }, \"Toggle overlay\": { \"v\": [\"切換覆蓋層\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"年挑選器\"] }, \"Year picker overlay\": { \"v\": [\"年挑選器覆蓋層\"] } } }];\nconst t14 = [{ \"l\": \"ar\", \"t\": { \"Cancel changes\": { \"v\": [\"إلغاء التغييرات\"] }, \"Confirm changes\": { \"v\": [\"تأكيد التغييرات\"] } } }, { \"l\": \"ast\", \"t\": { \"Cancel changes\": { \"v\": [\"Encaboxar los cambeos\"] }, \"Confirm changes\": { \"v\": [\"Confirmar los cambeos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancel·la els canvis\"] }, \"Confirm changes\": { \"v\": [\"Confirmeu els canvis\"] } } }, { \"l\": \"cs\", \"t\": { \"Cancel changes\": { \"v\": [\"Zrušit změny\"] }, \"Confirm changes\": { \"v\": [\"Potvrdit změny\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Cancel changes\": { \"v\": [\"Zrušit změny\"] }, \"Confirm changes\": { \"v\": [\"Potvrdit změny\"] } } }, { \"l\": \"da\", \"t\": { \"Cancel changes\": { \"v\": [\"Annuller ændringer\"] }, \"Confirm changes\": { \"v\": [\"Bekræft ændringer\"] } } }, { \"l\": \"de\", \"t\": { \"Cancel changes\": { \"v\": [\"Änderungen verwerfen\"] }, \"Confirm changes\": { \"v\": [\"Änderungen bestätigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Cancel changes\": { \"v\": [\"Änderungen verwerfen\"] }, \"Confirm changes\": { \"v\": [\"Änderungen bestätigen\"] } } }, { \"l\": \"el\", \"t\": { \"Cancel changes\": { \"v\": [\"Ακύρωση αλλαγών\"] }, \"Confirm changes\": { \"v\": [\"Επιβεβαίωση αλλαγών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancel changes\"] }, \"Confirm changes\": { \"v\": [\"Confirm changes\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Cancel changes\": { \"v\": [\"Tühista muudatused\"] }, \"Confirm changes\": { \"v\": [\"Kinnitage muudatused\"] } } }, { \"l\": \"eu\", \"t\": { \"Cancel changes\": { \"v\": [\"Ezeztatu aldaketak\"] }, \"Confirm changes\": { \"v\": [\"Baieztatu aldaketak\"] } } }, { \"l\": \"fa\", \"t\": { \"Cancel changes\": { \"v\": [\"لغو تغییرات\"] }, \"Confirm changes\": { \"v\": [\"تایید تغییرات\"] } } }, { \"l\": \"fi\", \"t\": { \"Cancel changes\": { \"v\": [\"Peruuta muutokset\"] }, \"Confirm changes\": { \"v\": [\"Vahvista muutokset\"] } } }, { \"l\": \"fr\", \"t\": { \"Cancel changes\": { \"v\": [\"Annuler les modifications\"] }, \"Confirm changes\": { \"v\": [\"Confirmer les modifications\"] } } }, { \"l\": \"ga\", \"t\": { \"Cancel changes\": { \"v\": [\"Cealaigh athruithe\"] }, \"Confirm changes\": { \"v\": [\"Deimhnigh na hathruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar os cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirma os cambios\"] } } }, { \"l\": \"he\", \"t\": { \"Cancel changes\": { \"v\": [\"ביטול שינויים\"] }, \"Confirm changes\": { \"v\": [\"אישור השינויים\"] } } }, { \"l\": \"hu\", \"t\": { \"Cancel changes\": { \"v\": [\"Változtatások elvetése\"] }, \"Confirm changes\": { \"v\": [\"Változtatások megerősítése\"] } } }, { \"l\": \"id\", \"t\": { \"Cancel changes\": { \"v\": [\"Batalkan perubahan\"] }, \"Confirm changes\": { \"v\": [\"Konfirmasikan perubahan\"] } } }, { \"l\": \"is\", \"t\": { \"Cancel changes\": { \"v\": [\"Hætta við breytingar\"] }, \"Confirm changes\": { \"v\": [\"Staðfesta breytingar\"] } } }, { \"l\": \"it\", \"t\": { \"Cancel changes\": { \"v\": [\"Annulla modifiche\"] }, \"Confirm changes\": { \"v\": [\"Conferma modifiche\"] } } }, { \"l\": \"ja\", \"t\": { \"Cancel changes\": { \"v\": [\"変更をキャンセル\"] }, \"Confirm changes\": { \"v\": [\"変更を承認\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Cancel changes\": { \"v\": [\"変更をキャンセル\"] }, \"Confirm changes\": { \"v\": [\"変更を承認\"] } } }, { \"l\": \"ko\", \"t\": { \"Cancel changes\": { \"v\": [\"변경 취소\"] }, \"Confirm changes\": { \"v\": [\"변경 사항 확인\"] } } }, { \"l\": \"lo\", \"t\": { \"Cancel changes\": { \"v\": [\"ຍົກເລີກການປ່ຽນແປງ\"] }, \"Confirm changes\": { \"v\": [\"ຢືນຢັນການປ່ຽນແປງ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Cancel changes\": { \"v\": [\"Откажи ги промените\"] }, \"Confirm changes\": { \"v\": [\"Потврди ги промените\"] } } }, { \"l\": \"my\", \"t\": { \"Cancel changes\": { \"v\": [\"ပြောင်းလဲမှုများ ပယ်ဖျက်ရန်\"] }, \"Confirm changes\": { \"v\": [\"ပြောင်းလဲမှုများ အတည်ပြုရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Cancel changes\": { \"v\": [\"Avbryt endringer\"] }, \"Confirm changes\": { \"v\": [\"Bekreft endringer\"] } } }, { \"l\": \"nl\", \"t\": { \"Cancel changes\": { \"v\": [\"Wijzigingen annuleren\"] }, \"Confirm changes\": { \"v\": [\"Wijzigingen bevestigen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Cancel changes\": { \"v\": [\"Anuluj zmiany\"] }, \"Confirm changes\": { \"v\": [\"Potwierdź zmiany\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar alterações\"] }, \"Confirm changes\": { \"v\": [\"Confirmar alterações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar alterações\"] }, \"Confirm changes\": { \"v\": [\"Confirmar alterações\"] } } }, { \"l\": \"ro\", \"t\": { \"Cancel changes\": { \"v\": [\"Anulează modificările\"] }, \"Confirm changes\": { \"v\": [\"Confirmați modificările\"] } } }, { \"l\": \"ru\", \"t\": { \"Cancel changes\": { \"v\": [\"Отменить изменения\"] }, \"Confirm changes\": { \"v\": [\"Подтвердить изменения\"] } } }, { \"l\": \"sk\", \"t\": { \"Cancel changes\": { \"v\": [\"Zrušiť zmeny\"] }, \"Confirm changes\": { \"v\": [\"Potvrdiť zmeny\"] } } }, { \"l\": \"sl\", \"t\": { \"Cancel changes\": { \"v\": [\"Prekliči spremembe\"] }, \"Confirm changes\": { \"v\": [\"Potrdi spremembe\"] } } }, { \"l\": \"sr\", \"t\": { \"Cancel changes\": { \"v\": [\"Откажи измене\"] }, \"Confirm changes\": { \"v\": [\"Потврдите измене\"] } } }, { \"l\": \"sv\", \"t\": { \"Cancel changes\": { \"v\": [\"Avbryt ändringar\"] }, \"Confirm changes\": { \"v\": [\"Bekräfta ändringar\"] } } }, { \"l\": \"tr\", \"t\": { \"Cancel changes\": { \"v\": [\"Değişiklikleri iptal et\"] }, \"Confirm changes\": { \"v\": [\"Değişiklikleri onayla\"] } } }, { \"l\": \"uk\", \"t\": { \"Cancel changes\": { \"v\": [\"Скасувати зміни\"] }, \"Confirm changes\": { \"v\": [\"Підтвердити зміни\"] } } }, { \"l\": \"uz\", \"t\": { \"Cancel changes\": { \"v\": [\"O'zgarishlarni bekor qilish\"] }, \"Confirm changes\": { \"v\": [\"O'zgarishlarni tasdiqlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Cancel changes\": { \"v\": [\"取消更改\"] }, \"Confirm changes\": { \"v\": [\"确认更改\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Cancel changes\": { \"v\": [\"取消更改\"] }, \"Confirm changes\": { \"v\": [\"確認更改\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Cancel changes\": { \"v\": [\"取消變更\"] }, \"Confirm changes\": { \"v\": [\"確認變更\"] } } }];\nconst t15 = [{ \"l\": \"ar\", \"t\": { \"Change name\": { \"v\": [\"تغيير الاسم\"] }, \"Close sidebar\": { \"v\": [\"قفل الشريط الجانبي\"] }, \"Favorite\": { \"v\": [\"المفضلة\"] }, \"Open sidebar\": { \"v\": [\"إفتَح الشريط الجانبي\"] } } }, { \"l\": \"ast\", \"t\": { \"Change name\": { \"v\": [\"Camudar el nome\"] }, \"Close sidebar\": { \"v\": [\"Zarrar la barra llateral\"] }, \"Favorite\": { \"v\": [\"Favoritu\"] }, \"Open sidebar\": { \"v\": [\"Abrir la barra llateral\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Close sidebar\": { \"v\": [\"Tancar la barra lateral\"] }, \"Favorite\": { \"v\": [\"Preferit\"] } } }, { \"l\": \"cs\", \"t\": { \"Change name\": { \"v\": [\"Změnit název\"] }, \"Close sidebar\": { \"v\": [\"Zavřít postranní panel\"] }, \"Favorite\": { \"v\": [\"Oblíbené\"] }, \"Open sidebar\": { \"v\": [\"Otevřít postranní panel\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Change name\": { \"v\": [\"Změnit název\"] }, \"Close sidebar\": { \"v\": [\"Zavřít postranní panel\"] }, \"Favorite\": { \"v\": [\"Oblíbené\"] } } }, { \"l\": \"da\", \"t\": { \"Change name\": { \"v\": [\"Ændre navn\"] }, \"Close sidebar\": { \"v\": [\"Luk sidepanel\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Åbn sidepanel\"] } } }, { \"l\": \"de\", \"t\": { \"Change name\": { \"v\": [\"Namen ändern\"] }, \"Close sidebar\": { \"v\": [\"Seitenleiste schließen\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Seitenleiste öffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Change name\": { \"v\": [\"Namen ändern\"] }, \"Close sidebar\": { \"v\": [\"Seitenleiste schließen\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Seitenleiste öffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Change name\": { \"v\": [\"Αλλαγή ονόματος\"] }, \"Close sidebar\": { \"v\": [\"Κλείσιμο πλευρικής μπάρας\"] }, \"Favorite\": { \"v\": [\"Αγαπημένα\"] }, \"Open sidebar\": { \"v\": [\"Άνοιγμα πλευρικής μπάρας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Change name\": { \"v\": [\"Change name\"] }, \"Close sidebar\": { \"v\": [\"Close sidebar\"] }, \"Favorite\": { \"v\": [\"Favourite\"] }, \"Open sidebar\": { \"v\": [\"Open sidebar\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Change name\": { \"v\": [\"Muuda nime\"] }, \"Close sidebar\": { \"v\": [\"Sulge külgriba\"] }, \"Favorite\": { \"v\": [\"Lemmik\"] }, \"Open sidebar\": { \"v\": [\"Ava külgriba\"] } } }, { \"l\": \"eu\", \"t\": { \"Change name\": { \"v\": [\"Aldatu izena\"] }, \"Close sidebar\": { \"v\": [\"Itxi albo-barra\"] }, \"Favorite\": { \"v\": [\"Gogokoa\"] } } }, { \"l\": \"fa\", \"t\": { \"Change name\": { \"v\": [\"تغییر نام\"] }, \"Close sidebar\": { \"v\": [\"بستن نوار کناری\"] }, \"Favorite\": { \"v\": [\"مورد علاقه\"] }, \"Open sidebar\": { \"v\": [\"باز کردن نوار کنار\"] } } }, { \"l\": \"fi\", \"t\": { \"Change name\": { \"v\": [\"Vaihda nimi\"] }, \"Close sidebar\": { \"v\": [\"Sulje sivupalkki\"] }, \"Favorite\": { \"v\": [\"Suosikki\"] }, \"Open sidebar\": { \"v\": [\"Avaa sivupalkki\"] } } }, { \"l\": \"fr\", \"t\": { \"Change name\": { \"v\": [\"Modifier le nom\"] }, \"Close sidebar\": { \"v\": [\"Fermer la barre latérale\"] }, \"Favorite\": { \"v\": [\"Favori\"] }, \"Open sidebar\": { \"v\": [\"Ouvrir la barre latérale\"] } } }, { \"l\": \"ga\", \"t\": { \"Change name\": { \"v\": [\"Athrú ainm\"] }, \"Close sidebar\": { \"v\": [\"Dún barra taoibh\"] }, \"Favorite\": { \"v\": [\"is fearr leat\"] }, \"Open sidebar\": { \"v\": [\"Oscail barra taoibh\"] } } }, { \"l\": \"gl\", \"t\": { \"Change name\": { \"v\": [\"Cambiar o nome\"] }, \"Close sidebar\": { \"v\": [\"Pechar a barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir a barra lateral\"] } } }, { \"l\": \"he\", \"t\": { \"Change name\": { \"v\": [\"החלפת שם\"] }, \"Close sidebar\": { \"v\": [\"סגירת סרגל הצד\"] }, \"Favorite\": { \"v\": [\"למועדפים\"] } } }, { \"l\": \"hu\", \"t\": { \"Close sidebar\": { \"v\": [\"Oldalsáv bezárása\"] }, \"Favorite\": { \"v\": [\"Kedvenc\"] } } }, { \"l\": \"id\", \"t\": { \"Change name\": { \"v\": [\"Ubah nama\"] }, \"Close sidebar\": { \"v\": [\"Tutup bilah sisi\"] }, \"Favorite\": { \"v\": [\"Favorit\"] } } }, { \"l\": \"is\", \"t\": { \"Change name\": { \"v\": [\"Breyta nafni\"] }, \"Close sidebar\": { \"v\": [\"Loka hliðarstiku\"] }, \"Favorite\": { \"v\": [\"Eftirlæti\"] }, \"Open sidebar\": { \"v\": [\"Opna hliðarspjald\"] } } }, { \"l\": \"it\", \"t\": { \"Change name\": { \"v\": [\"Cambia nome\"] }, \"Close sidebar\": { \"v\": [\"Chiudi la barra laterale\"] }, \"Favorite\": { \"v\": [\"Preferito\"] } } }, { \"l\": \"ja\", \"t\": { \"Change name\": { \"v\": [\"名前の変更\"] }, \"Close sidebar\": { \"v\": [\"サイドバーを閉じる\"] }, \"Favorite\": { \"v\": [\"お気に入り\"] }, \"Open sidebar\": { \"v\": [\"サイドバーを開く\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Change name\": { \"v\": [\"名前の変更\"] }, \"Close sidebar\": { \"v\": [\"サイドバーを閉じる\"] }, \"Favorite\": { \"v\": [\"お気に入り\"] }, \"Open sidebar\": { \"v\": [\"サイドバーを開く\"] } } }, { \"l\": \"ko\", \"t\": { \"Change name\": { \"v\": [\"이름 변경\"] }, \"Close sidebar\": { \"v\": [\"사이드바 닫기\"] }, \"Favorite\": { \"v\": [\"즐겨찾기\"] }, \"Open sidebar\": { \"v\": [\"사이드바 열기\"] } } }, { \"l\": \"lo\", \"t\": { \"Change name\": { \"v\": [\"ປ່ຽນຊື່\"] }, \"Close sidebar\": { \"v\": [\"ປິດແຖບດ້ານຂ້າງ\"] }, \"Favorite\": { \"v\": [\"ລາຍການທີ່ມັກ\"] }, \"Open sidebar\": { \"v\": [\"ເປີດແຖບດ້ານຂ້າງ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Change name\": { \"v\": [\"Промени име\"] }, \"Close sidebar\": { \"v\": [\"Затвори странична лента\"] }, \"Favorite\": { \"v\": [\"Фаворити\"] }, \"Open sidebar\": { \"v\": [\"Отвори странична лента\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Change name\": { \"v\": [\"Endre navn\"] }, \"Close sidebar\": { \"v\": [\"Lukk sidepanel\"] }, \"Favorite\": { \"v\": [\"Favoritt\"] }, \"Open sidebar\": { \"v\": [\"Åpne sidefelt\"] } } }, { \"l\": \"nl\", \"t\": { \"Change name\": { \"v\": [\"Naam wijzigen\"] }, \"Close sidebar\": { \"v\": [\"Zijbalk sluiten\"] }, \"Favorite\": { \"v\": [\"Favoriet\"] }, \"Open sidebar\": { \"v\": [\"Zijbalk openen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Change name\": { \"v\": [\"Zmień nazwę\"] }, \"Close sidebar\": { \"v\": [\"Zamknij pasek boczny\"] }, \"Favorite\": { \"v\": [\"Ulubiony\"] }, \"Open sidebar\": { \"v\": [\"Otwórz pasek boczny\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Change name\": { \"v\": [\"Mudar nome\"] }, \"Close sidebar\": { \"v\": [\"Fechar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Change name\": { \"v\": [\"Alterar nome\"] }, \"Close sidebar\": { \"v\": [\"Fechar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"ro\", \"t\": { \"Change name\": { \"v\": [\"Modifică numele\"] }, \"Close sidebar\": { \"v\": [\"Închide bara laterală\"] }, \"Favorite\": { \"v\": [\"Favorit\"] } } }, { \"l\": \"ru\", \"t\": { \"Change name\": { \"v\": [\"Изменить имя\"] }, \"Close sidebar\": { \"v\": [\"Закрыть сайдбар\"] }, \"Favorite\": { \"v\": [\"Избранное\"] }, \"Open sidebar\": { \"v\": [\"Открыть боковую панель\"] } } }, { \"l\": \"sk\", \"t\": { \"Change name\": { \"v\": [\"Zmeniť názov\"] }, \"Close sidebar\": { \"v\": [\"Zavrieť bočný panel\"] }, \"Favorite\": { \"v\": [\"Obľúbené\"] }, \"Open sidebar\": { \"v\": [\"Otvoriť bočný panel\"] } } }, { \"l\": \"sl\", \"t\": { \"Close sidebar\": { \"v\": [\"Zapri stransko vrstico\"] }, \"Favorite\": { \"v\": [\"Priljubljeno\"] } } }, { \"l\": \"sr\", \"t\": { \"Change name\": { \"v\": [\"Измени назив\"] }, \"Close sidebar\": { \"v\": [\"Затвори бочну траку\"] }, \"Favorite\": { \"v\": [\"Омиљени\"] }, \"Open sidebar\": { \"v\": [\"Отвори бочну траку\"] } } }, { \"l\": \"sv\", \"t\": { \"Change name\": { \"v\": [\"Ändra namn\"] }, \"Close sidebar\": { \"v\": [\"Stäng sidofältet\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Öppna sidofältet\"] } } }, { \"l\": \"tr\", \"t\": { \"Change name\": { \"v\": [\"Adı değiştir\"] }, \"Close sidebar\": { \"v\": [\"Yan çubuğu kapat\"] }, \"Favorite\": { \"v\": [\"Sık kullanılanlara ekle\"] }, \"Open sidebar\": { \"v\": [\"Yan çubuğu aç\"] } } }, { \"l\": \"uk\", \"t\": { \"Change name\": { \"v\": [\"Змінити назву\"] }, \"Close sidebar\": { \"v\": [\"Закрити бічну панель\"] }, \"Favorite\": { \"v\": [\"Із зірочкою\"] }, \"Open sidebar\": { \"v\": [\"Бокове меню\"] } } }, { \"l\": \"uz\", \"t\": { \"Change name\": { \"v\": [\"Ismni o'zgartirish\"] }, \"Close sidebar\": { \"v\": [\"Yon panelni yoping\"] }, \"Favorite\": { \"v\": [\"Tanlangan\"] }, \"Open sidebar\": { \"v\": [\"Yon panelni oching\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Change name\": { \"v\": [\"修改名称\"] }, \"Close sidebar\": { \"v\": [\"关闭侧边栏\"] }, \"Favorite\": { \"v\": [\"喜爱\"] }, \"Open sidebar\": { \"v\": [\"打开侧边栏\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Change name\": { \"v\": [\"更改名稱\"] }, \"Close sidebar\": { \"v\": [\"關閉側邊欄\"] }, \"Favorite\": { \"v\": [\"喜愛\"] }, \"Open sidebar\": { \"v\": [\"打開側邊欄\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Change name\": { \"v\": [\"變更名稱\"] }, \"Close sidebar\": { \"v\": [\"關閉側邊欄\"] }, \"Favorite\": { \"v\": [\"最愛\"] }, \"Open sidebar\": { \"v\": [\"開啟側邊欄\"] } } }];\nconst t16 = [{ \"l\": \"ar\", \"t\": { \"Clear search\": { \"v\": [\"محو البحث\"] } } }, { \"l\": \"ast\", \"t\": { \"Clear search\": { \"v\": [\"Borrar la busca\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Clear search\": { \"v\": [\"Vyčistit vyhledávání\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Clear search\": { \"v\": [\"Vyčistit vyhledávání\"] } } }, { \"l\": \"da\", \"t\": { \"Clear search\": { \"v\": [\"Ryd søgning\"] } } }, { \"l\": \"de\", \"t\": { \"Clear search\": { \"v\": [\"Suche leeren\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Clear search\": { \"v\": [\"Suche leeren\"] } } }, { \"l\": \"el\", \"t\": { \"Clear search\": { \"v\": [\"Εκκαθάριση αναζήτησης\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Clear search\": { \"v\": [\"Clear search\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Clear search\": { \"v\": [\"Tühjenda otsing\"] } } }, { \"l\": \"eu\", \"t\": { \"Clear search\": { \"v\": [\"Garbitu bilaketa\"] } } }, { \"l\": \"fa\", \"t\": { \"Clear search\": { \"v\": [\"پاک کردن جستجو\"] } } }, { \"l\": \"fi\", \"t\": { \"Clear search\": { \"v\": [\"Tyhjennä haku\"] } } }, { \"l\": \"fr\", \"t\": { \"Clear search\": { \"v\": [\"Effacer la recherche\"] } } }, { \"l\": \"ga\", \"t\": { \"Clear search\": { \"v\": [\"Glan cuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Clear search\": { \"v\": [\"Limpar a busca\"] } } }, { \"l\": \"he\", \"t\": { \"Clear search\": { \"v\": [\"פינוי חיפוש\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Clear search\": { \"v\": [\"Bersihkan pencarian\"] } } }, { \"l\": \"is\", \"t\": { \"Clear search\": { \"v\": [\"Hreinsa leit\"] } } }, { \"l\": \"it\", \"t\": { \"Clear search\": { \"v\": [\"online\"] } } }, { \"l\": \"ja\", \"t\": { \"Clear search\": { \"v\": [\"検索をクリア\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Clear search\": { \"v\": [\"検索をクリア\"] } } }, { \"l\": \"ko\", \"t\": { \"Clear search\": { \"v\": [\"검색 지우기\"] } } }, { \"l\": \"lo\", \"t\": { \"Clear search\": { \"v\": [\"ລຶບການຄົ້ນຫາ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Clear search\": { \"v\": [\"Исчисти пребарување\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Clear search\": { \"v\": [\"Tøm søk\"] } } }, { \"l\": \"nl\", \"t\": { \"Clear search\": { \"v\": [\"Zoekopdracht wissen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Clear search\": { \"v\": [\"Wyczyść wyszukiwanie\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Clear search\": { \"v\": [\"Limpar pesquisa\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Clear search\": { \"v\": [\"Limpar pesquisa\"] } } }, { \"l\": \"ro\", \"t\": { \"Clear search\": { \"v\": [\"Șterge căutarea\"] } } }, { \"l\": \"ru\", \"t\": { \"Clear search\": { \"v\": [\"Очистить поиск\"] } } }, { \"l\": \"sk\", \"t\": { \"Clear search\": { \"v\": [\"Vymazať vyhľadávanie\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Clear search\": { \"v\": [\"Обриши претрагу\"] } } }, { \"l\": \"sv\", \"t\": { \"Clear search\": { \"v\": [\"Rensa sökning\"] } } }, { \"l\": \"tr\", \"t\": { \"Clear search\": { \"v\": [\"Aramayı temizle\"] } } }, { \"l\": \"uk\", \"t\": { \"Clear search\": { \"v\": [\"Очистити пошук\"] } } }, { \"l\": \"uz\", \"t\": { \"Clear search\": { \"v\": [\"Qidiruvni tozalash\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Clear search\": { \"v\": [\"清除搜索\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Clear search\": { \"v\": [\"清除搜索\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Clear search\": { \"v\": [\"清除搜尋\"] } } }];\nconst t17 = [{ \"l\": \"ar\", \"t\": { \"Clear selected\": { \"v\": [\"محو المحدّد\"] }, \"Deselect {option}\": { \"v\": [\"إلغاء تحديد {option}\"] }, \"No results\": { \"v\": [\"ليس هناك أية نتيجة\"] }, \"Options\": { \"v\": [\"خيارات\"] } } }, { \"l\": \"ast\", \"t\": { \"Clear selected\": { \"v\": [\"Borrar lo seleicionao\"] }, \"Deselect {option}\": { \"v\": [\"Deseleicionar «{option}»\"] }, \"No results\": { \"v\": [\"Nun hai nengún resultáu\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"br\", \"t\": { \"No results\": { \"v\": [\"Disoc'h ebet\"] } } }, { \"l\": \"ca\", \"t\": { \"No results\": { \"v\": [\"Sense resultats\"] } } }, { \"l\": \"cs\", \"t\": { \"Clear selected\": { \"v\": [\"Vyčistit vybrané\"] }, \"Deselect {option}\": { \"v\": [\"Zrušit výběr {option}\"] }, \"No results\": { \"v\": [\"Nic nenalezeno\"] }, \"Options\": { \"v\": [\"Možnosti\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Clear selected\": { \"v\": [\"Vyčistit vybrané\"] }, \"Deselect {option}\": { \"v\": [\"Zrušit výběr {option}\"] }, \"No results\": { \"v\": [\"Nic nenalezeno\"] }, \"Options\": { \"v\": [\"Možnosti\"] } } }, { \"l\": \"da\", \"t\": { \"Clear selected\": { \"v\": [\"Ryd valgt\"] }, \"Deselect {option}\": { \"v\": [\"Fravælg {option}\"] }, \"No results\": { \"v\": [\"Ingen resultater\"] }, \"Options\": { \"v\": [\"Indstillinger\"] } } }, { \"l\": \"de\", \"t\": { \"Clear selected\": { \"v\": [\"Auswahl leeren\"] }, \"Deselect {option}\": { \"v\": [\"{option} abwählen\"] }, \"No results\": { \"v\": [\"Keine Ergebnisse\"] }, \"Options\": { \"v\": [\"Optionen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Clear selected\": { \"v\": [\"Auswahl leeren\"] }, \"Deselect {option}\": { \"v\": [\"{option} abwählen\"] }, \"No results\": { \"v\": [\"Keine Ergebnisse\"] }, \"Options\": { \"v\": [\"Optionen\"] } } }, { \"l\": \"el\", \"t\": { \"Clear selected\": { \"v\": [\"Εκκαθάριση επιλογής\"] }, \"Deselect {option}\": { \"v\": [\"Αποεπιλογή {option}\"] }, \"No results\": { \"v\": [\"Κανένα αποτέλεσμα\"] }, \"Options\": { \"v\": [\"Επιλογές\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Clear selected\": { \"v\": [\"Clear selected\"] }, \"Deselect {option}\": { \"v\": [\"Deselect {option}\"] }, \"No results\": { \"v\": [\"No results\"] }, \"Options\": { \"v\": [\"Options\"] } } }, { \"l\": \"eo\", \"t\": { \"No results\": { \"v\": [\"La rezulto forestas\"] } } }, { \"l\": \"es\", \"t\": { \"Clear selected\": { \"v\": [\"Limpiar selección\"] }, \"Deselect {option}\": { \"v\": [\"Deseleccionar {option}\"] }, \"No results\": { \"v\": [\" Ningún resultado\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Clear selected\": { \"v\": [\"Limpiar selección\"] }, \"Deselect {option}\": { \"v\": [\"Deseleccionar {option}\"] }, \"No results\": { \"v\": [\"Sin resultados\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"No results\": { \"v\": [\"Sin resultados\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Clear selected\": { \"v\": [\"Limpiar selección\"] }, \"Deselect {option}\": { \"v\": [\"Deseleccionar {option}\"] }, \"No results\": { \"v\": [\"Sin resultados\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Clear selected\": { \"v\": [\"Tühjenad valik\"] }, \"Deselect {option}\": { \"v\": [\"Eemalda {option} valik\"] }, \"No results\": { \"v\": [\"Tulemusi pole\"] }, \"Options\": { \"v\": [\"Valikud\"] } } }, { \"l\": \"eu\", \"t\": { \"No results\": { \"v\": [\"Emaitzarik ez\"] } } }, { \"l\": \"fa\", \"t\": { \"Clear selected\": { \"v\": [\"پاک کردن مورد انتخاب شده\"] }, \"Deselect {option}\": { \"v\": [\"لغو انتخاب {option}\"] }, \"No results\": { \"v\": [\"بدون هیچ نتیجهای\"] }, \"Options\": { \"v\": [\"گزینهها\"] } } }, { \"l\": \"fi\", \"t\": { \"Clear selected\": { \"v\": [\"Tyhjennä valitut\"] }, \"Deselect {option}\": { \"v\": [\"Poista valinta {option}\"] }, \"No results\": { \"v\": [\"Ei tuloksia\"] }, \"Options\": { \"v\": [\"Valinnat\"] } } }, { \"l\": \"fr\", \"t\": { \"Clear selected\": { \"v\": [\"Vider la sélection\"] }, \"Deselect {option}\": { \"v\": [\"Désélectionner {option}\"] }, \"No results\": { \"v\": [\"Aucun résultat\"] }, \"Options\": { \"v\": [\"Options\"] } } }, { \"l\": \"ga\", \"t\": { \"Clear selected\": { \"v\": [\"Glan roghnaithe\"] }, \"Deselect {option}\": { \"v\": [\"Díroghnaigh {option}\"] }, \"No results\": { \"v\": [\"Gan torthaí\"] }, \"Options\": { \"v\": [\"Roghanna\"] } } }, { \"l\": \"gl\", \"t\": { \"Clear selected\": { \"v\": [\"Limpar o seleccionado\"] }, \"Deselect {option}\": { \"v\": [\"Desmarcar {option}\"] }, \"No results\": { \"v\": [\"Sen resultados\"] }, \"Options\": { \"v\": [\"Opcións\"] } } }, { \"l\": \"he\", \"t\": { \"No results\": { \"v\": [\"אין תוצאות\"] } } }, { \"l\": \"hu\", \"t\": { \"No results\": { \"v\": [\"Nincs találat\"] } } }, { \"l\": \"id\", \"t\": { \"Clear selected\": { \"v\": [\"Hapus terpilih\"] }, \"Deselect {option}\": { \"v\": [\"Batalkan pemilihan {option}\"] }, \"No results\": { \"v\": [\"Tidak ada hasil\"] } } }, { \"l\": \"is\", \"t\": { \"Clear selected\": { \"v\": [\"Hreinsa valið\"] }, \"Deselect {option}\": { \"v\": [\"Afvelja {option}\"] }, \"No results\": { \"v\": [\"Engar niðurstöður\"] }, \"Options\": { \"v\": [\"Valkostir\"] } } }, { \"l\": \"it\", \"t\": { \"Clear selected\": { \"v\": [\"Cancella selezionati\"] }, \"Deselect {option}\": { \"v\": [\"Deselezionare {option}\"] }, \"No results\": { \"v\": [\"Nessun risultato\"] } } }, { \"l\": \"ja\", \"t\": { \"Clear selected\": { \"v\": [\"選択を解除\"] }, \"Deselect {option}\": { \"v\": [\"{option} の選択を解除\"] }, \"No results\": { \"v\": [\"結果無し\"] }, \"Options\": { \"v\": [\"オプション\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Clear selected\": { \"v\": [\"選択を解除\"] }, \"Deselect {option}\": { \"v\": [\"{option} の選択を解除\"] }, \"No results\": { \"v\": [\"結果無し\"] }, \"Options\": { \"v\": [\"オプション\"] } } }, { \"l\": \"ko\", \"t\": { \"Clear selected\": { \"v\": [\"선택 항목 지우기\"] }, \"Deselect {option}\": { \"v\": [\"{option} 선택 해제\"] }, \"No results\": { \"v\": [\"결과 없음\"] }, \"Options\": { \"v\": [\"옵션\"] } } }, { \"l\": \"lo\", \"t\": { \"Clear selected\": { \"v\": [\"ລຶບສິ່ງທີ່ເລືອກ\"] }, \"Deselect {option}\": { \"v\": [\"ຍົກເລີກການເລືອກ {option}\"] }, \"No results\": { \"v\": [\"ບໍ່ມີຜົນລັບ\"] }, \"Options\": { \"v\": [\"ຕົວເລືອກ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"No results\": { \"v\": [\"Nėra rezultatų\"] } } }, { \"l\": \"lv\", \"t\": { \"No results\": { \"v\": [\"Nav rezultātu\"] } } }, { \"l\": \"mk\", \"t\": { \"Clear selected\": { \"v\": [\"Исчисти означени\"] }, \"Deselect {option}\": { \"v\": [\"Откажи избор на {option}\"] }, \"No results\": { \"v\": [\"Нема резултати\"] }, \"Options\": { \"v\": [\"Опции\"] } } }, { \"l\": \"my\", \"t\": { \"No results\": { \"v\": [\"ရလဒ်မရှိပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"Clear selected\": { \"v\": [\"Tøm merket\"] }, \"Deselect {option}\": { \"v\": [\"Opphev valg {option}\"] }, \"No results\": { \"v\": [\"Ingen resultater\"] }, \"Options\": { \"v\": [\"Alternativer\"] } } }, { \"l\": \"nl\", \"t\": { \"Clear selected\": { \"v\": [\"Selectie wissen\"] }, \"Deselect {option}\": { \"v\": [\"Selectie {option} opheffen\"] }, \"No results\": { \"v\": [\"Geen resultaten\"] }, \"Options\": { \"v\": [\"Opties\"] } } }, { \"l\": \"oc\", \"t\": { \"No results\": { \"v\": [\"Cap de resultat\"] } } }, { \"l\": \"pl\", \"t\": { \"Clear selected\": { \"v\": [\"Wyczyść wybrane\"] }, \"Deselect {option}\": { \"v\": [\"Odznacz {option}\"] }, \"No results\": { \"v\": [\"Brak wyników\"] }, \"Options\": { \"v\": [\"Opcje\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Clear selected\": { \"v\": [\"Limpar selecionado\"] }, \"Deselect {option}\": { \"v\": [\"Desselecionar {option}\"] }, \"No results\": { \"v\": [\"Sem resultados\"] }, \"Options\": { \"v\": [\"Opções\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Clear selected\": { \"v\": [\"Limpeza selecionada\"] }, \"Deselect {option}\": { \"v\": [\"Desmarcar {option}\"] }, \"No results\": { \"v\": [\"Sem resultados\"] }, \"Options\": { \"v\": [\"Opções\"] } } }, { \"l\": \"ro\", \"t\": { \"Clear selected\": { \"v\": [\"Șterge selecția\"] }, \"Deselect {option}\": { \"v\": [\"Deselctează {option}\"] }, \"No results\": { \"v\": [\"Nu există rezultate\"] } } }, { \"l\": \"ru\", \"t\": { \"Clear selected\": { \"v\": [\"Очистить выбранный\"] }, \"Deselect {option}\": { \"v\": [\"Отменить выбор {option}\"] }, \"No results\": { \"v\": [\"Результаты отсуствуют\"] }, \"Options\": { \"v\": [\"Варианты\"] } } }, { \"l\": \"sk\", \"t\": { \"Clear selected\": { \"v\": [\"Vymazať vybraté\"] }, \"Deselect {option}\": { \"v\": [\"Zrušiť výber {option}\"] }, \"No results\": { \"v\": [\"Žiadne výsledky\"] }, \"Options\": { \"v\": [\"možnosti\"] } } }, { \"l\": \"sl\", \"t\": { \"No results\": { \"v\": [\"Ni zadetkov\"] } } }, { \"l\": \"sr\", \"t\": { \"Clear selected\": { \"v\": [\"Обриши изабрано\"] }, \"Deselect {option}\": { \"v\": [\"Уклони избор {option}\"] }, \"No results\": { \"v\": [\"Нема резултата\"] }, \"Options\": { \"v\": [\"Опције\"] } } }, { \"l\": \"sv\", \"t\": { \"Clear selected\": { \"v\": [\"Rensa val\"] }, \"Deselect {option}\": { \"v\": [\"Avmarkera {option}\"] }, \"No results\": { \"v\": [\"Inga resultat\"] }, \"Options\": { \"v\": [\"Alternativ\"] } } }, { \"l\": \"tr\", \"t\": { \"Clear selected\": { \"v\": [\"Seçilmişleri temizle\"] }, \"Deselect {option}\": { \"v\": [\"{option} bırak\"] }, \"No results\": { \"v\": [\"Herhangi bir sonuç bulunamadı\"] }, \"Options\": { \"v\": [\"Seçenekler\"] } } }, { \"l\": \"uk\", \"t\": { \"Clear selected\": { \"v\": [\"Очистити вибране\"] }, \"Deselect {option}\": { \"v\": [\"Зняти вибір {option}\"] }, \"No results\": { \"v\": [\"Відсутні результати\"] }, \"Options\": { \"v\": [\"Параметри\"] } } }, { \"l\": \"uz\", \"t\": { \"Clear selected\": { \"v\": [\"Tanlanganni tozalash\"] }, \"Deselect {option}\": { \"v\": [\"{option}tanlovni bekor qiling\"] }, \"No results\": { \"v\": [\"Natija yoʻq\"] }, \"Options\": { \"v\": [\"Variantlar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Clear selected\": { \"v\": [\"清除所选\"] }, \"Deselect {option}\": { \"v\": [\"取消选择 {option}\"] }, \"No results\": { \"v\": [\"无结果\"] }, \"Options\": { \"v\": [\"选项\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Clear selected\": { \"v\": [\"清除所選項目\"] }, \"Deselect {option}\": { \"v\": [\"取消選擇 {option}\"] }, \"No results\": { \"v\": [\"無結果\"] }, \"Options\": { \"v\": [\"選項\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Clear selected\": { \"v\": [\"清除選定項目\"] }, \"Deselect {option}\": { \"v\": [\"取消選取 {option}\"] }, \"No results\": { \"v\": [\"無結果\"] }, \"Options\": { \"v\": [\"選項\"] } } }];\nconst t18 = [{ \"l\": \"ar\", \"t\": { \"Clear text\": { \"v\": [\"محو النص\"] }, \"Save changes\": { \"v\": [\"حفظ التغييرات\"] } } }, { \"l\": \"ast\", \"t\": { \"Clear text\": { \"v\": [\"Borrar el testu\"] }, \"Save changes\": { \"v\": [\"Guardar los cambeos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Clear text\": { \"v\": [\"Netejar text\"] } } }, { \"l\": \"cs\", \"t\": { \"Clear text\": { \"v\": [\"Čitelný text\"] }, \"Save changes\": { \"v\": [\"Uložit změny\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Clear text\": { \"v\": [\"Čitelný text\"] }, \"Save changes\": { \"v\": [\"Uložit změny\"] } } }, { \"l\": \"da\", \"t\": { \"Clear text\": { \"v\": [\"Ryd tekst\"] }, \"Save changes\": { \"v\": [\"Gem ændringer\"] } } }, { \"l\": \"de\", \"t\": { \"Clear text\": { \"v\": [\"Klartext\"] }, \"Save changes\": { \"v\": [\"Änderungen speichern\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Clear text\": { \"v\": [\"Klartext\"] }, \"Save changes\": { \"v\": [\"Änderungen speichern\"] } } }, { \"l\": \"el\", \"t\": { \"Clear text\": { \"v\": [\"Εκκαθάριση κειμένου\"] }, \"Save changes\": { \"v\": [\"Αποθήκευση αλλαγών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Clear text\": { \"v\": [\"Clear text\"] }, \"Save changes\": { \"v\": [\"Save changes\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Clear text\": { \"v\": [\"Limpiar texto\"] }, \"Save changes\": { \"v\": [\"Guardar cambios\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Clear text\": { \"v\": [\"Limpiar texto\"] }, \"Save changes\": { \"v\": [\"Guardar cambios\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Clear text\": { \"v\": [\"Limpiar texto\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Clear text\": { \"v\": [\"Limpiar texto\"] }, \"Save changes\": { \"v\": [\"Guardar cambios\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Clear text\": { \"v\": [\"Kustuta tekst\"] }, \"Save changes\": { \"v\": [\"Salvesta muudatused\"] } } }, { \"l\": \"eu\", \"t\": { \"Clear text\": { \"v\": [\"Garbitu testua\"] } } }, { \"l\": \"fa\", \"t\": { \"Clear text\": { \"v\": [\"پاک کردن متن\"] }, \"Save changes\": { \"v\": [\"ذخیرهٔ تغییرات\"] } } }, { \"l\": \"fi\", \"t\": { \"Clear text\": { \"v\": [\"Tyhjennä teksti\"] }, \"Save changes\": { \"v\": [\"Tallenna muutokset\"] } } }, { \"l\": \"fr\", \"t\": { \"Clear text\": { \"v\": [\"Effacer le texte\"] }, \"Save changes\": { \"v\": [\"Sauvegarder les changements\"] } } }, { \"l\": \"ga\", \"t\": { \"Clear text\": { \"v\": [\"Glan téacs\"] }, \"Save changes\": { \"v\": [\"Sabháil na hathruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Clear text\": { \"v\": [\"Limpar o texto\"] }, \"Save changes\": { \"v\": [\"Gardar os cambios\"] } } }, { \"l\": \"he\", \"t\": { \"Clear text\": { \"v\": [\"פינוי טקסט\"] } } }, { \"l\": \"hu\", \"t\": { \"Clear text\": { \"v\": [\"Szöveg törlése\"] } } }, { \"l\": \"id\", \"t\": { \"Clear text\": { \"v\": [\"Bersihkan teks\"] }, \"Save changes\": { \"v\": [\"Simpan perubahan\"] } } }, { \"l\": \"is\", \"t\": { \"Clear text\": { \"v\": [\"Hreinsa texta\"] }, \"Save changes\": { \"v\": [\"Vista breytingar\"] } } }, { \"l\": \"it\", \"t\": { \"Clear text\": { \"v\": [\"Cancella il testo\"] }, \"Save changes\": { \"v\": [\"Salva le modifiche\"] } } }, { \"l\": \"ja\", \"t\": { \"Clear text\": { \"v\": [\"テキストをクリア\"] }, \"Save changes\": { \"v\": [\"変更を保存\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Clear text\": { \"v\": [\"テキストをクリア\"] }, \"Save changes\": { \"v\": [\"変更を保存\"] } } }, { \"l\": \"ko\", \"t\": { \"Clear text\": { \"v\": [\"텍스트 지우기\"] }, \"Save changes\": { \"v\": [\"변경 사항 저장\"] } } }, { \"l\": \"lo\", \"t\": { \"Clear text\": { \"v\": [\"ລຶບຂໍ້ຄວາມ\"] }, \"Save changes\": { \"v\": [\"ບັນທຶກການປ່ຽນແປງ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Clear text\": { \"v\": [\"Исчисти текст\"] }, \"Save changes\": { \"v\": [\"Зачувај промени\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Clear text\": { \"v\": [\"Fjern tekst\"] }, \"Save changes\": { \"v\": [\"Lagre endringer\"] } } }, { \"l\": \"nl\", \"t\": { \"Clear text\": { \"v\": [\"Tekst wissen\"] }, \"Save changes\": { \"v\": [\"Wijzigingen opslaan\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Clear text\": { \"v\": [\"Wyczyść tekst\"] }, \"Save changes\": { \"v\": [\"Zapisz zmiany\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Clear text\": { \"v\": [\"Limpar texto\"] }, \"Save changes\": { \"v\": [\"Salvar alterações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Clear text\": { \"v\": [\"Limpar texto\"] }, \"Save changes\": { \"v\": [\"Gravar alterações\"] } } }, { \"l\": \"ro\", \"t\": { \"Clear text\": { \"v\": [\"Șterge textul\"] }, \"Save changes\": { \"v\": [\"Salvează modificările\"] } } }, { \"l\": \"ru\", \"t\": { \"Clear text\": { \"v\": [\"Очистить текст\"] }, \"Save changes\": { \"v\": [\"Сохранить изменения\"] } } }, { \"l\": \"sk\", \"t\": { \"Clear text\": { \"v\": [\"Vamazať text\"] }, \"Save changes\": { \"v\": [\"Uložiť zmeny\"] } } }, { \"l\": \"sl\", \"t\": { \"Clear text\": { \"v\": [\"Počisti besedilo\"] } } }, { \"l\": \"sr\", \"t\": { \"Clear text\": { \"v\": [\"Обриши текст\"] }, \"Save changes\": { \"v\": [\"Сачувај измене\"] } } }, { \"l\": \"sv\", \"t\": { \"Clear text\": { \"v\": [\"Ta bort text\"] }, \"Save changes\": { \"v\": [\"Spara ändringar\"] } } }, { \"l\": \"tr\", \"t\": { \"Clear text\": { \"v\": [\"Metni temizle\"] }, \"Save changes\": { \"v\": [\"Değişiklikleri kaydet\"] } } }, { \"l\": \"uk\", \"t\": { \"Clear text\": { \"v\": [\"Очистити текст\"] }, \"Save changes\": { \"v\": [\"Зберегти зміни\"] } } }, { \"l\": \"uz\", \"t\": { \"Clear text\": { \"v\": [\"Matnni tozalash\"] }, \"Save changes\": { \"v\": [\"O'zgarishlarni saqlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Clear text\": { \"v\": [\"清除文本\"] }, \"Save changes\": { \"v\": [\"保存修改\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Clear text\": { \"v\": [\"清除文本\"] }, \"Save changes\": { \"v\": [\"保存更改\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Clear text\": { \"v\": [\"清除文字\"] }, \"Save changes\": { \"v\": [\"儲存變更\"] } } }];\nconst t19 = [{ \"l\": \"ar\", \"t\": { \"Close\": { \"v\": [\"إغلاق\"] } } }, { \"l\": \"ast\", \"t\": { \"Close\": { \"v\": [\"Zarrar\"] } } }, { \"l\": \"br\", \"t\": { \"Close\": { \"v\": [\"Serriñ\"] } } }, { \"l\": \"ca\", \"t\": { \"Close\": { \"v\": [\"Tanca\"] } } }, { \"l\": \"cs\", \"t\": { \"Close\": { \"v\": [\"Zavřít\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Close\": { \"v\": [\"Zavřít\"] } } }, { \"l\": \"da\", \"t\": { \"Close\": { \"v\": [\"Luk\"] } } }, { \"l\": \"de\", \"t\": { \"Close\": { \"v\": [\"Schließen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Close\": { \"v\": [\"Schließen\"] } } }, { \"l\": \"el\", \"t\": { \"Close\": { \"v\": [\"Κλείσιμο\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Close\": { \"v\": [\"Close\"] } } }, { \"l\": \"eo\", \"t\": { \"Close\": { \"v\": [\"Fermu\"] } } }, { \"l\": \"es\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Close\": { \"v\": [\"Sulge\"] } } }, { \"l\": \"eu\", \"t\": { \"Close\": { \"v\": [\"Itxi\"] } } }, { \"l\": \"fa\", \"t\": { \"Close\": { \"v\": [\"بستن\"] } } }, { \"l\": \"fi\", \"t\": { \"Close\": { \"v\": [\"Sulje\"] } } }, { \"l\": \"fr\", \"t\": { \"Close\": { \"v\": [\"Fermer\"] } } }, { \"l\": \"ga\", \"t\": { \"Close\": { \"v\": [\"Dún\"] } } }, { \"l\": \"gl\", \"t\": { \"Close\": { \"v\": [\"Pechar\"] } } }, { \"l\": \"he\", \"t\": { \"Close\": { \"v\": [\"סגירה\"] } } }, { \"l\": \"hu\", \"t\": { \"Close\": { \"v\": [\"Bezárás\"] } } }, { \"l\": \"id\", \"t\": { \"Close\": { \"v\": [\"Tutup\"] } } }, { \"l\": \"is\", \"t\": { \"Close\": { \"v\": [\"Loka\"] } } }, { \"l\": \"it\", \"t\": { \"Close\": { \"v\": [\"Chiudi\"] } } }, { \"l\": \"ja\", \"t\": { \"Close\": { \"v\": [\"閉じる\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Close\": { \"v\": [\"閉じる\"] } } }, { \"l\": \"ko\", \"t\": { \"Close\": { \"v\": [\"닫기\"] } } }, { \"l\": \"lo\", \"t\": { \"Close\": { \"v\": [\"ປິດ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Close\": { \"v\": [\"Užverti\"] } } }, { \"l\": \"lv\", \"t\": { \"Close\": { \"v\": [\"Aizvērt\"] } } }, { \"l\": \"mk\", \"t\": { \"Close\": { \"v\": [\"Затвори\"] } } }, { \"l\": \"my\", \"t\": { \"Close\": { \"v\": [\"ပိတ်ရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Close\": { \"v\": [\"Lukk\"] } } }, { \"l\": \"nl\", \"t\": { \"Close\": { \"v\": [\"Sluiten\"] } } }, { \"l\": \"oc\", \"t\": { \"Close\": { \"v\": [\"Tampar\"] } } }, { \"l\": \"pl\", \"t\": { \"Close\": { \"v\": [\"Zamknij\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Close\": { \"v\": [\"Fechar\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Close\": { \"v\": [\"Fechar\"] } } }, { \"l\": \"ro\", \"t\": { \"Close\": { \"v\": [\"Închideți\"] } } }, { \"l\": \"ru\", \"t\": { \"Close\": { \"v\": [\"Закрыть\"] } } }, { \"l\": \"sk\", \"t\": { \"Close\": { \"v\": [\"Zavrieť\"] } } }, { \"l\": \"sl\", \"t\": { \"Close\": { \"v\": [\"Zapri\"] } } }, { \"l\": \"sr\", \"t\": { \"Close\": { \"v\": [\"Затвори\"] } } }, { \"l\": \"sv\", \"t\": { \"Close\": { \"v\": [\"Stäng\"] } } }, { \"l\": \"tr\", \"t\": { \"Close\": { \"v\": [\"Kapat\"] } } }, { \"l\": \"uk\", \"t\": { \"Close\": { \"v\": [\"Закрити\"] } } }, { \"l\": \"uz\", \"t\": { \"Close\": { \"v\": [\"Yopish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Close\": { \"v\": [\"关闭\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Close\": { \"v\": [\"關閉\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Close\": { \"v\": [\"關閉\"] } } }];\nconst t20 = [{ \"l\": \"ar\", \"t\": { \"Close navigation\": { \"v\": [\"إغلاق التصفح\"] }, \"Open navigation\": { \"v\": [\"فتح التنقُّل\"] } } }, { \"l\": \"ast\", \"t\": { \"Close navigation\": { \"v\": [\"Zarrar la navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir la navegación\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Close navigation\": { \"v\": [\"Tanca la navegació\"] }, \"Open navigation\": { \"v\": [\"Obre la navegació\"] } } }, { \"l\": \"cs\", \"t\": { \"Close navigation\": { \"v\": [\"Zavřít navigaci\"] }, \"Open navigation\": { \"v\": [\"Otevřít navigaci\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Close navigation\": { \"v\": [\"Zavřít navigaci\"] }, \"Open navigation\": { \"v\": [\"Otevřít navigaci\"] } } }, { \"l\": \"da\", \"t\": { \"Close navigation\": { \"v\": [\"Luk navigation\"] }, \"Open navigation\": { \"v\": [\"Åben navigation\"] } } }, { \"l\": \"de\", \"t\": { \"Close navigation\": { \"v\": [\"Navigation schließen\"] }, \"Open navigation\": { \"v\": [\"Navigation öffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Close navigation\": { \"v\": [\"Navigation schließen\"] }, \"Open navigation\": { \"v\": [\"Navigation öffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Close navigation\": { \"v\": [\"Κλείσιμο πλοήγησης\"] }, \"Open navigation\": { \"v\": [\"Άνοιγμα πλοήγησης\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Close navigation\": { \"v\": [\"Close navigation\"] }, \"Open navigation\": { \"v\": [\"Open navigation\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Close navigation\": { \"v\": [\"Cerrar navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir navegación\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Close navigation\": { \"v\": [\"Cerrar navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir navegación\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Close navigation\": { \"v\": [\"Cerrar navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir navegación\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Close navigation\": { \"v\": [\"Cerrar navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir navegación\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Close navigation\": { \"v\": [\"Sulge navigatsioon\"] }, \"Open navigation\": { \"v\": [\"Ava liikumisvaade\"] } } }, { \"l\": \"eu\", \"t\": { \"Close navigation\": { \"v\": [\"Itxi nabigazioa\"] }, \"Open navigation\": { \"v\": [\"Ireki nabigazioa\"] } } }, { \"l\": \"fa\", \"t\": { \"Close navigation\": { \"v\": [\"بستن بخش ناوبری\"] }, \"Open navigation\": { \"v\": [\"باز کردن بخش ناوبری\"] } } }, { \"l\": \"fi\", \"t\": { \"Close navigation\": { \"v\": [\"Sulje navigaatio\"] } } }, { \"l\": \"fr\", \"t\": { \"Close navigation\": { \"v\": [\"Fermer la navigation\"] }, \"Open navigation\": { \"v\": [\"Ouvrir la navigation\"] } } }, { \"l\": \"ga\", \"t\": { \"Close navigation\": { \"v\": [\"Dún nascleanúint\"] }, \"Open navigation\": { \"v\": [\"Oscail nascleanúint\"] } } }, { \"l\": \"gl\", \"t\": { \"Close navigation\": { \"v\": [\"Pechar a navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir a navegación\"] } } }, { \"l\": \"he\", \"t\": { \"Close navigation\": { \"v\": [\"סגירת הניווט\"] }, \"Open navigation\": { \"v\": [\"פתיחת ניווט\"] } } }, { \"l\": \"hu\", \"t\": { \"Close navigation\": { \"v\": [\"Navigáció bezárása\"] }, \"Open navigation\": { \"v\": [\"Navigáció megnyitása\"] } } }, { \"l\": \"id\", \"t\": { \"Close navigation\": { \"v\": [\"Tutup navigasi\"] }, \"Open navigation\": { \"v\": [\"Buka navigasi\"] } } }, { \"l\": \"is\", \"t\": { \"Close navigation\": { \"v\": [\"Loka leiðsagnarsleða\"] } } }, { \"l\": \"it\", \"t\": { \"Close navigation\": { \"v\": [\"Chiudi la navigazione\"] }, \"Open navigation\": { \"v\": [\"Apri la navigazione\"] } } }, { \"l\": \"ja\", \"t\": { \"Close navigation\": { \"v\": [\"ナビゲーションを閉じる\"] }, \"Open navigation\": { \"v\": [\"ナビゲーションを開く\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Close navigation\": { \"v\": [\"ナビゲーションを閉じる\"] }, \"Open navigation\": { \"v\": [\"ナビゲーションを開く\"] } } }, { \"l\": \"ko\", \"t\": { \"Close navigation\": { \"v\": [\"탐색 닫기\"] }, \"Open navigation\": { \"v\": [\"탐색 열기\"] } } }, { \"l\": \"lo\", \"t\": { \"Close navigation\": { \"v\": [\"ປິດການນຳທາງ\"] }, \"Open navigation\": { \"v\": [\"ເປີດການນຳທາງ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Close navigation\": { \"v\": [\"Затвори навигација\"] }, \"Open navigation\": { \"v\": [\"Отвори навигација\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Close navigation\": { \"v\": [\"Lukk navigasjon\"] }, \"Open navigation\": { \"v\": [\"Åpne navigasjon\"] } } }, { \"l\": \"nl\", \"t\": { \"Close navigation\": { \"v\": [\"Navigatie sluiten\"] }, \"Open navigation\": { \"v\": [\"Navigatie openen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Close navigation\": { \"v\": [\"Zamknij nawigację\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Close navigation\": { \"v\": [\"Fechar navegação\"] }, \"Open navigation\": { \"v\": [\"Abrir navegação\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Close navigation\": { \"v\": [\"Fechar navegação\"] }, \"Open navigation\": { \"v\": [\"Abrir navegação\"] } } }, { \"l\": \"ro\", \"t\": { \"Close navigation\": { \"v\": [\"Închideți navigarea\"] }, \"Open navigation\": { \"v\": [\"Deschideți navigația\"] } } }, { \"l\": \"ru\", \"t\": { \"Close navigation\": { \"v\": [\"Закрыть навигацию\"] }, \"Open navigation\": { \"v\": [\"Открыть навигацию\"] } } }, { \"l\": \"sk\", \"t\": { \"Close navigation\": { \"v\": [\"Zavrieť navigáciu\"] } } }, { \"l\": \"sl\", \"t\": { \"Close navigation\": { \"v\": [\"Zapri krmarjenje\"] }, \"Open navigation\": { \"v\": [\"Odpri krmarjenje\"] } } }, { \"l\": \"sr\", \"t\": { \"Close navigation\": { \"v\": [\"Затвори навигацију\"] }, \"Open navigation\": { \"v\": [\"Отвори навигацију\"] } } }, { \"l\": \"sv\", \"t\": { \"Close navigation\": { \"v\": [\"Stäng navigering\"] } } }, { \"l\": \"tr\", \"t\": { \"Close navigation\": { \"v\": [\"Gezinmeyi kapat\"] }, \"Open navigation\": { \"v\": [\"Gezinmeyi aç\"] } } }, { \"l\": \"uk\", \"t\": { \"Close navigation\": { \"v\": [\"Закрити навігацію\"] }, \"Open navigation\": { \"v\": [\"Перейти до навігації\"] } } }, { \"l\": \"uz\", \"t\": { \"Close navigation\": { \"v\": [\"Navigatsiyani yopish\"] }, \"Open navigation\": { \"v\": [\"Navigatsiyani oching\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Close navigation\": { \"v\": [\"关闭导航\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Close navigation\": { \"v\": [\"關閉導航\"] }, \"Open navigation\": { \"v\": [\"開啟導航\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Close navigation\": { \"v\": [\"關閉導航\"] }, \"Open navigation\": { \"v\": [\"開啟導航\"] } } }];\nconst t21 = [{ \"l\": \"ar\", \"t\": { \"Collapse menu\": { \"v\": [\"طي القائمة\"] }, \"Open menu\": { \"v\": [\"إفتَح القائمة\"] } } }, { \"l\": \"ast\", \"t\": { \"Collapse menu\": { \"v\": [\"Recoyer el menú\"] }, \"Open menu\": { \"v\": [\"Abrir le menú\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Collapse menu\": { \"v\": [\"Sbalit nabídku\"] }, \"Open menu\": { \"v\": [\"Otevřít nabídku\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Collapse menu\": { \"v\": [\"Sbalit nabídku\"] }, \"Open menu\": { \"v\": [\"Otevřít nabídku\"] } } }, { \"l\": \"da\", \"t\": { \"Collapse menu\": { \"v\": [\"Skjul menuen\"] }, \"Open menu\": { \"v\": [\"Åben menu\"] } } }, { \"l\": \"de\", \"t\": { \"Collapse menu\": { \"v\": [\"Menü einklappen\"] }, \"Open menu\": { \"v\": [\"Menü öffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Collapse menu\": { \"v\": [\"Menü einklappen\"] }, \"Open menu\": { \"v\": [\"Menü öffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Collapse menu\": { \"v\": [\"Σύμπτυξη μενού\"] }, \"Open menu\": { \"v\": [\"Άνοιγμα μενού\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Collapse menu\": { \"v\": [\"Collapse menu\"] }, \"Open menu\": { \"v\": [\"Open menu\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Collapse menu\": { \"v\": [\"Menüü kokkuklappimine\"] }, \"Open menu\": { \"v\": [\"Ava menüü\"] } } }, { \"l\": \"eu\", \"t\": { \"Collapse menu\": { \"v\": [\"Tolestu menua\"] }, \"Open menu\": { \"v\": [\"Ireki menua\"] } } }, { \"l\": \"fa\", \"t\": { \"Collapse menu\": { \"v\": [\"بستن فهرست\"] }, \"Open menu\": { \"v\": [\"باز کردن فهرست\"] } } }, { \"l\": \"fi\", \"t\": { \"Collapse menu\": { \"v\": [\"Supista valikko\"] }, \"Open menu\": { \"v\": [\"Avaa valikko\"] } } }, { \"l\": \"fr\", \"t\": { \"Collapse menu\": { \"v\": [\"Réduire le menu\"] }, \"Open menu\": { \"v\": [\"Ouvrir le menu\"] } } }, { \"l\": \"ga\", \"t\": { \"Collapse menu\": { \"v\": [\"Roghchlár Laghdaigh\"] }, \"Open menu\": { \"v\": [\"Roghchlár a oscailt\"] } } }, { \"l\": \"gl\", \"t\": { \"Collapse menu\": { \"v\": [\"Contraer o menú\"] }, \"Open menu\": { \"v\": [\"Abrir o menú\"] } } }, { \"l\": \"he\", \"t\": { \"Collapse menu\": { \"v\": [\"צמצום התפריט\"] }, \"Open menu\": { \"v\": [\"פתיחת תפריט\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Collapse menu\": { \"v\": [\"Ciutkan menu\"] }, \"Open menu\": { \"v\": [\"Buka menu\"] } } }, { \"l\": \"is\", \"t\": { \"Collapse menu\": { \"v\": [\"Fella valmynd saman\"] }, \"Open menu\": { \"v\": [\"Opna valmynd\"] } } }, { \"l\": \"it\", \"t\": { \"Collapse menu\": { \"v\": [\"Chiudi Menu\"] }, \"Open menu\": { \"v\": [\"Apri il menu\"] } } }, { \"l\": \"ja\", \"t\": { \"Collapse menu\": { \"v\": [\"メニューの折りたたみ\"] }, \"Open menu\": { \"v\": [\"メニューを開く\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Collapse menu\": { \"v\": [\"メニューの折りたたみ\"] }, \"Open menu\": { \"v\": [\"メニューを開く\"] } } }, { \"l\": \"ko\", \"t\": { \"Collapse menu\": { \"v\": [\"메뉴 접기\"] }, \"Open menu\": { \"v\": [\"메뉴 열기\"] } } }, { \"l\": \"lo\", \"t\": { \"Collapse menu\": { \"v\": [\"ຫຍໍ້ເມນູ\"] }, \"Open menu\": { \"v\": [\"ເປີດເມນູ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Collapse menu\": { \"v\": [\"Скриј мени\"] }, \"Open menu\": { \"v\": [\"Отвори мени\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Collapse menu\": { \"v\": [\"Skjul meny\"] }, \"Open menu\": { \"v\": [\"Åpne meny\"] } } }, { \"l\": \"nl\", \"t\": { \"Collapse menu\": { \"v\": [\"Menu inklappen\"] }, \"Open menu\": { \"v\": [\"Menu openen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Collapse menu\": { \"v\": [\"Zwiń menu\"] }, \"Open menu\": { \"v\": [\"Otwórz menu\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Collapse menu\": { \"v\": [\"Recolher menu\"] }, \"Open menu\": { \"v\": [\"Abrir menu\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menu\"] }, \"Open menu\": { \"v\": [\"Abrir menu\"] } } }, { \"l\": \"ro\", \"t\": { \"Collapse menu\": { \"v\": [\"Restrânge meniul\"] }, \"Open menu\": { \"v\": [\"Deschide meniul\"] } } }, { \"l\": \"ru\", \"t\": { \"Collapse menu\": { \"v\": [\"Свернуть меню\"] }, \"Open menu\": { \"v\": [\"Открыть меню\"] } } }, { \"l\": \"sk\", \"t\": { \"Collapse menu\": { \"v\": [\"Zbaliť menu\"] }, \"Open menu\": { \"v\": [\"Otvoriť menu\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Collapse menu\": { \"v\": [\"Сажми мени\"] }, \"Open menu\": { \"v\": [\"Отвори мени\"] } } }, { \"l\": \"sv\", \"t\": { \"Collapse menu\": { \"v\": [\"Dölj menyn\"] }, \"Open menu\": { \"v\": [\"Öppna menyn\"] } } }, { \"l\": \"tr\", \"t\": { \"Collapse menu\": { \"v\": [\"Menüyü daralt\"] }, \"Open menu\": { \"v\": [\"Menüyü aç\"] } } }, { \"l\": \"uk\", \"t\": { \"Collapse menu\": { \"v\": [\"Згорнути меню\"] }, \"Open menu\": { \"v\": [\"Відкрити меню\"] } } }, { \"l\": \"uz\", \"t\": { \"Collapse menu\": { \"v\": [\"Menyuni yig‘ish\"] }, \"Open menu\": { \"v\": [\"Menyuni oching\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Collapse menu\": { \"v\": [\"收起菜单\"] }, \"Open menu\": { \"v\": [\"打开菜单\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Collapse menu\": { \"v\": [\"折疊選單\"] }, \"Open menu\": { \"v\": [\"開啟選單\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Collapse menu\": { \"v\": [\"折疊選單\"] }, \"Open menu\": { \"v\": [\"開啟選單\"] } } }];\nconst t22 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Copied\": { \"v\": [\"Zkopírováno\"] }, \"Copy to clipboard\": { \"v\": [\"Zkopírovat do schránky\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": {} }, { \"l\": \"de\", \"t\": { \"Copied\": { \"v\": [\"Kopiert\"] }, \"Copy to clipboard\": { \"v\": [\"In die Zwischenablage kopieren\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Copied\": { \"v\": [\"Kopiert\"] }, \"Copy to clipboard\": { \"v\": [\"In die Zwischenablage kopieren\"] } } }, { \"l\": \"el\", \"t\": {} }, { \"l\": \"en-GB\", \"t\": { \"Copied\": { \"v\": [\"Copied\"] }, \"Copy to clipboard\": { \"v\": [\"Copy to clipboard\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Copied\": { \"v\": [\"Kopeeritud\"] }, \"Copy to clipboard\": { \"v\": [\"Kopeeri lõikelauale\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Copied\": { \"v\": [\"Copié\"] }, \"Copy to clipboard\": { \"v\": [\"Copier dans le presse-papiers\"] } } }, { \"l\": \"ga\", \"t\": { \"Copied\": { \"v\": [\"Cóipeáilte\"] }, \"Copy to clipboard\": { \"v\": [\"Cóipeáil chuig an ghearrthaisce\"] } } }, { \"l\": \"gl\", \"t\": { \"Copied\": { \"v\": [\"Copiado\"] }, \"Copy to clipboard\": { \"v\": [\"Copiar ao portapapeis\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Copied\": { \"v\": [\"コピーされました\"] }, \"Copy to clipboard\": { \"v\": [\"クリップボードにコピー\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": {} }, { \"l\": \"lo\", \"t\": { \"Copied\": { \"v\": [\"ສຳເນົາແລ້ວ\"] }, \"Copy to clipboard\": { \"v\": [\"ສຳເນົາໃສ່ຄລິບບອດ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": {} }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": {} }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Copied\": { \"v\": [\"Copiado\"] }, \"Copy to clipboard\": { \"v\": [\"Copiar para a área de transferência\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Copied\": { \"v\": [\"Скопировано\"] }, \"Copy to clipboard\": { \"v\": [\"Скопировать в буфер\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": {} }, { \"l\": \"sv\", \"t\": {} }, { \"l\": \"tr\", \"t\": { \"Copied\": { \"v\": [\"Kopyalandı\"] }, \"Copy to clipboard\": { \"v\": [\"Panoya kopyalandı\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": {} }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Copied\": { \"v\": [\"已被複製\"] }, \"Copy to clipboard\": { \"v\": [\"複製到剪貼簿\"] } } }, { \"l\": \"zh-TW\", \"t\": {} }];\nconst t23 = [{ \"l\": \"ar\", \"t\": { \"Edit item\": { \"v\": [\"تعديل عنصر\"] } } }, { \"l\": \"ast\", \"t\": { \"Edit item\": { \"v\": [\"Editar l'elementu\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Edit item\": { \"v\": [\"Edita l'element\"] } } }, { \"l\": \"cs\", \"t\": { \"Edit item\": { \"v\": [\"Upravit položku\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Edit item\": { \"v\": [\"Upravit položku\"] } } }, { \"l\": \"da\", \"t\": { \"Edit item\": { \"v\": [\"Rediger emne\"] } } }, { \"l\": \"de\", \"t\": { \"Edit item\": { \"v\": [\"Element bearbeiten\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Edit item\": { \"v\": [\"Element bearbeiten\"] } } }, { \"l\": \"el\", \"t\": { \"Edit item\": { \"v\": [\"Επεξεργασία αντικειμένου\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Edit item\": { \"v\": [\"Edit item\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Edit item\": { \"v\": [\"Muuda objekti\"] } } }, { \"l\": \"eu\", \"t\": { \"Edit item\": { \"v\": [\"Editatu elementua\"] } } }, { \"l\": \"fa\", \"t\": { \"Edit item\": { \"v\": [\"ویرایش مورد\"] } } }, { \"l\": \"fi\", \"t\": { \"Edit item\": { \"v\": [\"Muokkaa kohdetta\"] } } }, { \"l\": \"fr\", \"t\": { \"Edit item\": { \"v\": [\"Éditer l'élément\"] } } }, { \"l\": \"ga\", \"t\": { \"Edit item\": { \"v\": [\"Cuir mír in eagar\"] } } }, { \"l\": \"gl\", \"t\": { \"Edit item\": { \"v\": [\"Editar o elemento\"] } } }, { \"l\": \"he\", \"t\": { \"Edit item\": { \"v\": [\"עריכת פריט\"] } } }, { \"l\": \"hu\", \"t\": { \"Edit item\": { \"v\": [\"Elem szerkesztése\"] } } }, { \"l\": \"id\", \"t\": { \"Edit item\": { \"v\": [\"Edit item\"] } } }, { \"l\": \"is\", \"t\": { \"Edit item\": { \"v\": [\"Breyta atriði\"] } } }, { \"l\": \"it\", \"t\": { \"Edit item\": { \"v\": [\"Modifica l'elemento\"] } } }, { \"l\": \"ja\", \"t\": { \"Edit item\": { \"v\": [\"編集\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Edit item\": { \"v\": [\"編集\"] } } }, { \"l\": \"ko\", \"t\": { \"Edit item\": { \"v\": [\"항목 수정\"] } } }, { \"l\": \"lo\", \"t\": { \"Edit item\": { \"v\": [\"ແກ້ໄຂລາຍການ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Edit item\": { \"v\": [\"Уреди\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Edit item\": { \"v\": [\"Rediger\"] } } }, { \"l\": \"nl\", \"t\": { \"Edit item\": { \"v\": [\"Item bewerken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Edit item\": { \"v\": [\"Edytuj element\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Edit item\": { \"v\": [\"Editar item\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Edit item\": { \"v\": [\"Editar item\"] } } }, { \"l\": \"ro\", \"t\": { \"Edit item\": { \"v\": [\"Editați elementul\"] } } }, { \"l\": \"ru\", \"t\": { \"Edit item\": { \"v\": [\"Изменить элемент\"] } } }, { \"l\": \"sk\", \"t\": { \"Edit item\": { \"v\": [\"Upraviť položku\"] } } }, { \"l\": \"sl\", \"t\": { \"Edit item\": { \"v\": [\"Uredi predmet\"] } } }, { \"l\": \"sr\", \"t\": { \"Edit item\": { \"v\": [\"Уреди ставку\"] } } }, { \"l\": \"sv\", \"t\": { \"Edit item\": { \"v\": [\"Redigera objekt\"] } } }, { \"l\": \"tr\", \"t\": { \"Edit item\": { \"v\": [\"Ögeyi düzenle\"] } } }, { \"l\": \"uk\", \"t\": { \"Edit item\": { \"v\": [\"Редагувати елемент\"] } } }, { \"l\": \"uz\", \"t\": { \"Edit item\": { \"v\": [\"Elementni tahrirlash\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Edit item\": { \"v\": [\"编辑项目\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Edit item\": { \"v\": [\"編輯項目\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Edit item\": { \"v\": [\"編輯項目\"] } } }];\nconst t24 = [{ \"l\": \"ar\", \"t\": { \"Enable interactive view\": { \"v\": [\"تمكين المنظور التفاعلي\"] } } }, { \"l\": \"ast\", \"t\": { \"Enable interactive view\": { \"v\": [\"Activar la vista interactiva\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Enable interactive view\": { \"v\": [\"Zapnout interaktivní zobrazení\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Enable interactive view\": { \"v\": [\"Aktiver interaktiv visning\"] } } }, { \"l\": \"de\", \"t\": { \"Enable interactive view\": { \"v\": [\"Die interaktive Ansicht aktivieren\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Enable interactive view\": { \"v\": [\"Die interaktive Ansicht aktivieren\"] } } }, { \"l\": \"el\", \"t\": { \"Enable interactive view\": { \"v\": [\"Ενεργοποίηση διαδραστικής προβολής\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Enable interactive view\": { \"v\": [\"Enable interactive view\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Enable interactive view\": { \"v\": [\"Habilitar vista interactiva\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Enable interactive view\": { \"v\": [\"Habilitar vista interactiva\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Enable interactive view\": { \"v\": [\"Habilitar vista interactiva\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Enable interactive view\": { \"v\": [\"Lülita interaktiivne vaade sisse\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Enable interactive view\": { \"v\": [\"فعالسازی نمای تعاملی\"] } } }, { \"l\": \"fi\", \"t\": { \"Enable interactive view\": { \"v\": [\"Näytä vuorovaikutteinen näkymä\"] } } }, { \"l\": \"fr\", \"t\": { \"Enable interactive view\": { \"v\": [\"Activer la vue interactive\"] } } }, { \"l\": \"ga\", \"t\": { \"Enable interactive view\": { \"v\": [\"Cumasaigh amharc idirghníomhach\"] } } }, { \"l\": \"gl\", \"t\": { \"Enable interactive view\": { \"v\": [\"Activar a vista interactiva\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": { \"Enable interactive view\": { \"v\": [\"Virkja gagnvirka sýn\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Enable interactive view\": { \"v\": [\"インタラクティブ・ビューを有効にする\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Enable interactive view\": { \"v\": [\"インタラクティブ・ビューを有効にする\"] } } }, { \"l\": \"ko\", \"t\": { \"Enable interactive view\": { \"v\": [\"대화형 보기 활성화\"] } } }, { \"l\": \"lo\", \"t\": { \"Enable interactive view\": { \"v\": [\"ເປີດໃຊ້ງານມຸມມອງໂຕ້ຕອບ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Enable interactive view\": { \"v\": [\"Овозможи интерактивен приказ\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Enable interactive view\": { \"v\": [\"Aktiver interaktiv visning\"] } } }, { \"l\": \"nl\", \"t\": { \"Enable interactive view\": { \"v\": [\"Interactieve weergave inschakelen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Enable interactive view\": { \"v\": [\"Włącz widok interaktywny\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Enable interactive view\": { \"v\": [\"Ativar visualização interativa\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Enable interactive view\": { \"v\": [\"Ativar vista interativa\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Enable interactive view\": { \"v\": [\"Включить интерактивный просмотр\"] } } }, { \"l\": \"sk\", \"t\": { \"Enable interactive view\": { \"v\": [\"Povoliť interaktívny pohľad\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Enable interactive view\": { \"v\": [\"Укључи интерактивни приказ\"] } } }, { \"l\": \"sv\", \"t\": { \"Enable interactive view\": { \"v\": [\"Aktivera interaktiv vy\"] } } }, { \"l\": \"tr\", \"t\": { \"Enable interactive view\": { \"v\": [\"Etkileşimli görünümü aç\"] } } }, { \"l\": \"uk\", \"t\": { \"Enable interactive view\": { \"v\": [\"Увімкнути інтерактивний перегляд\"] } } }, { \"l\": \"uz\", \"t\": { \"Enable interactive view\": { \"v\": [\"Interaktiv ko'rinishni yoqing\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Enable interactive view\": { \"v\": [\"启用交互视窗\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Enable interactive view\": { \"v\": [\"啟用互動視圖\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Enable interactive view\": { \"v\": [\"啟用互動檢視\"] } } }];\nconst t25 = [{ \"l\": \"ar\", \"t\": { \"Enter link\": { \"v\": [\"أدخِل الرابط\"] } } }, { \"l\": \"ast\", \"t\": { \"Enter link\": { \"v\": [\"Introducir l'enllaz\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Enter link\": { \"v\": [\"Zadat odkaz\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Enter link\": { \"v\": [\"Zadat odkaz\"] } } }, { \"l\": \"da\", \"t\": { \"Enter link\": { \"v\": [\"Indtast link\"] } } }, { \"l\": \"de\", \"t\": { \"Enter link\": { \"v\": [\"Link eingeben\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Enter link\": { \"v\": [\"Link eingeben\"] } } }, { \"l\": \"el\", \"t\": { \"Enter link\": { \"v\": [\"Εισάγετε σύνδεσμο\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Enter link\": { \"v\": [\"Enter link\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Enter link\": { \"v\": [\"Ingrese enlace\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Enter link\": { \"v\": [\"Ingresar enlace\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Enter link\": { \"v\": [\"Ingresar enlace\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Enter link\": { \"v\": [\"Ingresar enlace\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Enter link\": { \"v\": [\"Sisesta link\"] } } }, { \"l\": \"eu\", \"t\": { \"Enter link\": { \"v\": [\"Sartu esteka\"] } } }, { \"l\": \"fa\", \"t\": { \"Enter link\": { \"v\": [\"لینک را وارد کنید\"] } } }, { \"l\": \"fi\", \"t\": { \"Enter link\": { \"v\": [\"Kirjoita linkki\"] } } }, { \"l\": \"fr\", \"t\": { \"Enter link\": { \"v\": [\"Saisissez le lien\"] } } }, { \"l\": \"ga\", \"t\": { \"Enter link\": { \"v\": [\"Cuir isteach nasc\"] } } }, { \"l\": \"gl\", \"t\": { \"Enter link\": { \"v\": [\"Introducir a ligazón\"] } } }, { \"l\": \"he\", \"t\": { \"Enter link\": { \"v\": [\"מילוי קישור\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Enter link\": { \"v\": [\"Masukkan tautan\"] } } }, { \"l\": \"is\", \"t\": { \"Enter link\": { \"v\": [\"Settu inn tengil\"] } } }, { \"l\": \"it\", \"t\": { \"Enter link\": { \"v\": [\"Inserire il link\"] } } }, { \"l\": \"ja\", \"t\": { \"Enter link\": { \"v\": [\"リンクを入力する\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Enter link\": { \"v\": [\"リンクを入力する\"] } } }, { \"l\": \"ko\", \"t\": { \"Enter link\": { \"v\": [\"링크 입력\"] } } }, { \"l\": \"lo\", \"t\": { \"Enter link\": { \"v\": [\"ປ້ອນລິງ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Enter link\": { \"v\": [\"Внеси линк\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Enter link\": { \"v\": [\"Skriv inn lenken\"] } } }, { \"l\": \"nl\", \"t\": { \"Enter link\": { \"v\": [\"Link invoeren\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Enter link\": { \"v\": [\"Wprowadź link\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Enter link\": { \"v\": [\"Insira o link\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Enter link\": { \"v\": [\"Inserir hiperligação\"] } } }, { \"l\": \"ro\", \"t\": { \"Enter link\": { \"v\": [\"Introduceți link-ul\"] } } }, { \"l\": \"ru\", \"t\": { \"Enter link\": { \"v\": [\"Введите ссылку\"] } } }, { \"l\": \"sk\", \"t\": { \"Enter link\": { \"v\": [\"Vložiť link\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Enter link\": { \"v\": [\"Унесите линк\"] } } }, { \"l\": \"sv\", \"t\": { \"Enter link\": { \"v\": [\"Ange länk\"] } } }, { \"l\": \"tr\", \"t\": { \"Enter link\": { \"v\": [\"Bağlantıyı yazın\"] } } }, { \"l\": \"uk\", \"t\": { \"Enter link\": { \"v\": [\"Зазначте посилання\"] } } }, { \"l\": \"uz\", \"t\": { \"Enter link\": { \"v\": [\"Havolani kiriting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Enter link\": { \"v\": [\"输入链接\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Enter link\": { \"v\": [\"輸入連結\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Enter link\": { \"v\": [\"輸入連結\"] } } }];\nconst t26 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"External documentation\": { \"v\": [\"Externí dokumentace\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"External documentation\": { \"v\": [\"Ekstern dokumentation\"] } } }, { \"l\": \"de\", \"t\": { \"External documentation\": { \"v\": [\"Externe Dokumentation\"] } } }, { \"l\": \"de-DE\", \"t\": { \"External documentation\": { \"v\": [\"Externe Dokumentation\"] } } }, { \"l\": \"el\", \"t\": { \"External documentation\": { \"v\": [\"Εξωτερική τεκμηρίωση\"] } } }, { \"l\": \"en-GB\", \"t\": { \"External documentation\": { \"v\": [\"External documentation\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"External documentation\": { \"v\": [\"Dokumentatsioon välises allikas\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"External documentation\": { \"v\": [\"Documentation externe\"] } } }, { \"l\": \"ga\", \"t\": { \"External documentation\": { \"v\": [\"Doiciméadú seachtrach\"] } } }, { \"l\": \"gl\", \"t\": { \"External documentation\": { \"v\": [\"Documentación externa\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"External documentation\": { \"v\": [\"外部ドキュメント\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": {} }, { \"l\": \"lo\", \"t\": { \"External documentation\": { \"v\": [\"ເອກະສານພາຍນອກ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"External documentation\": { \"v\": [\"Надворешна документација\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"External documentation\": { \"v\": [\"Externe documentatie\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"External documentation\": { \"v\": [\"Documentação externa\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"External documentation\": { \"v\": [\"Внешняя документация\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"External documentation\": { \"v\": [\"Спољна документација\"] } } }, { \"l\": \"sv\", \"t\": {} }, { \"l\": \"tr\", \"t\": { \"External documentation\": { \"v\": [\"Dış belgeler\"] } } }, { \"l\": \"uk\", \"t\": { \"External documentation\": { \"v\": [\"Зовнішня документація\"] } } }, { \"l\": \"uz\", \"t\": { \"External documentation\": { \"v\": [\"Tashqi hujjatlar\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"External documentation\": { \"v\": [\"外部文件\"] } } }, { \"l\": \"zh-TW\", \"t\": {} }];\nconst t27 = [{ \"l\": \"ar\", \"t\": { \"Go back to the list\": { \"v\": [\"عودة إلى القائمة\"] } } }, { \"l\": \"ast\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver a la llista\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Go back to the list\": { \"v\": [\"Torna a la llista\"] } } }, { \"l\": \"cs\", \"t\": { \"Go back to the list\": { \"v\": [\"Jít zpět na seznam\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Go back to the list\": { \"v\": [\"Jít zpět na seznam\"] } } }, { \"l\": \"da\", \"t\": { \"Go back to the list\": { \"v\": [\"Tilbage til listen\"] } } }, { \"l\": \"de\", \"t\": { \"Go back to the list\": { \"v\": [\"Zurück zur Liste\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Go back to the list\": { \"v\": [\"Zurück zur Liste\"] } } }, { \"l\": \"el\", \"t\": { \"Go back to the list\": { \"v\": [\"Επιστροφή στην αρχική λίστα\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Go back to the list\": { \"v\": [\"Go back to the list\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver a la lista\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver a la lista\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver a la lista\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Go back to the list\": { \"v\": [\"Regresar a la lista\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Go back to the list\": { \"v\": [\"Tagasi nimekirja juurde\"] } } }, { \"l\": \"eu\", \"t\": { \"Go back to the list\": { \"v\": [\"Bueltatu zerrendara\"] } } }, { \"l\": \"fa\", \"t\": { \"Go back to the list\": { \"v\": [\"برگشت به لیست\"] } } }, { \"l\": \"fi\", \"t\": { \"Go back to the list\": { \"v\": [\"Takaisin listaan\"] } } }, { \"l\": \"fr\", \"t\": { \"Go back to the list\": { \"v\": [\"Retourner à la liste\"] } } }, { \"l\": \"ga\", \"t\": { \"Go back to the list\": { \"v\": [\"Téigh ar ais go dtí an liosta\"] } } }, { \"l\": \"gl\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver á lista\"] } } }, { \"l\": \"he\", \"t\": { \"Go back to the list\": { \"v\": [\"חזרה לרשימה\"] } } }, { \"l\": \"hu\", \"t\": { \"Go back to the list\": { \"v\": [\"Ugrás vissza a listához\"] } } }, { \"l\": \"id\", \"t\": { \"Go back to the list\": { \"v\": [\"Kembali ke daftar\"] } } }, { \"l\": \"is\", \"t\": { \"Go back to the list\": { \"v\": [\"Fara til baka í listann\"] } } }, { \"l\": \"it\", \"t\": { \"Go back to the list\": { \"v\": [\"Torna all'elenco\"] } } }, { \"l\": \"ja\", \"t\": { \"Go back to the list\": { \"v\": [\"リストに戻る\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Go back to the list\": { \"v\": [\"リストに戻る\"] } } }, { \"l\": \"ko\", \"t\": { \"Go back to the list\": { \"v\": [\"목록으로 돌아가기\"] } } }, { \"l\": \"lo\", \"t\": { \"Go back to the list\": { \"v\": [\"ກັບໄປທີ່ລາຍການ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Go back to the list\": { \"v\": [\"Врати се на листата\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Go back to the list\": { \"v\": [\"Gå tilbake til listen\"] } } }, { \"l\": \"nl\", \"t\": { \"Go back to the list\": { \"v\": [\"Ga terug naar de lijst\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Go back to the list\": { \"v\": [\"Powrót do listy\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Go back to the list\": { \"v\": [\"Voltar para a lista\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Go back to the list\": { \"v\": [\"Voltar para a lista\"] } } }, { \"l\": \"ro\", \"t\": { \"Go back to the list\": { \"v\": [\"Întoarceți-vă la listă\"] } } }, { \"l\": \"ru\", \"t\": { \"Go back to the list\": { \"v\": [\"Вернуться к списку\"] } } }, { \"l\": \"sk\", \"t\": { \"Go back to the list\": { \"v\": [\"Späť na zoznam\"] } } }, { \"l\": \"sl\", \"t\": { \"Go back to the list\": { \"v\": [\"Vrni se na seznam\"] } } }, { \"l\": \"sr\", \"t\": { \"Go back to the list\": { \"v\": [\"Назад на листу\"] } } }, { \"l\": \"sv\", \"t\": { \"Go back to the list\": { \"v\": [\"Gå tillbaka till listan\"] } } }, { \"l\": \"tr\", \"t\": { \"Go back to the list\": { \"v\": [\"Listeye dön\"] } } }, { \"l\": \"uk\", \"t\": { \"Go back to the list\": { \"v\": [\"Повернутися до списку\"] } } }, { \"l\": \"uz\", \"t\": { \"Go back to the list\": { \"v\": [\"Ro'yxatga qayting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Go back to the list\": { \"v\": [\"返回至列表\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Go back to the list\": { \"v\": [\"返回清單\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Go back to the list\": { \"v\": [\"回到清單\"] } } }];\nconst t28 = [{ \"l\": \"ar\", \"t\": { \"Hide details\": { \"v\": [\"أخفِ التفاصيل\"] }, \"Rename project\": { \"v\": [\"تغيير اسم المشروع\"] }, \"Show details\": { \"v\": [\"أظهِر التفاصيل\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Hide details\": { \"v\": [\"Skrýt podrobnosti\"] }, \"Rename project\": { \"v\": [\"Přejmenovat projekt\"] }, \"Show details\": { \"v\": [\"Zobrazit podrobnosti\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Hide details\": { \"v\": [\"Skjul detaljer\"] }, \"Rename project\": { \"v\": [\"Omdøb projekt\"] }, \"Show details\": { \"v\": [\"Vis detaljer\"] } } }, { \"l\": \"de\", \"t\": { \"Hide details\": { \"v\": [\"Details ausblenden\"] }, \"Rename project\": { \"v\": [\"Projekt umbenennen\"] }, \"Show details\": { \"v\": [\"Details anzeigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Hide details\": { \"v\": [\"Details ausblenden\"] }, \"Rename project\": { \"v\": [\"Projekt umbenennen\"] }, \"Show details\": { \"v\": [\"Details anzeigen\"] } } }, { \"l\": \"el\", \"t\": { \"Hide details\": { \"v\": [\"Απόκρυψη λεπτομερειών\"] }, \"Rename project\": { \"v\": [\"Μετονομασία έργου\"] }, \"Show details\": { \"v\": [\"Εμφάνιση λεπτομερειών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Hide details\": { \"v\": [\"Hide details\"] }, \"Rename project\": { \"v\": [\"Rename project\"] }, \"Show details\": { \"v\": [\"Show details\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalles\"] }, \"Rename project\": { \"v\": [\"Renombrar proyecto\"] }, \"Show details\": { \"v\": [\"Mostrar detalles\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalles\"] }, \"Rename project\": { \"v\": [\"Renombrar proyecto\"] }, \"Show details\": { \"v\": [\"Mostrar detalles\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Hide details\": { \"v\": [\"Peida üksikasjad\"] }, \"Rename project\": { \"v\": [\"Muuda projekti nime\"] }, \"Show details\": { \"v\": [\"Näita üksikasju\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Hide details\": { \"v\": [\"پنهان کردن جزئیات\"] }, \"Rename project\": { \"v\": [\"تغییر نام پروژه\"] }, \"Show details\": { \"v\": [\"نمایش جزئیات\"] } } }, { \"l\": \"fi\", \"t\": { \"Hide details\": { \"v\": [\"Piilota yksityiskohdat\"] }, \"Rename project\": { \"v\": [\"Nimeä projekti\"] }, \"Show details\": { \"v\": [\"Näytä yksityiskohdat\"] } } }, { \"l\": \"fr\", \"t\": { \"Hide details\": { \"v\": [\"Masquer les détails\"] }, \"Rename project\": { \"v\": [\"Renommer le projet\"] }, \"Show details\": { \"v\": [\"Afficher les détails\"] } } }, { \"l\": \"ga\", \"t\": { \"Hide details\": { \"v\": [\"Folaigh sonraí\"] }, \"Rename project\": { \"v\": [\"Athainmnigh an tionscadal\"] }, \"Show details\": { \"v\": [\"Taispeáin sonraí\"] } } }, { \"l\": \"gl\", \"t\": { \"Hide details\": { \"v\": [\"Agochar os detalles\"] }, \"Rename project\": { \"v\": [\"Cambiar o nome do proxecto\"] }, \"Show details\": { \"v\": [\"Amosar os detalles\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": { \"Hide details\": { \"v\": [\"Fela nánari upplýsingar\"] }, \"Rename project\": { \"v\": [\"Endurnefna verkefni\"] }, \"Show details\": { \"v\": [\"Birta nánari upplýsingar\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Hide details\": { \"v\": [\"詳細を非表示\"] }, \"Rename project\": { \"v\": [\"プロジェクト名を変更\"] }, \"Show details\": { \"v\": [\"詳細の表示\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Hide details\": { \"v\": [\"세부 사항 숨기기\"] }, \"Rename project\": { \"v\": [\"프로젝트 이름 변경\"] }, \"Show details\": { \"v\": [\"세부 사항 보기\"] } } }, { \"l\": \"lo\", \"t\": { \"Hide details\": { \"v\": [\"ເຊື່ອງລາຍລະອຽດ\"] }, \"Rename project\": { \"v\": [\"ປ່ຽນຊື່ໂຄງການ\"] }, \"Show details\": { \"v\": [\"ສະແດງລາຍລະອຽດ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Hide details\": { \"v\": [\"Сокриј детали\"] }, \"Rename project\": { \"v\": [\"Преименувај проект\"] }, \"Show details\": { \"v\": [\"Прикажи детали\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Hide details\": { \"v\": [\"Skjul detaljer\"] }, \"Rename project\": { \"v\": [\"Gi prosjekt nytt navn\"] }, \"Show details\": { \"v\": [\"Vis detaljer\"] } } }, { \"l\": \"nl\", \"t\": { \"Hide details\": { \"v\": [\"Details verbergen\"] }, \"Rename project\": { \"v\": [\"Project hernoemen\"] }, \"Show details\": { \"v\": [\"Details weergeven\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Hide details\": { \"v\": [\"Ukryj szczegóły\"] }, \"Rename project\": { \"v\": [\"Zmień nazwę projektu\"] }, \"Show details\": { \"v\": [\"Pokaż szczegóły\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalhes\"] }, \"Rename project\": { \"v\": [\"Renomear projeto\"] }, \"Show details\": { \"v\": [\"Mostrar detalhes\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalhes\"] }, \"Rename project\": { \"v\": [\"Alterar nome do projeto\"] }, \"Show details\": { \"v\": [\"Ver detalhes\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Hide details\": { \"v\": [\"Скрыть подробности\"] }, \"Rename project\": { \"v\": [\"Переименовать проект\"] }, \"Show details\": { \"v\": [\"Показать детали\"] } } }, { \"l\": \"sk\", \"t\": { \"Hide details\": { \"v\": [\"Skryť detaily\"] }, \"Rename project\": { \"v\": [\"Premenovať projekt\"] }, \"Show details\": { \"v\": [\"Zobraziť detaily\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Hide details\": { \"v\": [\"Сакриј детаље\"] }, \"Rename project\": { \"v\": [\"Промени име пројекта\"] }, \"Show details\": { \"v\": [\"Прикажи детаље\"] } } }, { \"l\": \"sv\", \"t\": { \"Hide details\": { \"v\": [\"Göm detaljer\"] }, \"Rename project\": { \"v\": [\"Byt namn på projektet\"] }, \"Show details\": { \"v\": [\"Visa detaljer\"] } } }, { \"l\": \"tr\", \"t\": { \"Hide details\": { \"v\": [\"Ayrıntıları gizle\"] }, \"Rename project\": { \"v\": [\"Projeyi yeniden adlandır\"] }, \"Show details\": { \"v\": [\"Ayrıntıları görüntüle\"] } } }, { \"l\": \"uk\", \"t\": { \"Hide details\": { \"v\": [\"Сховати деталі\"] }, \"Rename project\": { \"v\": [\"Перейменувати проєкт\"] }, \"Show details\": { \"v\": [\"Показати деталі\"] } } }, { \"l\": \"uz\", \"t\": { \"Hide details\": { \"v\": [\"Tafsilotlarni yashirish\"] }, \"Rename project\": { \"v\": [\"Loyiha nomini o'zgartirish\"] }, \"Show details\": { \"v\": [\"Tafsilotlarni ko'rsatish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Hide details\": { \"v\": [\"隐藏细节\"] }, \"Rename project\": { \"v\": [\"重命名项目\"] }, \"Show details\": { \"v\": [\"显示细节\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Hide details\": { \"v\": [\"隱藏詳情\"] }, \"Rename project\": { \"v\": [\"重命名方案\"] }, \"Show details\": { \"v\": [\"顯示詳情\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Hide details\": { \"v\": [\"隱藏詳細資料\"] }, \"Rename project\": { \"v\": [\"重新命名專案\"] }, \"Show details\": { \"v\": [\"顯示詳細資訊\"] } } }];\nconst t29 = [{ \"l\": \"ar\", \"t\": { \"Hide password\": { \"v\": [\"إخفاء كلمة المرور\"] }, \"Password is secure\": { \"v\": [\"كلمة المرور آمنة\"] }, \"Show password\": { \"v\": [\"أظهِر كلمة المرور\"] } } }, { \"l\": \"ast\", \"t\": { \"Hide password\": { \"v\": [\"Anubrir la contraseña\"] }, \"Password is secure\": { \"v\": [\"La contraseña ye segura\"] }, \"Show password\": { \"v\": [\"Amosar la contraseña\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Hide password\": { \"v\": [\"Amagar contrasenya\"] }, \"Password is secure\": { \"v\": [\"Contrasenya segura<br>\"] }, \"Show password\": { \"v\": [\"Mostrar contrasenya\"] } } }, { \"l\": \"cs\", \"t\": { \"Hide password\": { \"v\": [\"Skrýt heslo\"] }, \"Password is secure\": { \"v\": [\"Heslo je bezpečné\"] }, \"Show password\": { \"v\": [\"Zobrazit heslo\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Hide password\": { \"v\": [\"Skrýt heslo\"] }, \"Password is secure\": { \"v\": [\"Heslo je bezpečné\"] }, \"Show password\": { \"v\": [\"Zobrazit heslo\"] } } }, { \"l\": \"da\", \"t\": { \"Hide password\": { \"v\": [\"Skjul kodeord\"] }, \"Password is secure\": { \"v\": [\"Kodeordet er sikkert\"] }, \"Show password\": { \"v\": [\"Vis kodeord\"] } } }, { \"l\": \"de\", \"t\": { \"Hide password\": { \"v\": [\"Passwort verbergen\"] }, \"Password is secure\": { \"v\": [\"Passwort ist sicher\"] }, \"Show password\": { \"v\": [\"Passwort anzeigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Hide password\": { \"v\": [\"Passwort verbergen\"] }, \"Password is secure\": { \"v\": [\"Passwort ist sicher\"] }, \"Show password\": { \"v\": [\"Passwort anzeigen\"] } } }, { \"l\": \"el\", \"t\": { \"Hide password\": { \"v\": [\"Απόκρυψη συνθηματικού\"] }, \"Password is secure\": { \"v\": [\"Το συνθηματικό είναι ασφαλές\"] }, \"Show password\": { \"v\": [\"Εμφάνιση κωδικού πρόσβασης\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Hide password\": { \"v\": [\"Hide password\"] }, \"Password is secure\": { \"v\": [\"Password is secure\"] }, \"Show password\": { \"v\": [\"Show password\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar contraseña\"] }, \"Password is secure\": { \"v\": [\"La contraseña es segura\"] }, \"Show password\": { \"v\": [\"Mostrar contraseña\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar contraseña\"] }, \"Password is secure\": { \"v\": [\"La contraseña es segura\"] }, \"Show password\": { \"v\": [\"Mostrar contraseña\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar contraseña\"] }, \"Password is secure\": { \"v\": [\"La contraseña es segura\"] }, \"Show password\": { \"v\": [\"Mostrar contraseña\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar contraseña\"] }, \"Password is secure\": { \"v\": [\"La contraseña es segura\"] }, \"Show password\": { \"v\": [\"Mostrar contraseña\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Hide password\": { \"v\": [\"Peida salasõna\"] }, \"Password is secure\": { \"v\": [\"Salasõna on turvaline\"] }, \"Show password\": { \"v\": [\"Näita salasõna\"] } } }, { \"l\": \"eu\", \"t\": { \"Hide password\": { \"v\": [\"Ezkutatu pasahitza\"] }, \"Password is secure\": { \"v\": [\"Pasahitza segurua da\"] }, \"Show password\": { \"v\": [\"Erakutsi pasahitza\"] } } }, { \"l\": \"fa\", \"t\": { \"Hide password\": { \"v\": [\"پنهان کردن رمز عبور\"] }, \"Password is secure\": { \"v\": [\"گذرواژه امن است\"] }, \"Show password\": { \"v\": [\"نمایش گذرواژه\"] } } }, { \"l\": \"fi\", \"t\": { \"Hide password\": { \"v\": [\"Piilota salasana\"] }, \"Password is secure\": { \"v\": [\"Salasana on turvallinen\"] }, \"Show password\": { \"v\": [\"Näytä salasana\"] } } }, { \"l\": \"fr\", \"t\": { \"Hide password\": { \"v\": [\"Cacher le mot de passe\"] }, \"Password is secure\": { \"v\": [\"Le mot de passe est sécurisé\"] }, \"Show password\": { \"v\": [\"Afficher le mot de passe\"] } } }, { \"l\": \"ga\", \"t\": { \"Hide password\": { \"v\": [\"Folaigh pasfhocal\"] }, \"Password is secure\": { \"v\": [\"Tá pasfhocal slán\"] }, \"Show password\": { \"v\": [\"Taispeáin pasfhocal\"] } } }, { \"l\": \"gl\", \"t\": { \"Hide password\": { \"v\": [\"Agochar o contrasinal\"] }, \"Password is secure\": { \"v\": [\"O contrasinal é seguro\"] }, \"Show password\": { \"v\": [\"Amosar o contrasinal\"] } } }, { \"l\": \"he\", \"t\": { \"Hide password\": { \"v\": [\"הסתרת סיסמה\"] }, \"Password is secure\": { \"v\": [\"הסיסמה מאובטחת\"] }, \"Show password\": { \"v\": [\"הצגת סיסמה\"] } } }, { \"l\": \"hu\", \"t\": { \"Hide password\": { \"v\": [\"Jelszó elrejtése\"] }, \"Password is secure\": { \"v\": [\"A jelszó biztonságos\"] }, \"Show password\": { \"v\": [\"Jelszó megjelenítése\"] } } }, { \"l\": \"id\", \"t\": { \"Hide password\": { \"v\": [\"Sembunyikan sandi\"] }, \"Password is secure\": { \"v\": [\"Kata sandi sudah aman\"] }, \"Show password\": { \"v\": [\"Tampilkan sandi\"] } } }, { \"l\": \"is\", \"t\": { \"Hide password\": { \"v\": [\"Fela lykilorð\"] }, \"Password is secure\": { \"v\": [\"Lykilorðið er öruggt\"] }, \"Show password\": { \"v\": [\"Birta lykilorð\"] } } }, { \"l\": \"it\", \"t\": { \"Hide password\": { \"v\": [\"Nascondi la password\"] }, \"Password is secure\": { \"v\": [\"La password è sicura\"] }, \"Show password\": { \"v\": [\"Mostra la password\"] } } }, { \"l\": \"ja\", \"t\": { \"Hide password\": { \"v\": [\"パスワードを非表示\"] }, \"Password is secure\": { \"v\": [\"パスワードは保護されています\"] }, \"Show password\": { \"v\": [\"パスワードを表示\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Hide password\": { \"v\": [\"パスワードを非表示\"] }, \"Password is secure\": { \"v\": [\"パスワードは保護されています\"] }, \"Show password\": { \"v\": [\"パスワードを表示\"] } } }, { \"l\": \"ko\", \"t\": { \"Hide password\": { \"v\": [\"암호 숨기기\"] }, \"Password is secure\": { \"v\": [\"암호가 안전합니다.\"] }, \"Show password\": { \"v\": [\"암호 표시\"] } } }, { \"l\": \"lo\", \"t\": { \"Hide password\": { \"v\": [\"ເຊື່ອງລະຫັດຜ່ານ\"] }, \"Password is secure\": { \"v\": [\"ລະຫັດຜ່ານປອດໄພ\"] }, \"Show password\": { \"v\": [\"ສະແດງລະຫັດຜ່ານ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Hide password\": { \"v\": [\"Сокриј лозинка\"] }, \"Password is secure\": { \"v\": [\"Лозинката е безбедна\"] }, \"Show password\": { \"v\": [\"Прикажи лозинка\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Hide password\": { \"v\": [\"Skjul passord\"] }, \"Password is secure\": { \"v\": [\"Passordet er sikkert\"] }, \"Show password\": { \"v\": [\"Vis passord\"] } } }, { \"l\": \"nl\", \"t\": { \"Hide password\": { \"v\": [\"Wachtwoord verbergen\"] }, \"Password is secure\": { \"v\": [\"Wachtwoord is veilig\"] }, \"Show password\": { \"v\": [\"Wachtwoord weergeven\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Hide password\": { \"v\": [\"Ukryj hasło\"] }, \"Password is secure\": { \"v\": [\"Hasło jest bezpieczne\"] }, \"Show password\": { \"v\": [\"Pokaż hasło\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar senha\"] }, \"Password is secure\": { \"v\": [\"A senha é segura\"] }, \"Show password\": { \"v\": [\"Mostrar senha\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar palavra-passe\"] }, \"Password is secure\": { \"v\": [\"A palavra-passe é segura\"] }, \"Show password\": { \"v\": [\"Mostrar palavra-passe\"] } } }, { \"l\": \"ro\", \"t\": { \"Hide password\": { \"v\": [\"Ascunde parola\"] }, \"Password is secure\": { \"v\": [\"Parola este sigură\"] }, \"Show password\": { \"v\": [\"Arată parola\"] } } }, { \"l\": \"ru\", \"t\": { \"Hide password\": { \"v\": [\"Скрыть пароль\"] }, \"Password is secure\": { \"v\": [\"Пароль надежный\"] }, \"Show password\": { \"v\": [\"Показать пароль\"] } } }, { \"l\": \"sk\", \"t\": { \"Hide password\": { \"v\": [\"Skryť heslo\"] }, \"Password is secure\": { \"v\": [\"Heslo je bezpečné\"] }, \"Show password\": { \"v\": [\"Zobraziť heslo\"] } } }, { \"l\": \"sl\", \"t\": { \"Hide password\": { \"v\": [\"Skrij geslo\"] }, \"Password is secure\": { \"v\": [\"Geslo je varno\"] }, \"Show password\": { \"v\": [\"Pokaži geslo\"] } } }, { \"l\": \"sr\", \"t\": { \"Hide password\": { \"v\": [\"Сакриј лозинку\"] }, \"Password is secure\": { \"v\": [\"Лозинка је безбедна\"] }, \"Show password\": { \"v\": [\"Прикажи лозинку\"] } } }, { \"l\": \"sv\", \"t\": { \"Hide password\": { \"v\": [\"Göm lösenordet\"] }, \"Password is secure\": { \"v\": [\"Lössenordet är säkert\"] }, \"Show password\": { \"v\": [\"Visa lössenordet\"] } } }, { \"l\": \"tr\", \"t\": { \"Hide password\": { \"v\": [\"Parolayı gizle\"] }, \"Password is secure\": { \"v\": [\"Parola güvenli\"] }, \"Show password\": { \"v\": [\"Parolayı görüntüle\"] } } }, { \"l\": \"uk\", \"t\": { \"Hide password\": { \"v\": [\"Приховати пароль\"] }, \"Password is secure\": { \"v\": [\"Пароль безпечний\"] }, \"Show password\": { \"v\": [\"Показати пароль\"] } } }, { \"l\": \"uz\", \"t\": { \"Hide password\": { \"v\": [\"Parolni yashirish\"] }, \"Password is secure\": { \"v\": [\"Parol xavfsiz\"] }, \"Show password\": { \"v\": [\"Parolni ko'rsatish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Hide password\": { \"v\": [\"隐藏密码\"] }, \"Password is secure\": { \"v\": [\"密码安全\"] }, \"Show password\": { \"v\": [\"显示密码\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Hide password\": { \"v\": [\"隱藏密碼\"] }, \"Password is secure\": { \"v\": [\"密碼是安全的\"] }, \"Show password\": { \"v\": [\"顯示密碼\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Hide password\": { \"v\": [\"隱藏密碼\"] }, \"Password is secure\": { \"v\": [\"密碼安全\"] }, \"Show password\": { \"v\": [\"顯示密碼\"] } } }];\nconst t30 = [{ \"l\": \"ar\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"مساعدة في التنقل باستعمال لوحة المفاتيح\"] }, \"Skip to app navigation\": { \"v\": [\"تجاوَز إلى التنقل في التطبيق\"] }, \"Skip to main content\": { \"v\": [\"تجاوَز إلى المحتوى الرئيسي\"] } } }, { \"l\": \"ast\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ayuda de la navegación pente'l tecláu\"] }, \"Skip to app navigation\": { \"v\": [\"Dir a la navegación d'aplicaciones\"] }, \"Skip to main content\": { \"v\": [\"Dir al conteníu principal\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Nápověda pro pohyb pomocí klávesnice\"] }, \"Skip to app navigation\": { \"v\": [\"Přeskočit na navigaci aplikace\"] }, \"Skip to main content\": { \"v\": [\"Přeskočit na hlavní obsah\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Nápověda pro pohyb pomocí klávesnice\"] }, \"Skip to app navigation\": { \"v\": [\"Přeskočit na navigaci aplikace\"] }, \"Skip to main content\": { \"v\": [\"Přeskočit na hlavní obsah\"] } } }, { \"l\": \"da\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Hjælp til tastaturnavigation\"] }, \"Skip to app navigation\": { \"v\": [\"Spring til app navigation\"] }, \"Skip to main content\": { \"v\": [\"Spring til hovedindhold\"] } } }, { \"l\": \"de\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Tastatur-Navigationshilfe\"] }, \"Skip to app navigation\": { \"v\": [\"Zur App-Navigation springen\"] }, \"Skip to main content\": { \"v\": [\"Zum Hauptinhalt springen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Tastatur-Navigationshilfe\"] }, \"Skip to app navigation\": { \"v\": [\"Zur App-Navigation springen\"] }, \"Skip to main content\": { \"v\": [\"Zum Hauptinhalt springen\"] } } }, { \"l\": \"el\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Βοήθεια πλοήγησης με πληκτρολόγιο\"] }, \"Skip to app navigation\": { \"v\": [\"Μετάβαση στην πλοήγηση της εφαρμογής\"] }, \"Skip to main content\": { \"v\": [\"Μετάβαση στο κύριο περιεχόμενο\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Keyboard navigation help\"] }, \"Skip to app navigation\": { \"v\": [\"Skip to app navigation\"] }, \"Skip to main content\": { \"v\": [\"Skip to main content\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ayuda de navegación del teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Saltar a la navegación de apps\"] }, \"Skip to main content\": { \"v\": [\"Saltar al contenido principal\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ayuda de navegación del teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Saltar a la navegación de app\"] }, \"Skip to main content\": { \"v\": [\"Saltar al contenido principal\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ayuda de navegación del teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Saltar a la navegación de app\"] }, \"Skip to main content\": { \"v\": [\"Saltar al contenido principal\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Klahvistiku kasutuse abiteave\"] }, \"Skip to app navigation\": { \"v\": [\"Suundu rakenduses liikumise valikute juurde\"] }, \"Skip to main content\": { \"v\": [\"Suundu põhisisu juurde\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"راهنمای ناوبری صفحه کلید\"] }, \"Skip to app navigation\": { \"v\": [\"رفتن به پیمایش برنامه\"] }, \"Skip to main content\": { \"v\": [\"رفتن به محتوای اصلی\"] } } }, { \"l\": \"fi\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Näppäimistönavigoinnin ohje\"] }, \"Skip to app navigation\": { \"v\": [\"Siirry sovelluksen navigaatioon\"] }, \"Skip to main content\": { \"v\": [\"Siirry pääsisältöön\"] } } }, { \"l\": \"fr\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Aide à la navigation du clavier\"] }, \"Skip to app navigation\": { \"v\": [\"Passer à l'app navigation\"] }, \"Skip to main content\": { \"v\": [\"Passer au contenu principal\"] } } }, { \"l\": \"ga\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Cabhair le nascleanúint méarchláir\"] }, \"Skip to app navigation\": { \"v\": [\"Téigh ar aghaidh chuig nascleanúint aip\"] }, \"Skip to main content\": { \"v\": [\"Téigh ar aghaidh chuig an bpríomhábhar\"] } } }, { \"l\": \"gl\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Axuda á navegación co teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Ir á navegación da aplicación\"] }, \"Skip to main content\": { \"v\": [\"Ir ao contido principal\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Aðstoð við rötun á lyklaborði\"] }, \"Skip to app navigation\": { \"v\": [\"Sleppa og fara í flakk innan forrits\"] }, \"Skip to main content\": { \"v\": [\"Sleppa og fara í meginefni\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"キーボード・ナビゲーション・ヘルプ\"] }, \"Skip to app navigation\": { \"v\": [\"アプリのナビゲーションへ移動\"] }, \"Skip to main content\": { \"v\": [\"メインコンテンツへ移動\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"キーボード・ナビゲーション・ヘルプ\"] }, \"Skip to app navigation\": { \"v\": [\"アプリのナビゲーションへ移動\"] }, \"Skip to main content\": { \"v\": [\"メインコンテンツへ移動\"] } } }, { \"l\": \"ko\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"키보드 탐색 도움말\"] }, \"Skip to app navigation\": { \"v\": [\"앱 탐색으로 건너뛰기\"] }, \"Skip to main content\": { \"v\": [\"본 내용으로 건너뛰기\"] } } }, { \"l\": \"lo\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"ການຊ່ວຍເຫຼືອການນຳທາງດ້ວຍຄີບອດ\"] }, \"Skip to app navigation\": { \"v\": [\"ຂ້າມໄປທີ່ການນຳທາງຂອງແອັບ\"] }, \"Skip to main content\": { \"v\": [\"ຂ້າມໄປທີ່ເນື້ອຫາຫຼັກ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Навигација со тастатура\"] }, \"Skip to app navigation\": { \"v\": [\"Прескокни на навигација на апликацијата\"] }, \"Skip to main content\": { \"v\": [\"Прескокни на главна содржина\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Hjelp for tastaturnavigering\"] }, \"Skip to app navigation\": { \"v\": [\"Hopp til appnavigering\"] }, \"Skip to main content\": { \"v\": [\"Hopp til hovedinnhold\"] } } }, { \"l\": \"nl\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Hulp voor toetsenbordnavigatie\"] }, \"Skip to app navigation\": { \"v\": [\"Doorgaan naar app-navigatie\"] }, \"Skip to main content\": { \"v\": [\"Naar hoofdinhoud gaan\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Pomoc w nawigacji za pomocą klawiatury\"] }, \"Skip to app navigation\": { \"v\": [\"Przewiń do nawigacji\"] }, \"Skip to main content\": { \"v\": [\"Przewiń do głównych treści\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ajuda para navegação pelo teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Ir para navegação de aplicativo\"] }, \"Skip to main content\": { \"v\": [\"Ir para conteúdo principal\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ajuda à navegação no teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Saltar para navegação da app\"] }, \"Skip to main content\": { \"v\": [\"Saltar para conteúdo principal\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Справка по навигации с помощью клавиатуры\"] }, \"Skip to app navigation\": { \"v\": [\"Перейти к навигации по приложению\"] }, \"Skip to main content\": { \"v\": [\"Перейти к основному содержанию\"] } } }, { \"l\": \"sk\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Pomoc pri navigácii pomocou klávesnice\"] }, \"Skip to app navigation\": { \"v\": [\"Preskočiť na navigáciu v aplikácii\"] }, \"Skip to main content\": { \"v\": [\"Preskočiť na hlavný obsah\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Помоћ за навигацију тастатуром\"] }, \"Skip to app navigation\": { \"v\": [\"Прескочи на навигацију апликацијом\"] }, \"Skip to main content\": { \"v\": [\"Прескочи на главни садржај\"] } } }, { \"l\": \"sv\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Hjälp med tangentbordsnavigering\"] }, \"Skip to app navigation\": { \"v\": [\"Hoppa till appnavigering\"] }, \"Skip to main content\": { \"v\": [\"Hoppa till huvudinnehåll\"] } } }, { \"l\": \"tr\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Klavye ile gezinme yardımı\"] }, \"Skip to app navigation\": { \"v\": [\"Uygulama gezinmesine git\"] }, \"Skip to main content\": { \"v\": [\"Ana içeriğe git\"] } } }, { \"l\": \"uk\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Допомога з навігацією клавішами\"] }, \"Skip to app navigation\": { \"v\": [\"Пропустити навігацію по застосунках\"] }, \"Skip to main content\": { \"v\": [\"Перейти одразу до головного вмісту\"] } } }, { \"l\": \"uz\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Klaviatura navigatsiyasi yordami\"] }, \"Skip to app navigation\": { \"v\": [\"Ilova navigatsiyasiga oʻtish\"] }, \"Skip to main content\": { \"v\": [\"Asosiy tarkibga o'tish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"键盘导航栏帮助\"] }, \"Skip to app navigation\": { \"v\": [\"跳转至应用程序导航页\"] }, \"Skip to main content\": { \"v\": [\"跳转至主要内容\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"鍵盤導航幫助\"] }, \"Skip to app navigation\": { \"v\": [\"跳至應用程式導航\"] }, \"Skip to main content\": { \"v\": [\"跳至主要內容\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"鍵盤導航說明\"] }, \"Skip to app navigation\": { \"v\": [\"略過應用程式導覽\"] }, \"Skip to main content\": { \"v\": [\"跳至主要內容\"] } } }];\nconst t31 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Klávesové zkratky\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": {} }, { \"l\": \"de\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Tastaturkürzel\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Tastaturkürzel\"] } } }, { \"l\": \"el\", \"t\": {} }, { \"l\": \"en-GB\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Keyboard shortcuts\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Klahvistiku kiirklahvid\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Raccourcis clavier\"] } } }, { \"l\": \"ga\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Aicearraí méarchláir\"] } } }, { \"l\": \"gl\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Atallos de teclado\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"キーボードショートカット\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": {} }, { \"l\": \"lo\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"ທາງລັດຄີບອດ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": {} }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": {} }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Atalhos de teclado\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Комбинации клавиш\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": {} }, { \"l\": \"sv\", \"t\": {} }, { \"l\": \"tr\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Klavye kısayolları\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": {} }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"鍵盤快速鍵\"] } } }, { \"l\": \"zh-TW\", \"t\": {} }];\nconst t32 = [{ \"l\": \"ar\", \"t\": { 'Load more \"{options}\"': { \"v\": ['تحميل المزيد من \"{options}\" '] }, \"Raw link {options}\": { \"v\": [\" الرابط الخام raw link ـ {options}\"] }, \"Start typing to search\": { \"v\": [\"إبدإ كتابة مفردات البحث\"] } } }, { \"l\": \"ast\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Cargar más «{options}»\"] }, \"Raw link {options}\": { \"v\": [\"Enllaz en bruto {optiones}\"] }, \"Start typing to search\": { \"v\": [\"Comienza a escribir pa buscar\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Načíst další „{options}“\"] }, \"Raw link {options}\": { \"v\": [\"Holý odkaz {options}\"] }, \"Start typing to search\": { \"v\": [\"Vyhledávejte psaním\"] } } }, { \"l\": \"cs-CZ\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Načíst další „{options}“\"] }, \"Raw link {options}\": { \"v\": [\"Holý odkaz {options}\"] }, \"Start typing to search\": { \"v\": [\"Vyhledávejte psaním\"] } } }, { \"l\": \"da\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Indlæs flere \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Rå link {options}\"] }, \"Start typing to search\": { \"v\": [\"Begynd at skrive for at søge\"] } } }, { \"l\": \"de\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Weitere \"{options}\" laden'] }, \"Raw link {options}\": { \"v\": [\"Unverarbeiteter Link {options}\"] }, \"Start typing to search\": { \"v\": [\"Mit der Eingabe beginnen, um zu suchen\"] } } }, { \"l\": \"de-DE\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Weitere \"{options}\" laden'] }, \"Raw link {options}\": { \"v\": [\"Unverarbeiteter Link {options}\"] }, \"Start typing to search\": { \"v\": [\"Mit der Eingabe beginnen, um zu suchen\"] } } }, { \"l\": \"el\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Φόρτωση περισσότερων \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Ακατέργαστος σύνδεσμος {options}\"] }, \"Start typing to search\": { \"v\": [\"Ξεκινήστε να πληκτρολογείτε για αναζήτηση\"] } } }, { \"l\": \"en-GB\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Load more \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raw link {options}\"] }, \"Start typing to search\": { \"v\": [\"Start typing to search\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Cargar más \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comience a escribir para buscar\"] } } }, { \"l\": \"es-AR\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Cargar más \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comience a escribir para buscar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comienza a escribir para buscar\"] } } }, { \"l\": \"es-MX\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Cargar más \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comience a escribir para buscar\"] } } }, { \"l\": \"et-EE\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Laadi veel „{options}“\"] }, \"Raw link {options}\": { \"v\": [\"Töötlemata link: {options}\"] }, \"Start typing to search\": { \"v\": [\"Alusta otsinguks sisestamist\"] } } }, { \"l\": \"eu\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Kargatu \"{options}\" gehiago'] }, \"Raw link {options}\": { \"v\": [\"Formaturik gabeko esteka {aukerak}\"] }, \"Start typing to search\": { \"v\": [\"Hasi idazten bilatzeko\"] } } }, { \"l\": \"fa\", \"t\": { 'Load more \"{options}\"': { \"v\": ['بارگذاری بیشتر \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"پیوند خام {options}\"] }, \"Start typing to search\": { \"v\": [\"برای جستجو تایپ کنید\"] } } }, { \"l\": \"fi\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Lataa lisää \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raaka linkki {options}\"] }, \"Start typing to search\": { \"v\": [\"Aloita kirjoittaminen hakeaksesi\"] } } }, { \"l\": \"fr\", \"t\": { 'Load more \"{options}\"': { \"v\": [`Charger d'avantage \"{options}\"`] }, \"Raw link {options}\": { \"v\": [\"Lien brut {options}\"] }, \"Start typing to search\": { \"v\": [\"Commencez à écrire pour rechercher\"] } } }, { \"l\": \"ga\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Luchtaigh tuilleadh \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Nasc amh {roghanna}\"] }, \"Start typing to search\": { \"v\": [\"Tosaigh ag clóscríobh chun cuardach a dhéanamh\"] } } }, { \"l\": \"gl\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Cargar máis «{options}»\"] }, \"Raw link {options}\": { \"v\": [\"Ligazón sen procesar {options}\"] }, \"Start typing to search\": { \"v\": [\"Comece a escribir para buscar\"] } } }, { \"l\": \"he\", \"t\": { \"Raw link {options}\": { \"v\": [\"קישור גולמי {options}\"] }, \"Start typing to search\": { \"v\": [\"התחלת הקלדה מחפשת\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Muat \"{options}\" lainnya'] }, \"Raw link {options}\": { \"v\": [\"Tautan mentah {options}\"] }, \"Start typing to search\": { \"v\": [\"Ketik untuk mulai mencari\"] } } }, { \"l\": \"is\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Hlaða inn fleiri \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Hrár tengill {options}\"] }, \"Start typing to search\": { \"v\": [\"Byrjaðu að skrifa til að leita\"] } } }, { \"l\": \"it\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Carica più \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raw link {options}\"] }, \"Start typing to search\": { \"v\": [\"Iniziare a digitare per effettuare la ricerca\"] } } }, { \"l\": \"ja\", \"t\": { 'Load more \"{options}\"': { \"v\": ['\"{options}\" をもっと読み込む'] }, \"Raw link {options}\": { \"v\": [\"未加工のリンク {options}\"] }, \"Start typing to search\": { \"v\": [\"入力を開始して検索します\"] } } }, { \"l\": \"ja-JP\", \"t\": { 'Load more \"{options}\"': { \"v\": ['\"{options}\" をもっと読み込む'] }, \"Raw link {options}\": { \"v\": [\"未加工のリンク {options}\"] }, \"Start typing to search\": { \"v\": [\"入力を開始して検索します\"] } } }, { \"l\": \"ko\", \"t\": { 'Load more \"{options}\"': { \"v\": ['\"{options}\" 더 불러오기'] }, \"Raw link {options}\": { \"v\": [\"{options} 원본 링크\"] }, \"Start typing to search\": { \"v\": [\"입력하여 검색\"] } } }, { \"l\": \"lo\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"ໂຫຼດ “{options}” ເພີ່ມເຕີມ\"] }, \"Raw link {options}\": { \"v\": [\"ລິງດິບ {options}\"] }, \"Start typing to search\": { \"v\": [\"ເລີ່ມພິມເພື່ອຄົ້ນຫາ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Вчитај повеќе \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Суров линк {options}\"] }, \"Start typing to search\": { \"v\": [\"Почни да пишуваш за пребарување\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Last inn flere \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Rå lenke {options}\"] }, \"Start typing to search\": { \"v\": [\"Start å skrive for å søke\"] } } }, { \"l\": \"nl\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Meer \"{options}\" laden'] }, \"Raw link {options}\": { \"v\": [\"Ruwe link {options}\"] }, \"Start typing to search\": { \"v\": [\"Start met typen om te zoeken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Załaduj więcej \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Surowy odnośnik {options}\"] }, \"Start typing to search\": { \"v\": [\"Zacznij pisać, aby wyszukać\"] } } }, { \"l\": \"pt-BR\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Carregar mais \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Link bruto {options}\"] }, \"Start typing to search\": { \"v\": [\"Comece a digitar para pesquisar\"] } } }, { \"l\": \"pt-PT\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Carregar mais \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Link inicial {options}\"] }, \"Start typing to search\": { \"v\": [\"Comece a digitar para pesquisar\"] } } }, { \"l\": \"ro\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Încarcă mai multe \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Link brut {options}\"] }, \"Start typing to search\": { \"v\": [\"Tastați pentru căutare\"] } } }, { \"l\": \"ru\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Загрузить больше \"{options}\"\"'] }, \"Raw link {options}\": { \"v\": [\"Необработанная ссылка {options}\"] }, \"Start typing to search\": { \"v\": [\"Начните вводить текст для поиска\"] } } }, { \"l\": \"sk\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Načítať viac \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raw odkaz {options}\"] }, \"Start typing to search\": { \"v\": [\"Začnite písať pre vyhľadávanie\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Учитај још „{options}”\"] }, \"Raw link {options}\": { \"v\": [\"Сирови линк {options}\"] }, \"Start typing to search\": { \"v\": [\"Покрените претрагу куцањем\"] } } }, { \"l\": \"sv\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Ladda fler \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Oformaterad länk {options}\"] }, \"Start typing to search\": { \"v\": [\"Börja skriva för att söka\"] } } }, { \"l\": \"tr\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Diğer \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Ham bağlantı {options}\"] }, \"Start typing to search\": { \"v\": [\"Aramak için yazmaya başlayın\"] } } }, { \"l\": \"uk\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Завантажити більше \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Пряме посилання {options}\"] }, \"Start typing to search\": { \"v\": [\"Почніть вводити для пошуку\"] } } }, { \"l\": \"uz\", \"t\": { 'Load more \"{options}\"': { \"v\": [`Ko'proq yuklash \"{options}\"`] }, \"Raw link {options}\": { \"v\": [\" {options}satr havolasi\"] }, \"Start typing to search\": { \"v\": [\"Qidirish uchun yozishni boshlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"加载更多 “{options}”\"] }, \"Raw link {options}\": { \"v\": [\"原始链接 {options}\"] }, \"Start typing to search\": { \"v\": [\"开始输入以进行搜索\"] } } }, { \"l\": \"zh-HK\", \"t\": { 'Load more \"{options}\"': { \"v\": ['載入更多 \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"原始連結 {options}\"] }, \"Start typing to search\": { \"v\": [\"開始輸入以進行搜尋\"] } } }, { \"l\": \"zh-TW\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"載入更多「{options}」\"] }, \"Raw link {options}\": { \"v\": [\"原始連結 {options}\"] }, \"Start typing to search\": { \"v\": [\"開始輸入以進行搜尋\"] } } }];\nconst t33 = [{ \"l\": \"ar\", \"t\": { \"Loading …\": { \"v\": [\"التحميل جارٍ ...\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Loading …\": { \"v\": [\"Načítání …\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Loading …\": { \"v\": [\"Indlæser ...\"] } } }, { \"l\": \"de\", \"t\": { \"Loading …\": { \"v\": [\"Wird geladen …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Loading …\": { \"v\": [\"Wird geladen …\"] } } }, { \"l\": \"el\", \"t\": { \"Loading …\": { \"v\": [\"Φόρτωση …\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Loading …\": { \"v\": [\"Loading …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Loading …\": { \"v\": [\"Laadin …\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Loading …\": { \"v\": [\"در حال بارگذاری ...\"] } } }, { \"l\": \"fi\", \"t\": { \"Loading …\": { \"v\": [\"Ladataan ...\"] } } }, { \"l\": \"fr\", \"t\": { \"Loading …\": { \"v\": [\"Chargement...\"] } } }, { \"l\": \"ga\", \"t\": { \"Loading …\": { \"v\": [\"Ag lódáil …\"] } } }, { \"l\": \"gl\", \"t\": { \"Loading …\": { \"v\": [\"Cargando…\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": { \"Loading …\": { \"v\": [\"Hleð inn …\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Loading …\": { \"v\": [\"読み込み中 …\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Loading …\": { \"v\": [\"불러오는 중...\"] } } }, { \"l\": \"lo\", \"t\": { \"Loading …\": { \"v\": [\"ກຳລັງໂຫຼດ…\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Loading …\": { \"v\": [\"Вчитување …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Loading …\": { \"v\": [\"Laster inn...\"] } } }, { \"l\": \"nl\", \"t\": { \"Loading …\": { \"v\": [\"Laden …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Loading …\": { \"v\": [\"Wczytywanie…\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Loading …\": { \"v\": [\"Carregando …\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Loading …\": { \"v\": [\"A carregar...\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Loading …\": { \"v\": [\"Загрузка …\"] } } }, { \"l\": \"sk\", \"t\": { \"Loading …\": { \"v\": [\"Nahrávam ...\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Loading …\": { \"v\": [\"Учитава се…\"] } } }, { \"l\": \"sv\", \"t\": { \"Loading …\": { \"v\": [\"Laddar ...\"] } } }, { \"l\": \"tr\", \"t\": { \"Loading …\": { \"v\": [\"Yükleniyor…\"] } } }, { \"l\": \"uk\", \"t\": { \"Loading …\": { \"v\": [\"Завантаження …\"] } } }, { \"l\": \"uz\", \"t\": { \"Loading …\": { \"v\": [\"Yuklanmoqda...\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Loading …\": { \"v\": [\"加载中...\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Loading …\": { \"v\": [\"加載中 …\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Loading …\": { \"v\": [\"正在載入……\"] } } }];\nconst t34 = [{ \"l\": \"ar\", \"t\": { \"No link provider found\": { \"v\": [\"لا يوجد أيّ مزود روابط link provider\"] }, \"Write a message …\": { \"v\": [\"أكتب رسالة ...\"] } } }, { \"l\": \"ast\", \"t\": { \"No link provider found\": { \"v\": [\"Nun s'atopó nengún fornidor d'enllaces\"] }, \"Write a message …\": { \"v\": [\"Escribi un mensaxe…\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Dosaženo limitu počtu %n znaku zprávy\", \"Dosaženo limitu počtu %n znaků zprávy\", \"Dosaženo limitu počtu %n znaků zprávy\", \"Dosaženo limitu počtu %n znaků zprávy\"] }, \"No link provider found\": { \"v\": [\"Nenalezen žádný poskytovatel odkazů\"] }, \"Write a message …\": { \"v\": [\"Napište zprávu …\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"No link provider found\": { \"v\": [\"Nenalezen žádný poskytovatel odkazů\"] }, \"Write a message …\": { \"v\": [\"Napsat zprávu…\"] } } }, { \"l\": \"da\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Beskedgrænsen på %n tegn er nået\", \"Beskedgrænsen på %n tegn er nået\"] }, \"No link provider found\": { \"v\": [\"Ingen linkudbyder fundet\"] }, \"Write a message …\": { \"v\": [\"Skriv en besked ...\"] } } }, { \"l\": \"de\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Nachrichtenlimit von %n Zeichen erreicht\", \"Nachrichtenlimit von %n Zeichen erreicht\"] }, \"No link provider found\": { \"v\": [\"Kein Linkanbieter gefunden\"] }, \"Write a message …\": { \"v\": [\"Nachricht schreiben …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Nachrichtenlimit von %n Zeichen erreicht\", \"Nachrichtenlimit von %n Zeichen erreicht\"] }, \"No link provider found\": { \"v\": [\"Kein Linkanbieter gefunden\"] }, \"Write a message …\": { \"v\": [\"Nachricht schreiben …\"] } } }, { \"l\": \"el\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Έφτασε το όριο μηνύματος των %n χαρακτήρων\", \"Έφτασε το όριο μηνύματος των %n χαρακτήρων\"] }, \"No link provider found\": { \"v\": [\"Δεν βρέθηκε πάροχος συνδέσμου\"] }, \"Write a message …\": { \"v\": [\"Γράψτε ένα μήνυμα …\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Message limit of %n character reached\", \"Message limit of %n characters reached\"] }, \"No link provider found\": { \"v\": [\"No link provider found\"] }, \"Write a message …\": { \"v\": [\"Write a message …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] }, \"Write a message …\": { \"v\": [\"Escriba un mensaje ...\"] } } }, { \"l\": \"es-AR\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] }, \"Write a message …\": { \"v\": [\"Escriba un mensaje ...\"] } } }, { \"l\": \"es-EC\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] } } }, { \"l\": \"es-MX\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] }, \"Write a message …\": { \"v\": [\"Escriba un mensaje ...\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Sõnumi piirarv %n tähemärk on käes\", \"Sõnumi piirarv %n tähemärki on käes\"] }, \"No link provider found\": { \"v\": [\"Lingi pakkujat ei leitud\"] }, \"Write a message …\": { \"v\": [\"Koosta sõnum …\"] } } }, { \"l\": \"eu\", \"t\": { \"No link provider found\": { \"v\": [\"Ez da aurkitu esteka-hornitzailerik\"] }, \"Write a message …\": { \"v\": [\"Idatzi mezu bat…\"] } } }, { \"l\": \"fa\", \"t\": { \"No link provider found\": { \"v\": [\"هیچ ارائهدهنده پیوندی یافت نشد\"] }, \"Write a message …\": { \"v\": [\"یک پیام بنویسید ...\"] } } }, { \"l\": \"fi\", \"t\": { \"No link provider found\": { \"v\": [\"Linkin tarjoajia ei löydetty\"] }, \"Write a message …\": { \"v\": [\"Kirjoita viesti…\"] } } }, { \"l\": \"fr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Limite de messages de %n caractère atteinte\", \"Limite de messages de %n caractères atteinte\", \"Limite de messages de %n caractères atteinte\"] }, \"No link provider found\": { \"v\": [\"Aucun fournisseur de lien trouvé\"] }, \"Write a message …\": { \"v\": [\"Écrire un message…\"] } } }, { \"l\": \"ga\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Sroicheadh teorainn teachtaireachta de %n carachtar\", \"Sroicheadh teorainn teachtaireachta de %n carachtar\", \"Sroicheadh teorainn teachtaireachta de %n carachtar\", \"Sroicheadh teorainn teachtaireachta de %n carachtar\", \"Sroicheadh teorainn teachtaireachta de %n carachtar\"] }, \"No link provider found\": { \"v\": [\"Níor aimsíodh aon soláthraí naisc\"] }, \"Write a message …\": { \"v\": [\"Scríobh teachtaireacht …\"] } } }, { \"l\": \"gl\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Acadouse o límite de %n caracter por mensaxe\", \"Acadouse o límite de %n caracteres por mensaxe\"] }, \"No link provider found\": { \"v\": [\"Non se atopou ningún provedor de ligazóns\"] }, \"Write a message …\": { \"v\": [\"Escribir unha mensaxe…\"] } } }, { \"l\": \"he\", \"t\": { \"No link provider found\": { \"v\": [\"לא נמצא ספק קישורים\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"No link provider found\": { \"v\": [\"Tidak ada penyedia tautan yang ditemukan\"] }, \"Write a message …\": { \"v\": [\"Tulis pesan ...\"] } } }, { \"l\": \"is\", \"t\": { \"No link provider found\": { \"v\": [\"Engin tenglaveita fannst\"] }, \"Write a message …\": { \"v\": [\"Skrifaðu skilaboð …\"] } } }, { \"l\": \"it\", \"t\": { \"No link provider found\": { \"v\": [\"Nessun fornitore di link trovato\"] }, \"Write a message …\": { \"v\": [\"Scrivi un messaggio ...\"] } } }, { \"l\": \"ja\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"メッセージの%n文字の制限に達しました\"] }, \"No link provider found\": { \"v\": [\"リンクプロバイダーが見つかりません\"] }, \"Write a message …\": { \"v\": [\"メッセージを書く ...\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"No link provider found\": { \"v\": [\"リンクプロバイダーが見つかりません\"] }, \"Write a message …\": { \"v\": [\"メッセージを書く ...\"] } } }, { \"l\": \"ko\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"메시지 제한 %n자에 도달\"] }, \"No link provider found\": { \"v\": [\"링크 제공자 없음\"] }, \"Write a message …\": { \"v\": [\"메시지 작성...\"] } } }, { \"l\": \"lo\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"ຮອດຂີດຈຳກັດຂໍ້ຄວາມ %n ໂຕອັກສອນແລ້ວ\"] }, \"No link provider found\": { \"v\": [\"ບໍ່ພົບຜູ້ໃຫ້ບໍລິການລິງ\"] }, \"Write a message …\": { \"v\": [\"ຂຽນຂໍ້ຄວາມ…\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Достигнат е лимит од %n карактер\", \"Достигнат е лимит од %n карактери за порака\"] }, \"No link provider found\": { \"v\": [\"Не е пронајден давател на линк\"] }, \"Write a message …\": { \"v\": [\"Напиши порака …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"No link provider found\": { \"v\": [\"Finner ingen lenkeleverandør\"] }, \"Write a message …\": { \"v\": [\"Skriv en melding...\"] } } }, { \"l\": \"nl\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Berichtlimiet van %n teken bereikt\", \"Berichtlimiet van %n tekens bereikt\"] }, \"No link provider found\": { \"v\": [\"Geen link provider gevonden\"] }, \"Write a message …\": { \"v\": [\"Schrijf een bericht …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"No link provider found\": { \"v\": [\"Nie znaleziono dostawcy linków\"] }, \"Write a message …\": { \"v\": [\"Napisz wiadomość…\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Limite de mensagem de %n caractere atingido\", \"Limite de mensagem de %n de caracteres atingido\", \"Limite de mensagem de %n caracteres atingido\"] }, \"No link provider found\": { \"v\": [\"Nenhum provedor de link encontrado\"] }, \"Write a message …\": { \"v\": [\"Escreva uma mensagem …\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Limite de mensagem de %n carácter atingido\", \"Limite de mensagem de %n caracteres atingido\", \"Limite de mensagem de %n caracteres atingido\"] }, \"No link provider found\": { \"v\": [\"Nenhum fornecedor de link encontrado\"] }, \"Write a message …\": { \"v\": [\"Escreva uma mensagem...\"] } } }, { \"l\": \"ro\", \"t\": { \"No link provider found\": { \"v\": [\"Nu s-a găsit un provider pentru linkuri\"] }, \"Write a message …\": { \"v\": [\"Scrieți un mesaj ...\"] } } }, { \"l\": \"ru\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Достигнут лимит в %n символ\", \"Достигнут лимит в %n символа\", \"Достигнут лимит в %n символов\", \"Достигнут лимит в %n символов\"] }, \"No link provider found\": { \"v\": [\"Поставщик ссылок не найден\"] }, \"Write a message …\": { \"v\": [\"Напишите сообщение …\"] } } }, { \"l\": \"sk\", \"t\": { \"No link provider found\": { \"v\": [\"Žiaden odkaz poskytovateľa nebol nájdený\"] }, \"Write a message …\": { \"v\": [\"Napíšte správu…\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Достигнуто је ограничење величине поруке од %n карактер\", \"Достигнуто је ограничење величине поруке од %n карактера\", \"Достигнуто је ограничење величине поруке од %n карактера\"] }, \"No link provider found\": { \"v\": [\"Није пронађен ниједан пружалац линка\"] }, \"Write a message …\": { \"v\": [\"Напишите поруку…\"] } } }, { \"l\": \"sv\", \"t\": { \"No link provider found\": { \"v\": [\"Ingen länkleverantör hittades\"] }, \"Write a message …\": { \"v\": [\"Skriv ett meddelande …\"] } } }, { \"l\": \"tr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"İleti için %n karakter sayısı sınırına ulaşıldı\", \"İleti için %n karakter sayısı sınırına ulaşıldı\"] }, \"No link provider found\": { \"v\": [\"Bağlantı hizmeti sağlayıcısı bulunamadı\"] }, \"Write a message …\": { \"v\": [\"Bir ileti yazın…\"] } } }, { \"l\": \"uk\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Досягнуто обмеження на довжину повідомлення у %n символ.\", \"Досягнуто обмеження на довжину повідомлення у %n символи.\", \"Досягнуто обмеження на довжину повідомлення у%n символів.\", \"Досягнуто обмеження на довжину повідомлення у %n символів.\"] }, \"No link provider found\": { \"v\": [\"Не наведено посилання\"] }, \"Write a message …\": { \"v\": [\"Створити повідомлення …\"] } } }, { \"l\": \"uz\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\" %n ta belgidan iborat xabar chegarasiga yetdi\"] }, \"No link provider found\": { \"v\": [\"Hech qanday havola provayderi topilmadi\"] }, \"Write a message …\": { \"v\": [\"Xabar yozish...\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"No link provider found\": { \"v\": [\"未找到任何链接提供者\"] }, \"Write a message …\": { \"v\": [\"编写信息 ...\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"已達到訊息最多 %n 字元限制\"] }, \"No link provider found\": { \"v\": [\"找不到連結提供者\"] }, \"Write a message …\": { \"v\": [\"編寫訊息 …\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"No link provider found\": { \"v\": [\"找不到連結提供者\"] }, \"Write a message …\": { \"v\": [\"編寫訊息……\"] } } }];\nconst t35 = [{ \"l\": \"ar\", \"t\": { \"More items …\": { \"v\": [\"عناصر أخرى ...\"] } } }, { \"l\": \"ast\", \"t\": { \"More items …\": { \"v\": [\"Más elementos…\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"More items …\": { \"v\": [\"Més artícles...\"] } } }, { \"l\": \"cs\", \"t\": { \"More items …\": { \"v\": [\"Další položky …\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"More items …\": { \"v\": [\"Další položky…\"] } } }, { \"l\": \"da\", \"t\": { \"More items …\": { \"v\": [\"Flere elementer ...\"] } } }, { \"l\": \"de\", \"t\": { \"More items …\": { \"v\": [\"Weitere Elemente …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"More items …\": { \"v\": [\"Weitere Elemente …\"] } } }, { \"l\": \"el\", \"t\": { \"More items …\": { \"v\": [\"Περισσότερα στοιχεία …\"] } } }, { \"l\": \"en-GB\", \"t\": { \"More items …\": { \"v\": [\"More items …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"More items …\": { \"v\": [\"Más ítems ...\"] } } }, { \"l\": \"es-AR\", \"t\": { \"More items …\": { \"v\": [\"Más elementos...\"] } } }, { \"l\": \"es-EC\", \"t\": { \"More items …\": { \"v\": [\"Más elementos...\"] } } }, { \"l\": \"es-MX\", \"t\": { \"More items …\": { \"v\": [\"Más Elementos ...\"] } } }, { \"l\": \"et-EE\", \"t\": { \"More items …\": { \"v\": [\"Vaata veel …\"] } } }, { \"l\": \"eu\", \"t\": { \"More items …\": { \"v\": [\"Elementu gehiago …\"] } } }, { \"l\": \"fa\", \"t\": { \"More items …\": { \"v\": [\"موارد بیشتر ...\"] } } }, { \"l\": \"fi\", \"t\": { \"More items …\": { \"v\": [\"Lisää kohteita…\"] } } }, { \"l\": \"fr\", \"t\": { \"More items …\": { \"v\": [\"Plus d'éléments...\"] } } }, { \"l\": \"ga\", \"t\": { \"More items …\": { \"v\": [\"Tuilleadh míreanna …\"] } } }, { \"l\": \"gl\", \"t\": { \"More items …\": { \"v\": [\"Máis elementos…\"] } } }, { \"l\": \"he\", \"t\": { \"More items …\": { \"v\": [\"פריטים נוספים…\"] } } }, { \"l\": \"hu\", \"t\": { \"More items …\": { \"v\": [\"További elemek...\"] } } }, { \"l\": \"id\", \"t\": { \"More items …\": { \"v\": [\"Item lainnya…\"] } } }, { \"l\": \"is\", \"t\": { \"More items …\": { \"v\": [\"Fleiri atriði …\"] } } }, { \"l\": \"it\", \"t\": { \"More items …\": { \"v\": [\"Più elementi ...\"] } } }, { \"l\": \"ja\", \"t\": { \"More items …\": { \"v\": [\"他のアイテム …\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"More items …\": { \"v\": [\"他のアイテム\"] } } }, { \"l\": \"ko\", \"t\": { \"More items …\": { \"v\": [\"항목 더 보기...\"] } } }, { \"l\": \"lo\", \"t\": { \"More items …\": { \"v\": [\"ລາຍການເພີ່ມເຕີມ…\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"More items …\": { \"v\": [\"Повеќе елементи …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"More items …\": { \"v\": [\"Flere gjenstander...\"] } } }, { \"l\": \"nl\", \"t\": { \"More items …\": { \"v\": [\"Meer items …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"More items …\": { \"v\": [\"Więcej pozycji…\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"More items …\": { \"v\": [\"Mais itens …\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"More items …\": { \"v\": [\"Mais itens…\"] } } }, { \"l\": \"ro\", \"t\": { \"More items …\": { \"v\": [\"Mai multe articole ...\"] } } }, { \"l\": \"ru\", \"t\": { \"More items …\": { \"v\": [\"Больше элементов …\"] } } }, { \"l\": \"sk\", \"t\": { \"More items …\": { \"v\": [\"Viac položiek...\"] } } }, { \"l\": \"sl\", \"t\": { \"More items …\": { \"v\": [\"Več predmetov ...\"] } } }, { \"l\": \"sr\", \"t\": { \"More items …\": { \"v\": [\"Још ставки...\"] } } }, { \"l\": \"sv\", \"t\": { \"More items …\": { \"v\": [\"Fler objekt …\"] } } }, { \"l\": \"tr\", \"t\": { \"More items …\": { \"v\": [\"Diğer ögeler…\"] } } }, { \"l\": \"uk\", \"t\": { \"More items …\": { \"v\": [\"Більше …\"] } } }, { \"l\": \"uz\", \"t\": { \"More items …\": { \"v\": [\"Yana elementlar...\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"More items …\": { \"v\": [\"更多项目…\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"More items …\": { \"v\": [\"更多項目 …\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"More items …\": { \"v\": [\"更多項目……\"] } } }];\nconst t36 = [{ \"l\": \"ar\", \"t\": { \"Next\": { \"v\": [\"التالي\"] }, \"Pause slideshow\": { \"v\": [\"تجميد عرض الشرائح\"] }, \"Previous\": { \"v\": [\"السابق\"] }, \"Start slideshow\": { \"v\": [\"إبدإ العرض\"] } } }, { \"l\": \"ast\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Posar la presentación de diapositives\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Aniciar la presentación de diapositives\"] } } }, { \"l\": \"br\", \"t\": { \"Next\": { \"v\": [\"Da heul\"] }, \"Pause slideshow\": { \"v\": [\"Arsav an diaporama\"] }, \"Previous\": { \"v\": [\"A-raok\"] }, \"Start slideshow\": { \"v\": [\"Kregiñ an diaporama\"] } } }, { \"l\": \"ca\", \"t\": { \"Next\": { \"v\": [\"Següent\"] }, \"Pause slideshow\": { \"v\": [\"Atura la presentació\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Inicia la presentació\"] } } }, { \"l\": \"cs\", \"t\": { \"Next\": { \"v\": [\"Následující\"] }, \"Pause slideshow\": { \"v\": [\"Pozastavit prezentaci\"] }, \"Previous\": { \"v\": [\"Předchozí\"] }, \"Start slideshow\": { \"v\": [\"Spustit prezentaci\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Next\": { \"v\": [\"Následující\"] }, \"Pause slideshow\": { \"v\": [\"Pozastavit prezentaci\"] }, \"Previous\": { \"v\": [\"Předchozí\"] }, \"Start slideshow\": { \"v\": [\"Spustit prezentaci\"] } } }, { \"l\": \"da\", \"t\": { \"Next\": { \"v\": [\"Videre\"] }, \"Pause slideshow\": { \"v\": [\"Suspender fremvisning\"] }, \"Previous\": { \"v\": [\"Forrige\"] }, \"Start slideshow\": { \"v\": [\"Start fremvisning\"] } } }, { \"l\": \"de\", \"t\": { \"Next\": { \"v\": [\"Weiter\"] }, \"Pause slideshow\": { \"v\": [\"Diashow pausieren\"] }, \"Previous\": { \"v\": [\"Vorherige\"] }, \"Start slideshow\": { \"v\": [\"Diashow starten\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Next\": { \"v\": [\"Weiter\"] }, \"Pause slideshow\": { \"v\": [\"Diashow pausieren\"] }, \"Previous\": { \"v\": [\"Vorherige\"] }, \"Start slideshow\": { \"v\": [\"Diashow starten\"] } } }, { \"l\": \"el\", \"t\": { \"Next\": { \"v\": [\"Επόμενο\"] }, \"Pause slideshow\": { \"v\": [\"Παύση προβολής διαφανειών\"] }, \"Previous\": { \"v\": [\"Προηγούμενο\"] }, \"Start slideshow\": { \"v\": [\"Έναρξη προβολής διαφανειών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Next\": { \"v\": [\"Next\"] }, \"Pause slideshow\": { \"v\": [\"Pause slideshow\"] }, \"Previous\": { \"v\": [\"Previous\"] }, \"Start slideshow\": { \"v\": [\"Start slideshow\"] } } }, { \"l\": \"eo\", \"t\": { \"Next\": { \"v\": [\"Sekva\"] }, \"Pause slideshow\": { \"v\": [\"Payzi bildprezenton\"] }, \"Previous\": { \"v\": [\"Antaŭa\"] }, \"Start slideshow\": { \"v\": [\"Komenci bildprezenton\"] } } }, { \"l\": \"es\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Pausar la presentación \"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar la presentación\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Pausar la presentación \"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar la presentación\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Pausar presentación de diapositivas\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar presentación de diapositivas\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Pausar presentación de diapositivas\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar presentación de diapositivas\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Next\": { \"v\": [\"Edasi\"] }, \"Pause slideshow\": { \"v\": [\"Slaidiesitluse paus\"] }, \"Previous\": { \"v\": [\"Eelmine\"] }, \"Start slideshow\": { \"v\": [\"Alusta slaidiesitust\"] } } }, { \"l\": \"eu\", \"t\": { \"Next\": { \"v\": [\"Hurrengoa\"] }, \"Pause slideshow\": { \"v\": [\"Pausatu diaporama\"] }, \"Previous\": { \"v\": [\"Aurrekoa\"] }, \"Start slideshow\": { \"v\": [\"Hasi diaporama\"] } } }, { \"l\": \"fa\", \"t\": { \"Next\": { \"v\": [\"بعدی\"] }, \"Pause slideshow\": { \"v\": [\"توقف نمایش اسلاید\"] }, \"Previous\": { \"v\": [\"قبلی\"] }, \"Start slideshow\": { \"v\": [\"شروع نمایش اسلاید\"] } } }, { \"l\": \"fi\", \"t\": { \"Next\": { \"v\": [\"Seuraava\"] }, \"Pause slideshow\": { \"v\": [\"Keskeytä diaesitys\"] }, \"Previous\": { \"v\": [\"Edellinen\"] }, \"Start slideshow\": { \"v\": [\"Aloita diaesitys\"] } } }, { \"l\": \"fr\", \"t\": { \"Next\": { \"v\": [\"Suivant\"] }, \"Pause slideshow\": { \"v\": [\"Mettre le diaporama en pause\"] }, \"Previous\": { \"v\": [\"Précédent\"] }, \"Start slideshow\": { \"v\": [\"Démarrer le diaporama\"] } } }, { \"l\": \"ga\", \"t\": { \"Next\": { \"v\": [\"Ar aghaidh\"] }, \"Pause slideshow\": { \"v\": [\"Cuir taispeántas sleamhnán ar sos\"] }, \"Previous\": { \"v\": [\"Roimhe Seo\"] }, \"Start slideshow\": { \"v\": [\"Tosaigh taispeántas sleamhnán\"] } } }, { \"l\": \"gl\", \"t\": { \"Next\": { \"v\": [\"Seguinte\"] }, \"Pause slideshow\": { \"v\": [\"Pausar o diaporama\"] }, \"Previous\": { \"v\": [\"Anterir\"] }, \"Start slideshow\": { \"v\": [\"Iniciar o diaporama\"] } } }, { \"l\": \"he\", \"t\": { \"Next\": { \"v\": [\"הבא\"] }, \"Pause slideshow\": { \"v\": [\"השהיית מצגת\"] }, \"Previous\": { \"v\": [\"הקודם\"] }, \"Start slideshow\": { \"v\": [\"התחלת המצגת\"] } } }, { \"l\": \"hu\", \"t\": { \"Next\": { \"v\": [\"Következő\"] }, \"Pause slideshow\": { \"v\": [\"Diavetítés szüneteltetése\"] }, \"Previous\": { \"v\": [\"Előző\"] }, \"Start slideshow\": { \"v\": [\"Diavetítés indítása\"] } } }, { \"l\": \"id\", \"t\": { \"Next\": { \"v\": [\"Selanjutnya\"] }, \"Pause slideshow\": { \"v\": [\"Jeda tayangan slide\"] }, \"Previous\": { \"v\": [\"Sebelumnya\"] }, \"Start slideshow\": { \"v\": [\"Mulai salindia\"] } } }, { \"l\": \"is\", \"t\": { \"Next\": { \"v\": [\"Næsta\"] }, \"Pause slideshow\": { \"v\": [\"Gera hlé á skyggnusýningu\"] }, \"Previous\": { \"v\": [\"Fyrri\"] }, \"Start slideshow\": { \"v\": [\"Byrja skyggnusýningu\"] } } }, { \"l\": \"it\", \"t\": { \"Next\": { \"v\": [\"Successivo\"] }, \"Pause slideshow\": { \"v\": [\"Presentazione in pausa\"] }, \"Previous\": { \"v\": [\"Precedente\"] }, \"Start slideshow\": { \"v\": [\"Avvia presentazione\"] } } }, { \"l\": \"ja\", \"t\": { \"Next\": { \"v\": [\"次\"] }, \"Pause slideshow\": { \"v\": [\"スライドショーを一時停止\"] }, \"Previous\": { \"v\": [\"前\"] }, \"Start slideshow\": { \"v\": [\"スライドショーを開始\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Next\": { \"v\": [\"次\"] }, \"Pause slideshow\": { \"v\": [\"スライドショーを一時停止\"] }, \"Previous\": { \"v\": [\"前\"] }, \"Start slideshow\": { \"v\": [\"スライドショーを開始\"] } } }, { \"l\": \"ko\", \"t\": { \"Next\": { \"v\": [\"다음\"] }, \"Pause slideshow\": { \"v\": [\"슬라이드쇼 일시정지\"] }, \"Previous\": { \"v\": [\"이전\"] }, \"Start slideshow\": { \"v\": [\"슬라이드쇼 시작\"] } } }, { \"l\": \"lo\", \"t\": { \"Next\": { \"v\": [\"ຕໍ່ໄປ\"] }, \"Pause slideshow\": { \"v\": [\"ຢຸດສະໄລ້ໂຊຊົ່ວຄາວ\"] }, \"Previous\": { \"v\": [\"ກ່ອນໜ້າ\"] }, \"Start slideshow\": { \"v\": [\"ເລີ່ມສະໄລ້ໂຊ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Next\": { \"v\": [\"Kitas\"] }, \"Pause slideshow\": { \"v\": [\"Pristabdyti skaidrių rodymą\"] }, \"Previous\": { \"v\": [\"Ankstesnis\"] }, \"Start slideshow\": { \"v\": [\"Pradėti skaidrių rodymą\"] } } }, { \"l\": \"lv\", \"t\": { \"Next\": { \"v\": [\"Nākamais\"] }, \"Pause slideshow\": { \"v\": [\"Pauzēt slaidrādi\"] }, \"Previous\": { \"v\": [\"Iepriekšējais\"] }, \"Start slideshow\": { \"v\": [\"Sākt slaidrādi\"] } } }, { \"l\": \"mk\", \"t\": { \"Next\": { \"v\": [\"Следно\"] }, \"Pause slideshow\": { \"v\": [\"Пузирај слајдшоу\"] }, \"Previous\": { \"v\": [\"Предходно\"] }, \"Start slideshow\": { \"v\": [\"Стартувај слајдшоу\"] } } }, { \"l\": \"my\", \"t\": { \"Next\": { \"v\": [\"နောက်သို့ဆက်ရန်\"] }, \"Pause slideshow\": { \"v\": [\"စလိုက်ရှိုး ခေတ္တရပ်ရန်\"] }, \"Previous\": { \"v\": [\"ယခင်\"] }, \"Start slideshow\": { \"v\": [\"စလိုက်ရှိုးအား စတင်ရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Next\": { \"v\": [\"Neste\"] }, \"Pause slideshow\": { \"v\": [\"Pause lysbildefremvisning\"] }, \"Previous\": { \"v\": [\"Forrige\"] }, \"Start slideshow\": { \"v\": [\"Start lysbildefremvisning\"] } } }, { \"l\": \"nl\", \"t\": { \"Next\": { \"v\": [\"Volgende\"] }, \"Pause slideshow\": { \"v\": [\"Diavoorstelling pauzeren\"] }, \"Previous\": { \"v\": [\"Vorige\"] }, \"Start slideshow\": { \"v\": [\"Diavoorstelling starten\"] } } }, { \"l\": \"oc\", \"t\": { \"Next\": { \"v\": [\"Seguent\"] }, \"Pause slideshow\": { \"v\": [\"Metre en pausa lo diaporama\"] }, \"Previous\": { \"v\": [\"Precedent\"] }, \"Start slideshow\": { \"v\": [\"Lançar lo diaporama\"] } } }, { \"l\": \"pl\", \"t\": { \"Next\": { \"v\": [\"Następny\"] }, \"Pause slideshow\": { \"v\": [\"Wstrzymaj pokaz slajdów\"] }, \"Previous\": { \"v\": [\"Poprzedni\"] }, \"Start slideshow\": { \"v\": [\"Rozpocznij pokaz slajdów\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Next\": { \"v\": [\"Próximo\"] }, \"Pause slideshow\": { \"v\": [\"Pausar apresentação de slides\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar apresentação de slides\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Next\": { \"v\": [\"Seguinte\"] }, \"Pause slideshow\": { \"v\": [\"Pausar diaporama\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar diaporama\"] } } }, { \"l\": \"ro\", \"t\": { \"Next\": { \"v\": [\"Următorul\"] }, \"Pause slideshow\": { \"v\": [\"Pauză prezentare de diapozitive\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Începeți prezentarea de diapozitive\"] } } }, { \"l\": \"ru\", \"t\": { \"Next\": { \"v\": [\"Следующее\"] }, \"Pause slideshow\": { \"v\": [\"Приостановить показ слйдов\"] }, \"Previous\": { \"v\": [\"Предыдущее\"] }, \"Start slideshow\": { \"v\": [\"Начать показ слайдов\"] } } }, { \"l\": \"sk\", \"t\": { \"Next\": { \"v\": [\"Ďalej\"] }, \"Pause slideshow\": { \"v\": [\"Pozastaviť prezentáciu\"] }, \"Previous\": { \"v\": [\"Predchádzajúce\"] }, \"Start slideshow\": { \"v\": [\"Začať prezentáciu\"] } } }, { \"l\": \"sl\", \"t\": { \"Next\": { \"v\": [\"Naslednji\"] }, \"Pause slideshow\": { \"v\": [\"Ustavi predstavitev\"] }, \"Previous\": { \"v\": [\"Predhodni\"] }, \"Start slideshow\": { \"v\": [\"Začni predstavitev\"] } } }, { \"l\": \"sr\", \"t\": { \"Next\": { \"v\": [\"Следеће\"] }, \"Pause slideshow\": { \"v\": [\"Паузирај слајд шоу\"] }, \"Previous\": { \"v\": [\"Претходно\"] }, \"Start slideshow\": { \"v\": [\"Покрени слајд шоу\"] } } }, { \"l\": \"sv\", \"t\": { \"Next\": { \"v\": [\"Nästa\"] }, \"Pause slideshow\": { \"v\": [\"Pausa bildspelet\"] }, \"Previous\": { \"v\": [\"Föregående\"] }, \"Start slideshow\": { \"v\": [\"Starta bildspelet\"] } } }, { \"l\": \"tr\", \"t\": { \"Next\": { \"v\": [\"Sonraki\"] }, \"Pause slideshow\": { \"v\": [\"Slayt sunumunu duraklat\"] }, \"Previous\": { \"v\": [\"Önceki\"] }, \"Start slideshow\": { \"v\": [\"Slayt sunumunu başlat\"] } } }, { \"l\": \"uk\", \"t\": { \"Next\": { \"v\": [\"Вперед\"] }, \"Pause slideshow\": { \"v\": [\"Пауза у показі слайдів\"] }, \"Previous\": { \"v\": [\"Назад\"] }, \"Start slideshow\": { \"v\": [\"Почати показ слайдів\"] } } }, { \"l\": \"uz\", \"t\": { \"Next\": { \"v\": [\"Keyingi\"] }, \"Pause slideshow\": { \"v\": [\"Slayd-shouni to'xtatib turish\"] }, \"Previous\": { \"v\": [\"Oldingi\"] }, \"Start slideshow\": { \"v\": [\"Slayd-shouni boshlash\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Next\": { \"v\": [\"下一个\"] }, \"Pause slideshow\": { \"v\": [\"暂停幻灯片\"] }, \"Previous\": { \"v\": [\"上一个\"] }, \"Start slideshow\": { \"v\": [\"开始幻灯片\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Next\": { \"v\": [\"下一個\"] }, \"Pause slideshow\": { \"v\": [\"暫停幻燈片\"] }, \"Previous\": { \"v\": [\"上一個\"] }, \"Start slideshow\": { \"v\": [\"開始幻燈片\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Next\": { \"v\": [\"下一個\"] }, \"Pause slideshow\": { \"v\": [\"暫停幻燈片\"] }, \"Previous\": { \"v\": [\"上一個\"] }, \"Start slideshow\": { \"v\": [\"開始幻燈片\"] } } }];\nconst t37 = [{ \"l\": \"ar\", \"t\": { \"No emoji found\": { \"v\": [\"لم يتم العثور على أي إيموجي emoji\"] } } }, { \"l\": \"ast\", \"t\": { \"No emoji found\": { \"v\": [\"Nun s'atopó nengún fustaxe\"] } } }, { \"l\": \"br\", \"t\": { \"No emoji found\": { \"v\": [\"Emoji ebet kavet\"] } } }, { \"l\": \"ca\", \"t\": { \"No emoji found\": { \"v\": [\"No s'ha trobat cap emoji\"] } } }, { \"l\": \"cs\", \"t\": { \"No emoji found\": { \"v\": [\"Nenalezeno žádné emoji\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"No emoji found\": { \"v\": [\"Nenalezeno žádné emoji\"] } } }, { \"l\": \"da\", \"t\": { \"No emoji found\": { \"v\": [\"Ingen emoji fundet\"] } } }, { \"l\": \"de\", \"t\": { \"No emoji found\": { \"v\": [\"Kein Emoji gefunden\"] } } }, { \"l\": \"de-DE\", \"t\": { \"No emoji found\": { \"v\": [\"Kein Emoji gefunden\"] } } }, { \"l\": \"el\", \"t\": { \"No emoji found\": { \"v\": [\"Δεν βρέθηκε emoji\"] } } }, { \"l\": \"en-GB\", \"t\": { \"No emoji found\": { \"v\": [\"No emoji found\"] } } }, { \"l\": \"eo\", \"t\": { \"No emoji found\": { \"v\": [\"La emoĝio forestas\"] } } }, { \"l\": \"es\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"es-AR\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"es-EC\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"es-MX\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"et-EE\", \"t\": { \"No emoji found\": { \"v\": [\"Emojit ei leitud\"] } } }, { \"l\": \"eu\", \"t\": { \"No emoji found\": { \"v\": [\"Ez da emojirik aurkitu\"] } } }, { \"l\": \"fa\", \"t\": { \"No emoji found\": { \"v\": [\"هیچ شکلکی یافت نشد\"] } } }, { \"l\": \"fi\", \"t\": { \"No emoji found\": { \"v\": [\"Emojia ei löytynyt\"] } } }, { \"l\": \"fr\", \"t\": { \"No emoji found\": { \"v\": [\"Pas d’émoji trouvé\"] } } }, { \"l\": \"ga\", \"t\": { \"No emoji found\": { \"v\": [\"Níor aimsíodh emoji\"] } } }, { \"l\": \"gl\", \"t\": { \"No emoji found\": { \"v\": [\"Non se atopou ningún «emoji»\"] } } }, { \"l\": \"he\", \"t\": { \"No emoji found\": { \"v\": [\"לא נמצא אמוג׳י\"] } } }, { \"l\": \"hu\", \"t\": { \"No emoji found\": { \"v\": [\"Nem található emodzsi\"] } } }, { \"l\": \"id\", \"t\": { \"No emoji found\": { \"v\": [\"Tidak ada emoji yang ditemukan\"] } } }, { \"l\": \"is\", \"t\": { \"No emoji found\": { \"v\": [\"Ekkert tjáningartákn fannst\"] } } }, { \"l\": \"it\", \"t\": { \"No emoji found\": { \"v\": [\"Nessun emoji trovato\"] } } }, { \"l\": \"ja\", \"t\": { \"No emoji found\": { \"v\": [\"絵文字が見つかりません\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"No emoji found\": { \"v\": [\"絵文字が見つかりません\"] } } }, { \"l\": \"ko\", \"t\": { \"No emoji found\": { \"v\": [\"이모지 없음\"] } } }, { \"l\": \"lo\", \"t\": { \"No emoji found\": { \"v\": [\"ບໍ່ພົບອີໂມຈິ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"No emoji found\": { \"v\": [\"Nerasta jaustukų\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"No emoji found\": { \"v\": [\"Не се пронајдени емотикони\"] } } }, { \"l\": \"my\", \"t\": { \"No emoji found\": { \"v\": [\"အီမိုဂျီ ရှာဖွေမတွေ့နိုင်ပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"No emoji found\": { \"v\": [\"Fant ingen emoji\"] } } }, { \"l\": \"nl\", \"t\": { \"No emoji found\": { \"v\": [\"Geen emoji gevonden\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"No emoji found\": { \"v\": [\"Nie znaleziono emoji\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"No emoji found\": { \"v\": [\"Nenhum emoji encontrado\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"No emoji found\": { \"v\": [\"Nenhum emoji encontrado\"] } } }, { \"l\": \"ro\", \"t\": { \"No emoji found\": { \"v\": [\"Nu s-a găsit niciun emoji\"] } } }, { \"l\": \"ru\", \"t\": { \"No emoji found\": { \"v\": [\"Эмодзи не найдено\"] } } }, { \"l\": \"sk\", \"t\": { \"No emoji found\": { \"v\": [\"Nenašli sa žiadne emodži\"] } } }, { \"l\": \"sl\", \"t\": { \"No emoji found\": { \"v\": [\"Ni najdenih izraznih ikon\"] } } }, { \"l\": \"sr\", \"t\": { \"No emoji found\": { \"v\": [\"Није пронађен ниједан емођи\"] } } }, { \"l\": \"sv\", \"t\": { \"No emoji found\": { \"v\": [\"Hittade inga emojis\"] } } }, { \"l\": \"tr\", \"t\": { \"No emoji found\": { \"v\": [\"Herhangi bir emoji bulunamadı\"] } } }, { \"l\": \"uk\", \"t\": { \"No emoji found\": { \"v\": [\"Емоційки відсутні\"] } } }, { \"l\": \"uz\", \"t\": { \"No emoji found\": { \"v\": [\"Hech qanday emoji topilmadi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"No emoji found\": { \"v\": [\"表情未找到\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"No emoji found\": { \"v\": [\"未找到表情符號\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"No emoji found\": { \"v\": [\"未找到表情符號\"] } } }];\nconst t38 = [{ \"l\": \"ar\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['إفتَح الرابط إلى \"{resourceName}\"'] } } }, { \"l\": \"ast\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Abrir l'enllaz a «{resourceName}»\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Otevřít odkaz na „{resourceName}“\"] } } }, { \"l\": \"cs-CZ\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Otevřít odkaz na „{resourceName}“\"] } } }, { \"l\": \"da\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Åbn link til \"{resourceName}\"'] } } }, { \"l\": \"de\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Link zu \"{resourceName}\" öffnen'] } } }, { \"l\": \"de-DE\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Link zu \"{resourceName}\" öffnen'] } } }, { \"l\": \"el\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Άνοιγμα συνδέσμου για \"{resourceName}\"'] } } }, { \"l\": \"en-GB\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Open link to \"{resourceName}\"'] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"es-AR\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"es-EC\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"es-MX\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"et-EE\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Ava link „{resourceName}“\"] } } }, { \"l\": \"eu\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Ireki \"{resourceName}\" esteka'] } } }, { \"l\": \"fa\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"باز کردن پیوند به «{resourceName}»\"] } } }, { \"l\": \"fi\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Avaa linkki \"{resourceName}\"'] } } }, { \"l\": \"fr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Ouvrir le lien vers \"{resourceName}\"'] } } }, { \"l\": \"ga\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Oscail nasc chuig \"{resourceName}\"'] } } }, { \"l\": \"gl\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Abrir a ligazón a «{resourceName}»\"] } } }, { \"l\": \"he\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"פתיחת קישור אל „{resourceName}”\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Buka tautan ke \"{resourceName}\"'] } } }, { \"l\": \"is\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Opna tengil í \"{resourceName}\"'] } } }, { \"l\": \"it\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Apri il link a \"{resourceName}\"'] } } }, { \"l\": \"ja\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\" へのリンクを開く'] } } }, { \"l\": \"ja-JP\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\" へのリンクを開く'] } } }, { \"l\": \"ko\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\"의 링크 열기'] } } }, { \"l\": \"lo\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"ເປີດລິງໄປທີ່ “{resourceName}”\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Отвори линк до \"{resourceName}\"'] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Åpne lenken til \"{resourceName}\"'] } } }, { \"l\": \"nl\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Link naar \"{resourceName}\" openen'] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Otwórz link do \"{resourceName}\"'] } } }, { \"l\": \"pt-BR\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir o link para \"{resourceName}\"'] } } }, { \"l\": \"pt-PT\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir link para \"{resourceName}\"'] } } }, { \"l\": \"ro\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Deschide linkul la \"{resourceName}\"'] } } }, { \"l\": \"ru\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Открыть ссылку на \"{resourceName}\"'] } } }, { \"l\": \"sk\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Otvoriť link v \"{resourceName}\"'] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Отвори линк на „{resourceName}”\"] } } }, { \"l\": \"sv\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Öppna länken till \"{resourceName}\"'] } } }, { \"l\": \"tr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Bağlantıyı \"{resourceName}\" üzerine aç'] } } }, { \"l\": \"uk\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Відкрити посилання на \"{resourceName}\"'] } } }, { \"l\": \"uz\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [' \"{resourceName}\" ga havolani ochish'] } } }, { \"l\": \"zh-CN\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"打开 “{resourceName}” 的链接\"] } } }, { \"l\": \"zh-HK\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"開啟到「{resourceName}」的連結\"] } } }, { \"l\": \"zh-TW\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"開啟到「{resourceName}」的連結\"] } } }];\nconst t39 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Please choose a date\": { \"v\": [\"Zvolte datum\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Please choose a date\": { \"v\": [\"Vælg en dato\"] } } }, { \"l\": \"de\", \"t\": { \"Please choose a date\": { \"v\": [\"Bitte ein Datum wählen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Please choose a date\": { \"v\": [\"Bitte ein Datum wählen\"] } } }, { \"l\": \"el\", \"t\": { \"Please choose a date\": { \"v\": [\"Παρακαλώ επιλέξτε μια ημερομηνία\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Please choose a date\": { \"v\": [\"Please choose a date\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Please choose a date\": { \"v\": [\"Palun vali kuupäev\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Please choose a date\": { \"v\": [\"Veuillez choisir une date\"] } } }, { \"l\": \"ga\", \"t\": { \"Please choose a date\": { \"v\": [\"Roghnaigh dáta le do thoil\"] } } }, { \"l\": \"gl\", \"t\": { \"Please choose a date\": { \"v\": [\"Escolla unha data\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Please choose a date\": { \"v\": [\"日付を選択してください\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": {} }, { \"l\": \"lo\", \"t\": { \"Please choose a date\": { \"v\": [\"ກະລຸນາເລືອກວັນທີ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Please choose a date\": { \"v\": [\"Избери датум\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Please choose a date\": { \"v\": [\"Kies een datum\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Please choose a date\": { \"v\": [\"Por favor, escolha uma data\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Please choose a date\": { \"v\": [\"Por favor, escolha uma data\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Please choose a date\": { \"v\": [\"Выберите дату\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Please choose a date\": { \"v\": [\"Молимо вас да изаберете датум\"] } } }, { \"l\": \"sv\", \"t\": {} }, { \"l\": \"tr\", \"t\": { \"Please choose a date\": { \"v\": [\"Lütfen bir tarih seçin\"] } } }, { \"l\": \"uk\", \"t\": { \"Please choose a date\": { \"v\": [\"Виберіть дату\"] } } }, { \"l\": \"uz\", \"t\": { \"Please choose a date\": { \"v\": [\"Iltimos, sanani tanlang\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Please choose a date\": { \"v\": [\"請選擇日期\"] } } }, { \"l\": \"zh-TW\", \"t\": {} }];\nconst t40 = [{ \"l\": \"ar\", \"t\": { \"Provider icon\": { \"v\": [\"أيقونة المزوّد\"] } } }, { \"l\": \"ast\", \"t\": { \"Provider icon\": { \"v\": [\"Iconu del fornidor\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Provider icon\": { \"v\": [\"Ikona poskytovatele\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Provider icon\": { \"v\": [\"Ikona poskytovatele\"] } } }, { \"l\": \"da\", \"t\": { \"Provider icon\": { \"v\": [\"Udbyder ikon\"] } } }, { \"l\": \"de\", \"t\": { \"Provider icon\": { \"v\": [\"Anbietersymbol\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Provider icon\": { \"v\": [\"Anbietersymbol\"] } } }, { \"l\": \"el\", \"t\": { \"Provider icon\": { \"v\": [\"Εικονίδιο παρόχου\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Provider icon\": { \"v\": [\"Provider icon\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Provider icon\": { \"v\": [\"Teenusepakkuja ikoon\"] } } }, { \"l\": \"eu\", \"t\": { \"Provider icon\": { \"v\": [\"Hornitzailearen ikonoa\"] } } }, { \"l\": \"fa\", \"t\": { \"Provider icon\": { \"v\": [\"آیکون ارائه دهنده\"] } } }, { \"l\": \"fi\", \"t\": { \"Provider icon\": { \"v\": [\"Palveluntarjoajan kuvake\"] } } }, { \"l\": \"fr\", \"t\": { \"Provider icon\": { \"v\": [\"Icône du fournisseur\"] } } }, { \"l\": \"ga\", \"t\": { \"Provider icon\": { \"v\": [\"Deilbhín soláthraí\"] } } }, { \"l\": \"gl\", \"t\": { \"Provider icon\": { \"v\": [\"Icona do provedor\"] } } }, { \"l\": \"he\", \"t\": { \"Provider icon\": { \"v\": [\"סמל ספק\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Provider icon\": { \"v\": [\"Ikon penyedia\"] } } }, { \"l\": \"is\", \"t\": { \"Provider icon\": { \"v\": [\"Táknmynd þjónustuveitu\"] } } }, { \"l\": \"it\", \"t\": { \"Provider icon\": { \"v\": [\"Icona del provider\"] } } }, { \"l\": \"ja\", \"t\": { \"Provider icon\": { \"v\": [\"プロバイダーのアイコン\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Provider icon\": { \"v\": [\"プロバイダーのアイコン\"] } } }, { \"l\": \"ko\", \"t\": { \"Provider icon\": { \"v\": [\"제공자 아이콘\"] } } }, { \"l\": \"lo\", \"t\": { \"Provider icon\": { \"v\": [\"ໄອຄອນຜູ້ໃຫ້ບໍລິການ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Provider icon\": { \"v\": [\"Икона на давател\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Provider icon\": { \"v\": [\"Leverandørikon\"] } } }, { \"l\": \"nl\", \"t\": { \"Provider icon\": { \"v\": [\"Provider-pictogram\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Provider icon\": { \"v\": [\"Dostawca ikony\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Provider icon\": { \"v\": [\"Ícone do provedor\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Provider icon\": { \"v\": [\"Ícone do fornecedor\"] } } }, { \"l\": \"ro\", \"t\": { \"Provider icon\": { \"v\": [\"Provider pentru icon\"] } } }, { \"l\": \"ru\", \"t\": { \"Provider icon\": { \"v\": [\"Значок поставщика\"] } } }, { \"l\": \"sk\", \"t\": { \"Provider icon\": { \"v\": [\"Ikonka poskytovateľa\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Provider icon\": { \"v\": [\"Икона пружаоца\"] } } }, { \"l\": \"sv\", \"t\": { \"Provider icon\": { \"v\": [\"Leverantörsikon\"] } } }, { \"l\": \"tr\", \"t\": { \"Provider icon\": { \"v\": [\"Hizmet sağlayıcı simgesi\"] } } }, { \"l\": \"uk\", \"t\": { \"Provider icon\": { \"v\": [\"Піктограма постачальника\"] } } }, { \"l\": \"uz\", \"t\": { \"Provider icon\": { \"v\": [\"Provayder belgisi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Provider icon\": { \"v\": [\"提供者图标\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Provider icon\": { \"v\": [\"提供者圖示\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Provider icon\": { \"v\": [\"提供者圖示\"] } } }];\nconst t41 = [{ \"l\": \"ar\", \"t\": { \"Related team resources\": { \"v\": [\"موارد للفريق ذات صلة\"] }, \"View team\": { \"v\": [\"عرض الفريق\"] } } }, { \"l\": \"ast\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos rellacionaos colos equipos\"] }, \"View team\": { \"v\": [\"Ver l'equipu\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Related team resources\": { \"v\": [\"Související prostředky kolektivu\"] }, \"View team\": { \"v\": [\"Zobrazit kolektiv\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Related team resources\": { \"v\": [\"Relaterede teamressourcer\"] }, \"View team\": { \"v\": [\"Se teamet\"] } } }, { \"l\": \"de\", \"t\": { \"Related team resources\": { \"v\": [\"Verwandte Team-Ressourcen\"] }, \"View team\": { \"v\": [\"Team anzeigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Related team resources\": { \"v\": [\"Verwandte Team-Ressourcen\"] }, \"View team\": { \"v\": [\"Team anzeigen\"] } } }, { \"l\": \"el\", \"t\": { \"Related team resources\": { \"v\": [\"Σχετικοί πόροι ομάδας\"] }, \"View team\": { \"v\": [\"Προβολή ομάδας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Related team resources\": { \"v\": [\"Related team resources\"] }, \"View team\": { \"v\": [\"View team\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver equipo\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver equipo\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver equipo\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Related team resources\": { \"v\": [\"Tiimi seotud ressursid\"] }, \"View team\": { \"v\": [\"Vaata tiimi\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Related team resources\": { \"v\": [\"منابع تیمی مرتبط\"] }, \"View team\": { \"v\": [\"مشاهده گروه\"] } } }, { \"l\": \"fi\", \"t\": { \"Related team resources\": { \"v\": [\"Liittyvät tiimiresurssit\"] }, \"View team\": { \"v\": [\"Näytä tiimi\"] } } }, { \"l\": \"fr\", \"t\": { \"Related team resources\": { \"v\": [\"Ressources d'équipe associées\"] }, \"View team\": { \"v\": [\"Voir l'équipe\"] } } }, { \"l\": \"ga\", \"t\": { \"Related team resources\": { \"v\": [\"Acmhainní foirne gaolmhara\"] }, \"View team\": { \"v\": [\"Féach ar an bhfoireann\"] } } }, { \"l\": \"gl\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver o equipo\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": { \"Related team resources\": { \"v\": [\"Tengd tilföng teymis\"] }, \"View team\": { \"v\": [\"Skoða teymi\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Related team resources\": { \"v\": [\"チームの関連リソース\"] }, \"View team\": { \"v\": [\"チームを表示\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Related team resources\": { \"v\": [\"チームの関連リソース\"] }, \"View team\": { \"v\": [\"チームを表示\"] } } }, { \"l\": \"ko\", \"t\": { \"Related team resources\": { \"v\": [\"관련 팀 리소스\"] }, \"View team\": { \"v\": [\"팀 보기\"] } } }, { \"l\": \"lo\", \"t\": { \"Related team resources\": { \"v\": [\"ຊັບພະຍາກອນຂອງທີມທີ່ກ່ຽວຂ້ອງ\"] }, \"View team\": { \"v\": [\"ເບິ່ງທີມ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Related team resources\": { \"v\": [\"Поврзани ресурси на тимот\"] }, \"View team\": { \"v\": [\"Прикажи тим\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Related team resources\": { \"v\": [\"Relaterte lagressurser\"] }, \"View team\": { \"v\": [\"Se lag\"] } } }, { \"l\": \"nl\", \"t\": { \"Related team resources\": { \"v\": [\"Verwante teambronnen\"] }, \"View team\": { \"v\": [\"Team bekijken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Related team resources\": { \"v\": [\"Powiązane zasoby grupowe\"] }, \"View team\": { \"v\": [\"Zobacz grupę\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipe relacionados\"] }, \"View team\": { \"v\": [\"Ver equipe\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos relacionados com a equipa\"] }, \"View team\": { \"v\": [\"Ver equipa\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Related team resources\": { \"v\": [\"Связанные командные ресурсы\"] }, \"View team\": { \"v\": [\"Просмотр команды\"] } } }, { \"l\": \"sk\", \"t\": { \"Related team resources\": { \"v\": [\"Súvisiace tímové zdroje\"] }, \"View team\": { \"v\": [\"Zobraziť tím\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Related team resources\": { \"v\": [\"Повезани тимски ресурси\"] }, \"View team\": { \"v\": [\"Прикажи тим\"] } } }, { \"l\": \"sv\", \"t\": { \"Related team resources\": { \"v\": [\"Relaterade teamresurser\"] }, \"View team\": { \"v\": [\"Visa team\"] } } }, { \"l\": \"tr\", \"t\": { \"Related team resources\": { \"v\": [\"İlgili takım kaynakları\"] }, \"View team\": { \"v\": [\"Takımı görüntüle\"] } } }, { \"l\": \"uk\", \"t\": { \"Related team resources\": { \"v\": [\"Пов'язані ресурси команди\"] }, \"View team\": { \"v\": [\"Переглянути команду\"] } } }, { \"l\": \"uz\", \"t\": { \"Related team resources\": { \"v\": [\"Tegishli jamoa resurslari\"] }, \"View team\": { \"v\": [\"Jamoani ko'rish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Related team resources\": { \"v\": [\"相关团队资源\"] }, \"View team\": { \"v\": [\"查看团队\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Related team resources\": { \"v\": [\"相關團隊資源\"] }, \"View team\": { \"v\": [\"查看團隊\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Related team resources\": { \"v\": [\"相關團隊資源\"] }, \"View team\": { \"v\": [\"檢視團隊\"] } } }];\nconst t42 = [{ \"l\": \"ar\", \"t\": { \"Search\": { \"v\": [\"بحث\"] } } }, { \"l\": \"ast\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"br\", \"t\": { \"Search\": { \"v\": [\"Klask\"] } } }, { \"l\": \"ca\", \"t\": { \"Search\": { \"v\": [\"Cerca\"] } } }, { \"l\": \"cs\", \"t\": { \"Search\": { \"v\": [\"Hledat\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Search\": { \"v\": [\"Hledat\"] } } }, { \"l\": \"da\", \"t\": { \"Search\": { \"v\": [\"Søg\"] } } }, { \"l\": \"de\", \"t\": { \"Search\": { \"v\": [\"Suche\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Search\": { \"v\": [\"Suche\"] } } }, { \"l\": \"el\", \"t\": { \"Search\": { \"v\": [\"Αναζήτηση\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Search\": { \"v\": [\"Search\"] } } }, { \"l\": \"eo\", \"t\": { \"Search\": { \"v\": [\"Serĉi\"] } } }, { \"l\": \"es\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Search\": { \"v\": [\"Otsing\"] } } }, { \"l\": \"eu\", \"t\": { \"Search\": { \"v\": [\"Bilatu\"] } } }, { \"l\": \"fa\", \"t\": { \"Search\": { \"v\": [\"جستجو\"] } } }, { \"l\": \"fi\", \"t\": { \"Search\": { \"v\": [\"Etsi\"] } } }, { \"l\": \"fr\", \"t\": { \"Search\": { \"v\": [\"Rechercher\"] } } }, { \"l\": \"ga\", \"t\": { \"Search\": { \"v\": [\"Cuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"he\", \"t\": { \"Search\": { \"v\": [\"חיפוש\"] } } }, { \"l\": \"hu\", \"t\": { \"Search\": { \"v\": [\"Keresés\"] } } }, { \"l\": \"id\", \"t\": { \"Search\": { \"v\": [\"Cari\"] } } }, { \"l\": \"is\", \"t\": { \"Search\": { \"v\": [\"Leita\"] } } }, { \"l\": \"it\", \"t\": { \"Search\": { \"v\": [\"Cerca\"] } } }, { \"l\": \"ja\", \"t\": { \"Search\": { \"v\": [\"検索\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Search\": { \"v\": [\"検索\"] } } }, { \"l\": \"ko\", \"t\": { \"Search\": { \"v\": [\"검색\"] } } }, { \"l\": \"lo\", \"t\": { \"Search\": { \"v\": [\"ຄົ້ນຫາ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Search\": { \"v\": [\"Ieškoti\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Search\": { \"v\": [\"Барај\"] } } }, { \"l\": \"my\", \"t\": { \"Search\": { \"v\": [\"ရှာဖွေရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Search\": { \"v\": [\"Søk\"] } } }, { \"l\": \"nl\", \"t\": { \"Search\": { \"v\": [\"Zoeken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Search\": { \"v\": [\"Szukaj\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Search\": { \"v\": [\"Pesquisar\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Search\": { \"v\": [\"Pesquisar\"] } } }, { \"l\": \"ro\", \"t\": { \"Search\": { \"v\": [\"Căutare\"] } } }, { \"l\": \"ru\", \"t\": { \"Search\": { \"v\": [\"Поиск\"] } } }, { \"l\": \"sk\", \"t\": { \"Search\": { \"v\": [\"Hľadať\"] } } }, { \"l\": \"sl\", \"t\": { \"Search\": { \"v\": [\"Iskanje\"] } } }, { \"l\": \"sr\", \"t\": { \"Search\": { \"v\": [\"Претражи\"] } } }, { \"l\": \"sv\", \"t\": { \"Search\": { \"v\": [\"Sök\"] } } }, { \"l\": \"tr\", \"t\": { \"Search\": { \"v\": [\"Ara\"] } } }, { \"l\": \"uk\", \"t\": { \"Search\": { \"v\": [\"Пошук\"] } } }, { \"l\": \"uz\", \"t\": { \"Search\": { \"v\": [\"Qidiruv\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Search\": { \"v\": [\"搜索\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Search\": { \"v\": [\"搜尋\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Search\": { \"v\": [\"搜尋\"] } } }];\nconst t43 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Search …\": { \"v\": [\"Hledat …\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Search …\": { \"v\": [\"Søg ...\"] } } }, { \"l\": \"de\", \"t\": { \"Search …\": { \"v\": [\"Suche …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Search …\": { \"v\": [\"Suche …\"] } } }, { \"l\": \"el\", \"t\": { \"Search …\": { \"v\": [\"Αναζήτηση …\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Search …\": { \"v\": [\"Search …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Search …\": { \"v\": [\"Otsi …\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Search …\": { \"v\": [\"Rechercher…\"] } } }, { \"l\": \"ga\", \"t\": { \"Search …\": { \"v\": [\"Cuardaigh …\"] } } }, { \"l\": \"gl\", \"t\": { \"Search …\": { \"v\": [\"Buscar…\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Search …\": { \"v\": [\"検索…\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": {} }, { \"l\": \"lo\", \"t\": { \"Search …\": { \"v\": [\"ຄົ້ນຫາ…\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Search …\": { \"v\": [\"Барај…\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Search …\": { \"v\": [\"Zoeken …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Search …\": { \"v\": [\"Pesquisar …\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Search …\": { \"v\": [\"Поиск …\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Search …\": { \"v\": [\"Претражи…\"] } } }, { \"l\": \"sv\", \"t\": {} }, { \"l\": \"tr\", \"t\": { \"Search …\": { \"v\": [\"Ara…\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": { \"Search …\": { \"v\": [\"Izlash...\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Search …\": { \"v\": [\"搜尋 …\"] } } }, { \"l\": \"zh-TW\", \"t\": {} }];\nconst t44 = [{ \"l\": \"ar\", \"t\": { \"Type to search time zone\": { \"v\": [\"أكتُب للبحث عن منطقة زمنية\"] } } }, { \"l\": \"ast\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar fusos horarios\"] }, \"Type to search time zone\": { \"v\": [\"Escribi pa buscar un fusu horariu\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Type to search time zone\": { \"v\": [\"Escriviu per cercar la zona horària\"] } } }, { \"l\": \"cs\", \"t\": { \"Search for time zone\": { \"v\": [\"Vyhledat časové pásmo\"] }, \"Type to search time zone\": { \"v\": [\"Psaním vyhledejte časovou zónu\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Search for time zone\": { \"v\": [\"Vyhledat časové pásmo\"] }, \"Type to search time zone\": { \"v\": [\"Psaním vyhledejte časovou zónu\"] } } }, { \"l\": \"da\", \"t\": { \"Type to search time zone\": { \"v\": [\"Indtast for at søge efter tidszone\"] } } }, { \"l\": \"de\", \"t\": { \"Search for time zone\": { \"v\": [\"Nach Zeitzone suchen\"] }, \"Type to search time zone\": { \"v\": [\"Tippen, um eine Zeitzone zu suchen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Search for time zone\": { \"v\": [\"Nach Zeitzone suchen\"] }, \"Type to search time zone\": { \"v\": [\"Tippen, um eine Zeitzone zu suchen\"] } } }, { \"l\": \"el\", \"t\": { \"Type to search time zone\": { \"v\": [\"Πληκτρολογήστε για αναζήτηση ζώνης ώρας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Search for time zone\": { \"v\": [\"Search for time zone\"] }, \"Type to search time zone\": { \"v\": [\"Type to search time zone\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar huso horario\"] }, \"Type to search time zone\": { \"v\": [\"Escriba para buscar un huso horario\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar zona horaria\"] }, \"Type to search time zone\": { \"v\": [\"Escriba para buscar la zona horaria\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Type to search time zone\": { \"v\": [\"Escribe para buscar la zona horaria\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar zona horaria\"] }, \"Type to search time zone\": { \"v\": [\"Escriba para buscar la zona horaria\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Search for time zone\": { \"v\": [\"Otsi ajavööndit\"] }, \"Type to search time zone\": { \"v\": [\"Kirjuta, et otsida ajavööndit\"] } } }, { \"l\": \"eu\", \"t\": { \"Type to search time zone\": { \"v\": [\"Idatzi ordu-zona bat bilatzeko\"] } } }, { \"l\": \"fa\", \"t\": { \"Search for time zone\": { \"v\": [\"جستجو برای منطقهٔ زمانی\"] }, \"Type to search time zone\": { \"v\": [\"برای جستجوی منطقه زمانی تایپ کنید\"] } } }, { \"l\": \"fi\", \"t\": { \"Search for time zone\": { \"v\": [\"Etsi aikavyöhykettä\"] }, \"Type to search time zone\": { \"v\": [\"Kirjoita etsiäksesi aikavyöhykettä\"] } } }, { \"l\": \"fr\", \"t\": { \"Search for time zone\": { \"v\": [\"Rechercher le fuseau horaire\"] }, \"Type to search time zone\": { \"v\": [\"Saisissez les premiers lettres pour rechercher un fuseau horaire\"] } } }, { \"l\": \"ga\", \"t\": { \"Search for time zone\": { \"v\": [\"Cuardaigh crios ama\"] }, \"Type to search time zone\": { \"v\": [\"Clóscríobh chun crios ama a chuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar por fuso horario\"] }, \"Type to search time zone\": { \"v\": [\"Escriba para buscar o fuso horario\"] } } }, { \"l\": \"he\", \"t\": { \"Type to search time zone\": { \"v\": [\"יש להקליד כדי לחפש אזור זמן\"] } } }, { \"l\": \"hu\", \"t\": { \"Type to search time zone\": { \"v\": [\"Gépeljen az időzóna kereséséhez\"] } } }, { \"l\": \"id\", \"t\": { \"Search for time zone\": { \"v\": [\"Cari zona waktu\"] }, \"Type to search time zone\": { \"v\": [\"Ketik untuk mencari zona waktu\"] } } }, { \"l\": \"is\", \"t\": { \"Search for time zone\": { \"v\": [\"Leita að tímabelti\"] }, \"Type to search time zone\": { \"v\": [\"Skrifaðu til að leita að tímabelti\"] } } }, { \"l\": \"it\", \"t\": { \"Search for time zone\": { \"v\": [\"Ricerca del fuso orario\"] }, \"Type to search time zone\": { \"v\": [\"Digita per cercare un fuso orario\"] } } }, { \"l\": \"ja\", \"t\": { \"Type to search time zone\": { \"v\": [\"タイムゾーン検索のため入力してください\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Search for time zone\": { \"v\": [\"タイムゾーンを検索\"] }, \"Type to search time zone\": { \"v\": [\"タイムゾーン検索のため入力してください\"] } } }, { \"l\": \"ko\", \"t\": { \"Type to search time zone\": { \"v\": [\"입력하여 시간대를 검색\"] } } }, { \"l\": \"lo\", \"t\": { \"Type to search time zone\": { \"v\": [\"ພິມເພື່ອຄົ້ນຫາເຂດເວລາ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Type to search time zone\": { \"v\": [\"Напишете за да пребарате временска зона\"] } } }, { \"l\": \"my\", \"t\": { \"Type to search time zone\": { \"v\": [\"ဒေသစံတော်ချိန်များ ရှာဖွေရန် စာရိုက်ပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"Search for time zone\": { \"v\": [\"Søk etter tidssone\"] }, \"Type to search time zone\": { \"v\": [\"Tast for å søke etter tidssone\"] } } }, { \"l\": \"nl\", \"t\": { \"Type to search time zone\": { \"v\": [\"Typ om een tijdzone te zoeken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Search for time zone\": { \"v\": [\"Szukaj strefy czasowej\"] }, \"Type to search time zone\": { \"v\": [\"Wpisz, aby wyszukać strefę czasową\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Search for time zone\": { \"v\": [\"Pesquisar fuso horário\"] }, \"Type to search time zone\": { \"v\": [\"Digite para pesquisar o fuso horário \"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Type to search time zone\": { \"v\": [\"Digite para pesquisar o fuso horário \"] } } }, { \"l\": \"ro\", \"t\": { \"Search for time zone\": { \"v\": [\"Căutare zonă de timp\"] }, \"Type to search time zone\": { \"v\": [\"Tastați pentru a căuta fusul orar\"] } } }, { \"l\": \"ru\", \"t\": { \"Search for time zone\": { \"v\": [\"Поиск часового пояса\"] }, \"Type to search time zone\": { \"v\": [\"Введите для поиска часового пояса\"] } } }, { \"l\": \"sk\", \"t\": { \"Search for time zone\": { \"v\": [\"Vyhľadať časové pásmo\"] }, \"Type to search time zone\": { \"v\": [\"Začníte písať pre vyhľadávanie časovej zóny\"] } } }, { \"l\": \"sl\", \"t\": { \"Type to search time zone\": { \"v\": [\"Vpišite niz za iskanje časovnega pasu\"] } } }, { \"l\": \"sr\", \"t\": { \"Type to search time zone\": { \"v\": [\"Куцајте да претражите временске зоне\"] } } }, { \"l\": \"sv\", \"t\": { \"Search for time zone\": { \"v\": [\"Sök efter tidszon\"] }, \"Type to search time zone\": { \"v\": [\"Skriv för att välja tidszon\"] } } }, { \"l\": \"tr\", \"t\": { \"Search for time zone\": { \"v\": [\"Saat dilimi ara\"] }, \"Type to search time zone\": { \"v\": [\"Saat dilimi aramak için yazmaya başlayın\"] } } }, { \"l\": \"uk\", \"t\": { \"Type to search time zone\": { \"v\": [\"Введіть для пошуку часовий пояс\"] } } }, { \"l\": \"uz\", \"t\": { \"Type to search time zone\": { \"v\": [\"Vaqt mintaqasini qidirish uchun kiriting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Search for time zone\": { \"v\": [\"搜索时区\"] }, \"Type to search time zone\": { \"v\": [\"打字以搜索时区\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Type to search time zone\": { \"v\": [\"鍵入以搜索時區\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Type to search time zone\": { \"v\": [\"輸入以搜尋時區\"] } } }];\nconst t45 = [{ \"l\": \"ar\", \"t\": { \"Select provider\": { \"v\": [\"اختر مزود\"] } } }, { \"l\": \"ast\", \"t\": { \"Select provider\": { \"v\": [\"Seleicionar el fornidor\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Select provider\": { \"v\": [\"Vybrat poskytovatele\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Select provider\": { \"v\": [\"Vybrat poskytovatele\"] } } }, { \"l\": \"da\", \"t\": { \"Select provider\": { \"v\": [\"Vælg udbyder\"] } } }, { \"l\": \"de\", \"t\": { \"Select provider\": { \"v\": [\"Anbieter auswählen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Select provider\": { \"v\": [\"Anbieter auswählen\"] } } }, { \"l\": \"el\", \"t\": { \"Select provider\": { \"v\": [\"Επιλογή παρόχου\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Select provider\": { \"v\": [\"Select provider\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Select provider\": { \"v\": [\"Seleccione proveedor\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Select provider\": { \"v\": [\"Elija proveedor\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Select provider\": { \"v\": [\"Seleccionar proveedor\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Select provider\": { \"v\": [\"Seleccionar proveedor\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Select provider\": { \"v\": [\"Vali teenuspakkuja\"] } } }, { \"l\": \"eu\", \"t\": { \"Select provider\": { \"v\": [\"Hautatu hornitzailea\"] } } }, { \"l\": \"fa\", \"t\": { \"Select provider\": { \"v\": [\"ارائه دهنده را انتخاب کنید\"] } } }, { \"l\": \"fi\", \"t\": { \"Select provider\": { \"v\": [\"Valitse tarjoaja\"] } } }, { \"l\": \"fr\", \"t\": { \"Select provider\": { \"v\": [\"Sélectionner un fournisseur\"] } } }, { \"l\": \"ga\", \"t\": { \"Select provider\": { \"v\": [\"Roghnaigh soláthraí\"] } } }, { \"l\": \"gl\", \"t\": { \"Select provider\": { \"v\": [\"Seleccione o provedor\"] } } }, { \"l\": \"he\", \"t\": { \"Select provider\": { \"v\": [\"בחירת ספק\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Select provider\": { \"v\": [\"Pilih penyedia\"] } } }, { \"l\": \"is\", \"t\": { \"Select provider\": { \"v\": [\"Veldu þjónustuveitu\"] } } }, { \"l\": \"it\", \"t\": { \"Select provider\": { \"v\": [\"Selezionare il provider\"] } } }, { \"l\": \"ja\", \"t\": { \"Select provider\": { \"v\": [\"プロバイダーを選択\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Select provider\": { \"v\": [\"プロバイダーを選択\"] } } }, { \"l\": \"ko\", \"t\": { \"Select provider\": { \"v\": [\"제공자 선택\"] } } }, { \"l\": \"lo\", \"t\": { \"Select provider\": { \"v\": [\"ເລືອກຜູ້ໃຫ້ບໍລິການ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Select provider\": { \"v\": [\"Избери провајдер\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Select provider\": { \"v\": [\"Velg leverandør\"] } } }, { \"l\": \"nl\", \"t\": { \"Select provider\": { \"v\": [\"Selecteer provider\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Select provider\": { \"v\": [\"Wybierz dostawcę\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Select provider\": { \"v\": [\"Selecione provedor\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Select provider\": { \"v\": [\"Selecionar fornecedor\"] } } }, { \"l\": \"ro\", \"t\": { \"Select provider\": { \"v\": [\"Selectați providerul\"] } } }, { \"l\": \"ru\", \"t\": { \"Select provider\": { \"v\": [\"Выбрать поставщика\"] } } }, { \"l\": \"sk\", \"t\": { \"Select provider\": { \"v\": [\"Vybrať poskytovateľa\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Select provider\": { \"v\": [\"Изаберите пружаоца\"] } } }, { \"l\": \"sv\", \"t\": { \"Select provider\": { \"v\": [\"Välj leverantör\"] } } }, { \"l\": \"tr\", \"t\": { \"Select provider\": { \"v\": [\"Hizmet sağlayıcı seçin\"] } } }, { \"l\": \"uk\", \"t\": { \"Select provider\": { \"v\": [\"Виберіть постачальника\"] } } }, { \"l\": \"uz\", \"t\": { \"Select provider\": { \"v\": [\"Provayderni tanlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Select provider\": { \"v\": [\"选择提供者\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Select provider\": { \"v\": [\"選擇提供者\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Select provider\": { \"v\": [\"選取提供者\"] } } }];\nconst t46 = [{ \"l\": \"ar\", \"t\": { \"Settings\": { \"v\": [\"الإعدادات\"] } } }, { \"l\": \"ast\", \"t\": { \"Settings\": { \"v\": [\"Configuración\"] } } }, { \"l\": \"br\", \"t\": { \"Settings\": { \"v\": [\"Arventennoù\"] } } }, { \"l\": \"ca\", \"t\": { \"Settings\": { \"v\": [\"Paràmetres\"] } } }, { \"l\": \"cs\", \"t\": { \"Settings\": { \"v\": [\"Nastavení\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Settings\": { \"v\": [\"Nastavení\"] } } }, { \"l\": \"da\", \"t\": { \"Settings\": { \"v\": [\"Indstillinger\"] } } }, { \"l\": \"de\", \"t\": { \"Settings\": { \"v\": [\"Einstellungen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Settings\": { \"v\": [\"Einstellungen\"] } } }, { \"l\": \"el\", \"t\": { \"Settings\": { \"v\": [\"Ρυθμίσεις\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Settings\": { \"v\": [\"Settings\"] } } }, { \"l\": \"eo\", \"t\": { \"Settings\": { \"v\": [\"Agordo\"] } } }, { \"l\": \"es\", \"t\": { \"Settings\": { \"v\": [\"Ajustes\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Settings\": { \"v\": [\"Configuraciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Settings\": { \"v\": [\"Configuraciones\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Settings\": { \"v\": [\"Configuración\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Settings\": { \"v\": [\"Seadistused\"] } } }, { \"l\": \"eu\", \"t\": { \"Settings\": { \"v\": [\"Ezarpenak\"] } } }, { \"l\": \"fa\", \"t\": { \"Settings\": { \"v\": [\"تنظیمات\"] } } }, { \"l\": \"fi\", \"t\": { \"Settings\": { \"v\": [\"Asetukset\"] } } }, { \"l\": \"fr\", \"t\": { \"Settings\": { \"v\": [\"Paramètres\"] } } }, { \"l\": \"ga\", \"t\": { \"Settings\": { \"v\": [\"Socruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Settings\": { \"v\": [\"Axustes\"] } } }, { \"l\": \"he\", \"t\": { \"Settings\": { \"v\": [\"הגדרות\"] } } }, { \"l\": \"hu\", \"t\": { \"Settings\": { \"v\": [\"Beállítások\"] } } }, { \"l\": \"id\", \"t\": { \"Settings\": { \"v\": [\"Pengaturan\"] } } }, { \"l\": \"is\", \"t\": { \"Settings\": { \"v\": [\"Stillingar\"] } } }, { \"l\": \"it\", \"t\": { \"Settings\": { \"v\": [\"Impostazioni\"] } } }, { \"l\": \"ja\", \"t\": { \"Settings\": { \"v\": [\"設定\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Settings\": { \"v\": [\"設定\"] } } }, { \"l\": \"ko\", \"t\": { \"Settings\": { \"v\": [\"선택\"] } } }, { \"l\": \"lo\", \"t\": { \"Settings\": { \"v\": [\"ການຕັ້ງຄ່າ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Settings\": { \"v\": [\"Nustatymai\"] } } }, { \"l\": \"lv\", \"t\": { \"Settings\": { \"v\": [\"Iestatījumi\"] } } }, { \"l\": \"mk\", \"t\": { \"Settings\": { \"v\": [\"Параметри\"] } } }, { \"l\": \"my\", \"t\": { \"Settings\": { \"v\": [\"ချိန်ညှိချက်များ\"] } } }, { \"l\": \"nb\", \"t\": { \"Settings\": { \"v\": [\"Innstillinger\"] } } }, { \"l\": \"nl\", \"t\": { \"Settings\": { \"v\": [\"Instellingen\"] } } }, { \"l\": \"oc\", \"t\": { \"Settings\": { \"v\": [\"Paramètres\"] } } }, { \"l\": \"pl\", \"t\": { \"Settings\": { \"v\": [\"Ustawienia\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Settings\": { \"v\": [\"Configurações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Settings\": { \"v\": [\"Definições\"] } } }, { \"l\": \"ro\", \"t\": { \"Settings\": { \"v\": [\"Setări\"] } } }, { \"l\": \"ru\", \"t\": { \"Settings\": { \"v\": [\"Параметры\"] } } }, { \"l\": \"sk\", \"t\": { \"Settings\": { \"v\": [\"Nastavenia\"] } } }, { \"l\": \"sl\", \"t\": { \"Settings\": { \"v\": [\"Nastavitve\"] } } }, { \"l\": \"sr\", \"t\": { \"Settings\": { \"v\": [\"Поставке\"] } } }, { \"l\": \"sv\", \"t\": { \"Settings\": { \"v\": [\"Inställningar\"] } } }, { \"l\": \"tr\", \"t\": { \"Settings\": { \"v\": [\"Ayarlar\"] } } }, { \"l\": \"uk\", \"t\": { \"Settings\": { \"v\": [\"Налаштування\"] } } }, { \"l\": \"uz\", \"t\": { \"Settings\": { \"v\": [\"Sozlamalar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Settings\": { \"v\": [\"设置\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Settings\": { \"v\": [\"設定\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Settings\": { \"v\": [\"設定\"] } } }];\nconst t47 = [{ \"l\": \"ar\", \"t\": { \"Settings navigation\": { \"v\": [\"إعدادات التّصفُّح\"] } } }, { \"l\": \"ast\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación pela configuración\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegació d'opcions\"] } } }, { \"l\": \"cs\", \"t\": { \"Settings navigation\": { \"v\": [\"Pohyb po nastavení\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Settings navigation\": { \"v\": [\"Pohyb po nastavení\"] } } }, { \"l\": \"da\", \"t\": { \"Settings navigation\": { \"v\": [\"Naviger i indstillinger\"] } } }, { \"l\": \"de\", \"t\": { \"Settings navigation\": { \"v\": [\"Einstellungen für die Navigation\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Settings navigation\": { \"v\": [\"Einstellungen für die Navigation\"] } } }, { \"l\": \"el\", \"t\": { \"Settings navigation\": { \"v\": [\"Πλοήγηση ρυθμίσεων\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Settings navigation\": { \"v\": [\"Settings navigation\"] } } }, { \"l\": \"eo\", \"t\": { \"Settings navigation\": { \"v\": [\"Agorda navigado\"] } } }, { \"l\": \"es\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación de ajustes\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación de configuraciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación de configuraciones\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación por ajustes\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Settings navigation\": { \"v\": [\"Seadistuste navigatsioon\"] } } }, { \"l\": \"eu\", \"t\": { \"Settings navigation\": { \"v\": [\"Nabigazio ezarpenak\"] } } }, { \"l\": \"fa\", \"t\": { \"Settings navigation\": { \"v\": [\"ناوبری تنظیمات\"] } } }, { \"l\": \"fi\", \"t\": { \"Settings navigation\": { \"v\": [\"Asetusten navigointi\"] } } }, { \"l\": \"fr\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigation dans les paramètres\"] } } }, { \"l\": \"ga\", \"t\": { \"Settings navigation\": { \"v\": [\"Nascleanúint socruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación polos axustes\"] } } }, { \"l\": \"he\", \"t\": { \"Settings navigation\": { \"v\": [\"ניווט בהגדרות\"] } } }, { \"l\": \"hu\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigáció a beállításokban\"] } } }, { \"l\": \"id\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigasi pengaturan\"] } } }, { \"l\": \"is\", \"t\": { \"Settings navigation\": { \"v\": [\"Flakk um stillingar\"] } } }, { \"l\": \"it\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigazione delle impostazioni\"] } } }, { \"l\": \"ja\", \"t\": { \"Settings navigation\": { \"v\": [\"ナビゲーション設定\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Settings navigation\": { \"v\": [\"ナビゲーション設定\"] } } }, { \"l\": \"ko\", \"t\": { \"Settings navigation\": { \"v\": [\"세팅 탐색\"] } } }, { \"l\": \"lo\", \"t\": { \"Settings navigation\": { \"v\": [\"ການນຳທາງການຕັ້ງຄ່າ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Settings navigation\": { \"v\": [\"Naršymas nustatymuose\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Settings navigation\": { \"v\": [\"Параметри за навигација\"] } } }, { \"l\": \"my\", \"t\": { \"Settings navigation\": { \"v\": [\"ချိန်ညှိချက်အညွှန်း\"] } } }, { \"l\": \"nb\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigasjonsinstillinger\"] } } }, { \"l\": \"nl\", \"t\": { \"Settings navigation\": { \"v\": [\"Instellingen navigatie\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Settings navigation\": { \"v\": [\"Ustawienia nawigacji\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegação de configurações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegação de configurações\"] } } }, { \"l\": \"ro\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigare setări\"] } } }, { \"l\": \"ru\", \"t\": { \"Settings navigation\": { \"v\": [\"Навигация по настройкам\"] } } }, { \"l\": \"sk\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigácia v nastaveniach\"] } } }, { \"l\": \"sl\", \"t\": { \"Settings navigation\": { \"v\": [\"Krmarjenje nastavitev\"] } } }, { \"l\": \"sr\", \"t\": { \"Settings navigation\": { \"v\": [\"Кретање по подешавањима\"] } } }, { \"l\": \"sv\", \"t\": { \"Settings navigation\": { \"v\": [\"Inställningsmeny\"] } } }, { \"l\": \"tr\", \"t\": { \"Settings navigation\": { \"v\": [\"Gezinme ayarları\"] } } }, { \"l\": \"uk\", \"t\": { \"Settings navigation\": { \"v\": [\"Навігація у налаштуваннях\"] } } }, { \"l\": \"uz\", \"t\": { \"Settings navigation\": { \"v\": [\"Sozlamalar navigatsiyasi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Settings navigation\": { \"v\": [\"设置向导\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Settings navigation\": { \"v\": [\"設定值導覽\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Settings navigation\": { \"v\": [\"設定值導覽\"] } } }];\nconst t48 = [{ \"l\": \"ar\", \"t\": { \"Submit\": { \"v\": [\"إرسال\"] } } }, { \"l\": \"ast\", \"t\": { \"Submit\": { \"v\": [\"Unviar\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Submit\": { \"v\": [\"Envia\"] } } }, { \"l\": \"cs\", \"t\": { \"Submit\": { \"v\": [\"Odeslat\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Submit\": { \"v\": [\"Odeslat\"] } } }, { \"l\": \"da\", \"t\": { \"Submit\": { \"v\": [\"Send\"] } } }, { \"l\": \"de\", \"t\": { \"Submit\": { \"v\": [\"Einreichen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Submit\": { \"v\": [\"Einreichen\"] } } }, { \"l\": \"el\", \"t\": { \"Submit\": { \"v\": [\"Υποβολή\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Submit\": { \"v\": [\"Submit\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Submit\": { \"v\": [\"Saada\"] } } }, { \"l\": \"eu\", \"t\": { \"Submit\": { \"v\": [\"Bidali\"] } } }, { \"l\": \"fa\", \"t\": { \"Submit\": { \"v\": [\"ارسال\"] } } }, { \"l\": \"fi\", \"t\": { \"Submit\": { \"v\": [\"Lähetä\"] } } }, { \"l\": \"fr\", \"t\": { \"Submit\": { \"v\": [\"Valider\"] } } }, { \"l\": \"ga\", \"t\": { \"Submit\": { \"v\": [\"Cuir isteach\"] } } }, { \"l\": \"gl\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"he\", \"t\": { \"Submit\": { \"v\": [\"הגשה\"] } } }, { \"l\": \"hu\", \"t\": { \"Submit\": { \"v\": [\"Beküldés\"] } } }, { \"l\": \"id\", \"t\": { \"Submit\": { \"v\": [\"Kirimkan\"] } } }, { \"l\": \"is\", \"t\": { \"Submit\": { \"v\": [\"Senda inn\"] } } }, { \"l\": \"it\", \"t\": { \"Submit\": { \"v\": [\"Invia\"] } } }, { \"l\": \"ja\", \"t\": { \"Submit\": { \"v\": [\"提出\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Submit\": { \"v\": [\"提出\"] } } }, { \"l\": \"ko\", \"t\": { \"Submit\": { \"v\": [\"제출\"] } } }, { \"l\": \"lo\", \"t\": { \"Submit\": { \"v\": [\"ສົ່ງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Submit\": { \"v\": [\"Pateikti\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Submit\": { \"v\": [\"Испрати\"] } } }, { \"l\": \"my\", \"t\": { \"Submit\": { \"v\": [\"တင်သွင်းရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Submit\": { \"v\": [\"Send\"] } } }, { \"l\": \"nl\", \"t\": { \"Submit\": { \"v\": [\"Indienen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Submit\": { \"v\": [\"Wyślij\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Submit\": { \"v\": [\"Submeter\"] } } }, { \"l\": \"ro\", \"t\": { \"Submit\": { \"v\": [\"Trimiteți\"] } } }, { \"l\": \"ru\", \"t\": { \"Submit\": { \"v\": [\"Утвердить\"] } } }, { \"l\": \"sk\", \"t\": { \"Submit\": { \"v\": [\"Odoslať\"] } } }, { \"l\": \"sl\", \"t\": { \"Submit\": { \"v\": [\"Pošlji\"] } } }, { \"l\": \"sr\", \"t\": { \"Submit\": { \"v\": [\"Поднеси\"] } } }, { \"l\": \"sv\", \"t\": { \"Submit\": { \"v\": [\"Skicka\"] } } }, { \"l\": \"tr\", \"t\": { \"Submit\": { \"v\": [\"Gönder\"] } } }, { \"l\": \"uk\", \"t\": { \"Submit\": { \"v\": [\"Надіслати\"] } } }, { \"l\": \"uz\", \"t\": { \"Submit\": { \"v\": [\"Yuborish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Submit\": { \"v\": [\"提交\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Submit\": { \"v\": [\"提交\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Submit\": { \"v\": [\"遞交\"] } } }];\nconst t49 = [{ \"l\": \"ar\", \"t\": { \"Unable to search the group\": { \"v\": [\"تعذّر البحث في المجموعة\"] } } }, { \"l\": \"ast\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nun ye posible buscar el grupu\"] } } }, { \"l\": \"br\", \"t\": { \"Unable to search the group\": { \"v\": [\"Dibosupl eo klask ar strollad\"] } } }, { \"l\": \"ca\", \"t\": { \"Unable to search the group\": { \"v\": [\"No es pot cercar el grup\"] } } }, { \"l\": \"cs\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nedaří se hledat skupinu\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nedaří se hledat skupinu\"] } } }, { \"l\": \"da\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kan ikke søge på denne gruppe\"] } } }, { \"l\": \"de\", \"t\": { \"Unable to search the group\": { \"v\": [\"Die Gruppe kann nicht durchsucht werden\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Unable to search the group\": { \"v\": [\"Die Gruppe kann nicht durchsucht werden\"] } } }, { \"l\": \"el\", \"t\": { \"Unable to search the group\": { \"v\": [\"Δεν είναι δυνατή η αναζήτηση της ομάδας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Unable to search the group\": { \"v\": [\"Unable to search the group\"] } } }, { \"l\": \"eo\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ne eblas serĉi en la grupo\"] } } }, { \"l\": \"es\", \"t\": { \"Unable to search the group\": { \"v\": [\"No es posible buscar en el grupo\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Unable to search the group\": { \"v\": [\"No se puede buscar el grupo\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Unable to search the group\": { \"v\": [\"No se puede buscar en el grupo\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Unable to search the group\": { \"v\": [\"No fue posible buscar en el grupo\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Unable to search the group\": { \"v\": [\"Gruppi ei ole võimalik otsida\"] } } }, { \"l\": \"eu\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ezin izan da taldea bilatu\"] } } }, { \"l\": \"fa\", \"t\": { \"Unable to search the group\": { \"v\": [\"امکان جستجوی گروه وجود ندارد\"] } } }, { \"l\": \"fi\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ryhmää ei voi hakea\"] } } }, { \"l\": \"fr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Impossible de chercher le groupe\"] } } }, { \"l\": \"ga\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ní féidir an grúpa a chuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Non foi posíbel buscar o grupo\"] } } }, { \"l\": \"he\", \"t\": { \"Unable to search the group\": { \"v\": [\"לא ניתן לחפש בקבוצה\"] } } }, { \"l\": \"hu\", \"t\": { \"Unable to search the group\": { \"v\": [\"A csoport nem kereshető\"] } } }, { \"l\": \"id\", \"t\": { \"Unable to search the group\": { \"v\": [\"Tidak dapat mencari dalam grup\"] } } }, { \"l\": \"is\", \"t\": { \"Unable to search the group\": { \"v\": [\"Get ekki leitað í hópnum\"] } } }, { \"l\": \"it\", \"t\": { \"Unable to search the group\": { \"v\": [\"Impossibile cercare il gruppo\"] } } }, { \"l\": \"ja\", \"t\": { \"Unable to search the group\": { \"v\": [\"グループを検索できません\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Unable to search the group\": { \"v\": [\"グループを検索できません\"] } } }, { \"l\": \"ko\", \"t\": { \"Unable to search the group\": { \"v\": [\"그룹을 검색할 수 없음\"] } } }, { \"l\": \"lo\", \"t\": { \"Unable to search the group\": { \"v\": [\"ບໍ່ສາມາດຄົ້ນຫາກຸ່ມໄດ້\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nepavyko atlikti paiešką grupėje\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Unable to search the group\": { \"v\": [\"Неможе да се пронајде групата\"] } } }, { \"l\": \"my\", \"t\": { \"Unable to search the group\": { \"v\": [\"အဖွဲ့အား ရှာဖွေ၍ မရနိုင်ပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kunne ikke søke i gruppen\"] } } }, { \"l\": \"nl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kan niet zoeken in de groep\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nie można przeszukać grupy\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Unable to search the group\": { \"v\": [\"Não foi possível pesquisar o grupo\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Unable to search the group\": { \"v\": [\"Não é possível pesquisar o grupo\"] } } }, { \"l\": \"ro\", \"t\": { \"Unable to search the group\": { \"v\": [\"Imposibilitatea de a căuta în grup\"] } } }, { \"l\": \"ru\", \"t\": { \"Unable to search the group\": { \"v\": [\"Невозможно найти группу\"] } } }, { \"l\": \"sk\", \"t\": { \"Unable to search the group\": { \"v\": [\"Skupinu sa nepodarilo nájsť\"] } } }, { \"l\": \"sl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ni mogoče iskati po skupini\"] } } }, { \"l\": \"sr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Група не може да се претражи\"] } } }, { \"l\": \"sv\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kunde inte söka i gruppen\"] } } }, { \"l\": \"tr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Grupta arama yapılamadı\"] } } }, { \"l\": \"uk\", \"t\": { \"Unable to search the group\": { \"v\": [\"Неможливо шукати в групі\"] } } }, { \"l\": \"uz\", \"t\": { \"Unable to search the group\": { \"v\": [\"Guruhni qidirish imkonsiz\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Unable to search the group\": { \"v\": [\"无法搜索分组\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Unable to search the group\": { \"v\": [\"無法搜尋群組\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Unable to search the group\": { \"v\": [\"無法搜尋群組\"] } } }];\nconst t50 = [{ \"l\": \"ar\", \"t\": { \"Undo changes\": { \"v\": [\"تراجَع عن التغييرات\"] } } }, { \"l\": \"ast\", \"t\": { \"Undo changes\": { \"v\": [\"Desfacer los cambeos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Undo changes\": { \"v\": [\"Desfés els canvis\"] } } }, { \"l\": \"cs\", \"t\": { \"Undo changes\": { \"v\": [\"Vzít změny zpět\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Undo changes\": { \"v\": [\"Vzít změny zpět\"] } } }, { \"l\": \"da\", \"t\": { \"Undo changes\": { \"v\": [\"Fortryd ændringer\"] } } }, { \"l\": \"de\", \"t\": { \"Undo changes\": { \"v\": [\"Änderungen rückgängig machen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Undo changes\": { \"v\": [\"Änderungen rückgängig machen\"] } } }, { \"l\": \"el\", \"t\": { \"Undo changes\": { \"v\": [\"Αναίρεση Αλλαγών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Undo changes\": { \"v\": [\"Undo changes\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Undo changes\": { \"v\": [\"Pööra muudatused tagasi\"] } } }, { \"l\": \"eu\", \"t\": { \"Undo changes\": { \"v\": [\"Aldaketak desegin\"] } } }, { \"l\": \"fa\", \"t\": { \"Undo changes\": { \"v\": [\"لغو تغییرات\"] } } }, { \"l\": \"fi\", \"t\": { \"Undo changes\": { \"v\": [\"Kumoa muutokset\"] } } }, { \"l\": \"fr\", \"t\": { \"Undo changes\": { \"v\": [\"Annuler les changements\"] } } }, { \"l\": \"ga\", \"t\": { \"Undo changes\": { \"v\": [\"Cealaigh athruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Undo changes\": { \"v\": [\"Desfacer os cambios\"] } } }, { \"l\": \"he\", \"t\": { \"Undo changes\": { \"v\": [\"ביטול שינויים\"] } } }, { \"l\": \"hu\", \"t\": { \"Undo changes\": { \"v\": [\"Változtatások visszavonása\"] } } }, { \"l\": \"id\", \"t\": { \"Undo changes\": { \"v\": [\"Urungkan perubahan\"] } } }, { \"l\": \"is\", \"t\": { \"Undo changes\": { \"v\": [\"Afturkalla breytingar\"] } } }, { \"l\": \"it\", \"t\": { \"Undo changes\": { \"v\": [\"Cancella i cambiamenti\"] } } }, { \"l\": \"ja\", \"t\": { \"Undo changes\": { \"v\": [\"変更を取り消し\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Undo changes\": { \"v\": [\"変更を取り消し\"] } } }, { \"l\": \"ko\", \"t\": { \"Undo changes\": { \"v\": [\"변경 되돌리기\"] } } }, { \"l\": \"lo\", \"t\": { \"Undo changes\": { \"v\": [\"ຍ້ອນຄືນການປ່ຽນແປງ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Undo changes\": { \"v\": [\"Врати ги промените\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Undo changes\": { \"v\": [\"Tilbakestill endringer\"] } } }, { \"l\": \"nl\", \"t\": { \"Undo changes\": { \"v\": [\"Wijzigingen ongedaan maken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Undo changes\": { \"v\": [\"Cofnij zmiany\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Undo changes\": { \"v\": [\"Desfazer modificações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Undo changes\": { \"v\": [\"Anular alterações\"] } } }, { \"l\": \"ro\", \"t\": { \"Undo changes\": { \"v\": [\"Anularea modificărilor\"] } } }, { \"l\": \"ru\", \"t\": { \"Undo changes\": { \"v\": [\"Отменить изменения\"] } } }, { \"l\": \"sk\", \"t\": { \"Undo changes\": { \"v\": [\"Vrátiť zmeny\"] } } }, { \"l\": \"sl\", \"t\": { \"Undo changes\": { \"v\": [\"Razveljavi spremembe\"] } } }, { \"l\": \"sr\", \"t\": { \"Undo changes\": { \"v\": [\"Поништи измене\"] } } }, { \"l\": \"sv\", \"t\": { \"Undo changes\": { \"v\": [\"Ångra ändringar\"] } } }, { \"l\": \"tr\", \"t\": { \"Undo changes\": { \"v\": [\"Değişiklikleri geri al\"] } } }, { \"l\": \"uk\", \"t\": { \"Undo changes\": { \"v\": [\"Скасувати зміни\"] } } }, { \"l\": \"uz\", \"t\": { \"Undo changes\": { \"v\": [\"O'zgarishlarni bekor qilish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Undo changes\": { \"v\": [\"撤销更改\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Undo changes\": { \"v\": [\"取消更改\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Undo changes\": { \"v\": [\"還原變更\"] } } }];\nconst t51 = [{ \"l\": \"ar\", \"t\": { \"User status: {status}\": { \"v\": [\"حالة المستخدِم: {status}\"] } } }, { \"l\": \"ast\", \"t\": { \"User status: {status}\": { \"v\": [\"Estáu del usuariu: {status}\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"User status: {status}\": { \"v\": [\"Stav uživatele: {status}\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"User status: {status}\": { \"v\": [\"Stav uživatele: {status}\"] } } }, { \"l\": \"da\", \"t\": { \"User status: {status}\": { \"v\": [\"Brugerstatus: {status}\"] } } }, { \"l\": \"de\", \"t\": { \"User status: {status}\": { \"v\": [\"Benutzerstatus: {status}\"] } } }, { \"l\": \"de-DE\", \"t\": { \"User status: {status}\": { \"v\": [\"Benutzerstatus: {status}\"] } } }, { \"l\": \"el\", \"t\": { \"User status: {status}\": { \"v\": [\"Κατάσταση χρήστη: {status}\"] } } }, { \"l\": \"en-GB\", \"t\": { \"User status: {status}\": { \"v\": [\"User status: {status}\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"User status: {status}\": { \"v\": [\"Estatus del usuario: {status}\"] } } }, { \"l\": \"es-AR\", \"t\": { \"User status: {status}\": { \"v\": [\"Estado del usuario: {status}\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"User status: {status}\": { \"v\": [\"Estado del usuario: {status}\"] } } }, { \"l\": \"et-EE\", \"t\": { \"User status: {status}\": { \"v\": [\"Kasutaja olek: {status}\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"User status: {status}\": { \"v\": [\"وضعیت کاربر: {status}\"] } } }, { \"l\": \"fi\", \"t\": { \"User status: {status}\": { \"v\": [\"Käyttäjän tila: {status}\"] } } }, { \"l\": \"fr\", \"t\": { \"User status: {status}\": { \"v\": [\"Statut de l'utilisateur : {status}\"] } } }, { \"l\": \"ga\", \"t\": { \"User status: {status}\": { \"v\": [\"Stádas úsáideora: {status}\"] } } }, { \"l\": \"gl\", \"t\": { \"User status: {status}\": { \"v\": [\"Estado do usuario: {status}\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"User status: {status}\": { \"v\": [\"Status pengguna: {status}\"] } } }, { \"l\": \"is\", \"t\": { \"User status: {status}\": { \"v\": [\"Staða notanda: {status}\"] } } }, { \"l\": \"it\", \"t\": { \"User status: {status}\": { \"v\": [\"Stato dell'utente: {status}\"] } } }, { \"l\": \"ja\", \"t\": { \"User status: {status}\": { \"v\": [\"ユーザのステータス: {status}\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"User status: {status}\": { \"v\": [\"ユーザのステータス: {status}\"] } } }, { \"l\": \"ko\", \"t\": { \"User status: {status}\": { \"v\": [\"사용자 상태: {status}\"] } } }, { \"l\": \"lo\", \"t\": { \"User status: {status}\": { \"v\": [\"ສະຖານະຜູ້ໃຊ້: {status}\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"User status: {status}\": { \"v\": [\"Статус: {status}\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"User status: {status}\": { \"v\": [\"Brukerstatus: {status}\"] } } }, { \"l\": \"nl\", \"t\": { \"User status: {status}\": { \"v\": [\"Gebruikersstatus: {status}\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"User status: {status}\": { \"v\": [\"Status użytkownika: {status}\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"User status: {status}\": { \"v\": [\"Status do usuário: {status}\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"User status: {status}\": { \"v\": [\"Estado do utilizador: {status}\"] } } }, { \"l\": \"ro\", \"t\": { \"User status: {status}\": { \"v\": [\"Status utilizator: {status}\"] } } }, { \"l\": \"ru\", \"t\": { \"User status: {status}\": { \"v\": [\"Статус пользователя: {status}\"] } } }, { \"l\": \"sk\", \"t\": { \"User status: {status}\": { \"v\": [\"Stav užívateľa: {status}\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"User status: {status}\": { \"v\": [\"Статус корисника: {status}\"] } } }, { \"l\": \"sv\", \"t\": { \"User status: {status}\": { \"v\": [\"Användarstatus: {status}\"] } } }, { \"l\": \"tr\", \"t\": { \"User status: {status}\": { \"v\": [\"Kullanıcı durumu: {status}\"] } } }, { \"l\": \"uk\", \"t\": { \"User status: {status}\": { \"v\": [\"Статус користувача: {status}\"] } } }, { \"l\": \"uz\", \"t\": { \"User status: {status}\": { \"v\": [\"Foydalanuvchi holati: {status}\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"User status: {status}\": { \"v\": [\"用户状态:{status}\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"User status: {status}\": { \"v\": [\"用戶狀態:{status}\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"User status: {status}\": { \"v\": [\"使用者狀態:{status}\"] } } }];\nexport {\n t32 as $,\n t19 as A,\n t46 as B,\n t43 as C,\n t36 as D,\n t26 as E,\n t4 as F,\n t27 as G,\n t30 as H,\n t47 as I,\n t34 as J,\n n as K,\n t28 as L,\n t6 as M,\n t21 as N,\n t23 as O,\n t20 as P,\n t51 as Q,\n t11 as R,\n t38 as S,\n t41 as T,\n t9 as U,\n t15 as V,\n t8 as W,\n t45 as X,\n t40 as Y,\n t24 as Z,\n t25 as _,\n t as a,\n t12 as a0,\n t50 as b,\n t18 as c,\n t2 as d,\n t22 as e,\n t33 as f,\n t17 as g,\n t44 as h,\n t49 as i,\n t0 as j,\n t14 as k,\n t48 as l,\n t10 as m,\n t29 as n,\n t7 as o,\n t31 as p,\n t42 as q,\n register as r,\n t37 as s,\n t3 as t,\n t16 as u,\n t5 as v,\n t1 as w,\n t39 as x,\n t13 as y,\n t35 as z\n};\n//# sourceMappingURL=_l10n-CgsPi8nC.mjs.map\n","const [majorVersion] = window.OC?.config?.version?.split(\".\") ?? [];\nconst isLegacy = Number.parseInt(majorVersion ?? \"32\") < 32;\nexport {\n isLegacy as i\n};\n//# sourceMappingURL=legacy-DcjXBL_t.mjs.map\n","import { inject } from \"vue\";\nconst NC_FORM_BOX_CONTEXT_KEY = /* @__PURE__ */ Symbol.for(\"NcFormBox:context\");\nfunction useNcFormBox() {\n return inject(NC_FORM_BOX_CONTEXT_KEY, {\n isInFormBox: false,\n formBoxItemClass: void 0\n });\n}\nexport {\n NC_FORM_BOX_CONTEXT_KEY as N,\n useNcFormBox as u\n};\n//# sourceMappingURL=useNcFormBox-Djlh582y.mjs.map\n","const _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};\nexport {\n _export_sfc as _\n};\n//# sourceMappingURL=_plugin-vue_export-helper-1tPrXgE0.mjs.map\n","import '../assets/NcButton--Fj4gghF.css';\nimport { defineComponent, inject, computed, createBlock, openBlock, resolveDynamicComponent, mergeProps, unref, withCtx, createElementVNode, renderSlot, createTextVNode, toDisplayString } from \"vue\";\nimport { routerKey } from \"vue-router\";\nimport { i as isLegacy } from \"./legacy-DcjXBL_t.mjs\";\nimport { u as useNcFormBox } from \"./useNcFormBox-Djlh582y.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = { class: \"button-vue__wrapper\" };\nconst _hoisted_2 = { class: \"button-vue__icon\" };\nconst _hoisted_3 = { class: \"button-vue__text\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcButton\",\n props: {\n alignment: { default: \"center\" },\n ariaLabel: { default: void 0 },\n disabled: { type: Boolean },\n download: { type: [String, Boolean], default: void 0 },\n href: { default: void 0 },\n pressed: { type: Boolean, default: void 0 },\n size: { default: \"normal\" },\n target: { default: \"_self\" },\n text: { default: void 0 },\n to: { default: void 0 },\n type: { default: \"button\" },\n variant: { default: \"secondary\" },\n wide: { type: Boolean }\n },\n emits: [\"click\", \"update:pressed\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit = __emit;\n const { formBoxItemClass } = useNcFormBox();\n const hasVueRouterContext = inject(routerKey, null) !== null;\n const tag = computed(() => {\n if (hasVueRouterContext && props.to) {\n return \"RouterLink\";\n } else if (props.href) {\n return \"a\";\n } else {\n return \"button\";\n }\n });\n const hasPressedState = computed(() => tag.value === \"button\" && typeof props.pressed === \"boolean\");\n const variantWithPressed = computed(() => {\n if (props.pressed) {\n return \"primary\";\n }\n if (props.pressed === false && props.variant === \"primary\") {\n return \"secondary\";\n }\n return props.variant;\n });\n const isTertiaryVariant = computed(() => variantWithPressed.value.startsWith(\"tertiary\"));\n const flexAlignment = computed(() => props.alignment.split(\"-\")[0]);\n const isReverseAligned = computed(() => props.alignment.includes(\"-\"));\n const getNcPopoverTriggerAttrs = inject(\"NcPopover:trigger:attrs\", () => ({}), false);\n const ncPopoverTriggerAttrs = computed(() => getNcPopoverTriggerAttrs());\n const attrs = computed(() => {\n if (tag.value === \"RouterLink\") {\n return {\n to: props.to,\n activeClass: \"active\"\n };\n } else if (tag.value === \"a\") {\n return {\n href: props.href || \"#\",\n target: props.target,\n rel: \"nofollow noreferrer noopener\",\n download: props.download || void 0\n };\n } else if (tag.value === \"button\") {\n return {\n ...ncPopoverTriggerAttrs.value,\n \"aria-pressed\": props.pressed,\n type: props.type,\n disabled: props.disabled\n };\n }\n return void 0;\n });\n function onClick(event) {\n if (hasPressedState.value) {\n emit(\"update:pressed\", !props.pressed);\n }\n emit(\"click\", event);\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(resolveDynamicComponent(tag.value), mergeProps({\n class: [\"button-vue\", [\n `button-vue--size-${_ctx.size}`,\n {\n [`button-vue--${variantWithPressed.value}`]: variantWithPressed.value,\n \"button-vue--tertiary\": isTertiaryVariant.value,\n \"button-vue--wide\": _ctx.wide,\n [`button-vue--${flexAlignment.value}`]: flexAlignment.value !== \"center\",\n \"button-vue--reverse\": isReverseAligned.value,\n \"button-vue--legacy\": unref(isLegacy)\n },\n unref(formBoxItemClass)\n ]],\n \"aria-label\": _ctx.ariaLabel\n }, attrs.value, { onClick }), {\n default: withCtx(() => [\n createElementVNode(\"span\", _hoisted_1, [\n createElementVNode(\"span\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ]),\n createElementVNode(\"span\", _hoisted_3, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(_ctx.text), 1)\n ], true)\n ])\n ])\n ]),\n _: 3\n }, 16, [\"class\", \"aria-label\"]);\n };\n }\n});\nconst NcButton = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-e3b1a10b\"]]);\nexport {\n NcButton as N\n};\n//# sourceMappingURL=NcButton-CzpKEx4V.mjs.map\n","import '../assets/NcIconSvgWrapper-N3OwSN9O.css';\nimport { defineComponent, useCssVars, computed, warn, createElementBlock, openBlock, normalizeClass, createElementVNode } from \"vue\";\nimport DOMPurify from \"dompurify\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = {\n key: 0,\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_3 = [\"d\"];\nconst _hoisted_4 = [\"innerHTML\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcIconSvgWrapper\",\n props: {\n directional: { type: Boolean },\n inline: { type: Boolean },\n svg: { default: \"\" },\n name: { default: void 0 },\n path: { default: \"\" },\n size: { default: 20 }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"fb515064\": iconSize.value\n }));\n const props = __props;\n const iconSize = computed(() => typeof props.size === \"number\" ? `${props.size}px` : props.size);\n const cleanSvg = computed(() => {\n if (!props.svg || props.path) {\n return;\n }\n const svg = DOMPurify.sanitize(props.svg);\n const svgDocument = new DOMParser().parseFromString(svg, \"image/svg+xml\");\n if (svgDocument.querySelector(\"parsererror\")) {\n warn(\"SVG is not valid\");\n return \"\";\n }\n if (svgDocument.documentElement.id) {\n svgDocument.documentElement.removeAttribute(\"id\");\n }\n return svgDocument.documentElement.outerHTML;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"span\", {\n \"aria-hidden\": _ctx.name ? void 0 : \"true\",\n \"aria-label\": _ctx.name || void 0,\n class: normalizeClass([\"icon-vue\", {\n \"icon-vue--directional\": _ctx.directional,\n \"icon-vue--inline\": _ctx.inline\n }]),\n role: \"img\"\n }, [\n !cleanSvg.value ? (openBlock(), createElementBlock(\"svg\", _hoisted_2, [\n createElementVNode(\"path\", { d: _ctx.path }, null, 8, _hoisted_3)\n ])) : (openBlock(), createElementBlock(\"span\", {\n key: 1,\n innerHTML: cleanSvg.value\n }, null, 8, _hoisted_4))\n ], 10, _hoisted_1);\n };\n }\n});\nconst NcIconSvgWrapper = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-aaedb1c3\"]]);\nexport {\n NcIconSvgWrapper as N\n};\n//# sourceMappingURL=NcIconSvgWrapper-BvLanNaW.mjs.map\n","import '../assets/NcLoadingIcon-CWUlo4XY.css';\nimport { defineComponent, computed, createElementBlock, openBlock, createElementVNode, createCommentVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"aria-label\"];\nconst _hoisted_2 = [\"width\", \"height\"];\nconst _hoisted_3 = [\"fill\"];\nconst _hoisted_4 = [\"fill\"];\nconst _hoisted_5 = { key: 0 };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcLoadingIcon\",\n props: {\n appearance: { default: \"auto\" },\n name: { default: \"\" },\n size: { default: 20 }\n },\n setup(__props) {\n const props = __props;\n const colors = computed(() => {\n const colors2 = [\"#777\", \"#CCC\"];\n if (props.appearance === \"light\") {\n return colors2;\n } else if (props.appearance === \"dark\") {\n return colors2.reverse();\n }\n return [\"var(--color-loading-light)\", \"var(--color-loading-dark)\"];\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"span\", {\n \"aria-label\": _ctx.name,\n role: \"img\",\n class: \"material-design-icon loading-icon\"\n }, [\n (openBlock(), createElementBlock(\"svg\", {\n width: _ctx.size,\n height: _ctx.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", {\n fill: colors.value[0],\n d: \"M12,4V2A10,10 0 1,0 22,12H20A8,8 0 1,1 12,4Z\"\n }, null, 8, _hoisted_3),\n createElementVNode(\"path\", {\n fill: colors.value[1],\n d: \"M12,4V2A10,10 0 0,1 22,12H20A8,8 0 0,0 12,4Z\"\n }, [\n _ctx.name ? (openBlock(), createElementBlock(\"title\", _hoisted_5, toDisplayString(_ctx.name), 1)) : createCommentVNode(\"\", true)\n ], 8, _hoisted_4)\n ], 8, _hoisted_2))\n ], 8, _hoisted_1);\n };\n }\n});\nconst NcLoadingIcon = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-cf399190\"]]);\nexport {\n NcLoadingIcon as N\n};\n//# sourceMappingURL=NcLoadingIcon-b_ajZ_nQ.mjs.map\n","import { defineComponent, ref, createBlock, openBlock, unref, withCtx, createTextVNode, toDisplayString, renderSlot, createCommentVNode } from \"vue\";\nimport { r as register, f as t33, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { N as NcButton } from \"./NcButton-CzpKEx4V.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-b_ajZ_nQ.mjs\";\nregister(t33);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcDialogButton\",\n props: {\n callback: { type: Function, default: () => {\n } },\n disabled: { type: Boolean, default: false },\n icon: { default: void 0 },\n label: {},\n type: { default: \"button\" },\n variant: { default: \"tertiary\" }\n },\n emits: [\"click\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit = __emit;\n const isLoading = ref(false);\n async function handleClick(e) {\n if (isLoading.value) {\n return;\n }\n isLoading.value = true;\n try {\n const fallback = props.type === \"reset\" ? false : void 0;\n const result = await props.callback?.() ?? fallback;\n if (result !== false) {\n emit(\"click\", e, result);\n }\n } finally {\n isLoading.value = false;\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcButton), {\n \"aria-label\": _ctx.label,\n disabled: _ctx.disabled,\n type: _ctx.type,\n variant: _ctx.variant,\n onClick: handleClick\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n isLoading.value ? (openBlock(), createBlock(unref(NcLoadingIcon), {\n key: 0,\n name: unref(t)(\"Loading …\")\n /* TRANSLATORS: The button is in a loading state*/\n }, null, 8, [\"name\"])) : _ctx.icon !== void 0 ? (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 1,\n svg: _ctx.icon\n }, null, 8, [\"svg\"])) : createCommentVNode(\"\", true)\n ])\n ]),\n default: withCtx(() => [\n createTextVNode(toDisplayString(_ctx.label) + \" \", 1)\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"type\", \"variant\"]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcDialogButton.vue_vue_type_script_setup_true_lang-CYpktNKA.mjs.map\n","var mdiAlert = \"M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z\";\nvar mdiAlertCircleOutline = \"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z\";\nvar mdiAlertDecagram = \"M23,12L20.56,9.22L20.9,5.54L17.29,4.72L15.4,1.54L12,3L8.6,1.54L6.71,4.72L3.1,5.53L3.44,9.21L1,12L3.44,14.78L3.1,18.47L6.71,19.29L8.6,22.47L12,21L15.4,22.46L17.29,19.28L20.9,18.46L20.56,14.78L23,12M13,17H11V15H13V17M13,13H11V7H13V13Z\";\nvar mdiArrowLeft = \"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\";\nvar mdiArrowRight = \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\";\nvar mdiArrowTopRight = \"M5,17.59L15.59,7H9V5H19V15H17V8.41L6.41,19L5,17.59Z\";\nvar mdiCalendarBlank = \"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1\";\nvar mdiCheck = \"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\";\nvar mdiCheckboxBlankOutline = \"M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z\";\nvar mdiCheckboxMarked = \"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\";\nvar mdiCheckboxMarkedCircle = \"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nvar mdiChevronDown = \"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\";\nvar mdiChevronLeft = \"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z\";\nvar mdiChevronRight = \"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\";\nvar mdiChevronUp = \"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z\";\nvar mdiClock = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M16.2,16.2L11,13V7H12.5V12.2L17,14.9L16.2,16.2Z\";\nvar mdiClose = \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\";\nvar mdiCloseCircleOutline = \"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22C17.53,22 22,17.53 22,12C22,6.47 17.53,2 12,2M14.59,8L12,10.59L9.41,8L8,9.41L10.59,12L8,14.59L9.41,16L12,13.41L14.59,16L16,14.59L13.41,12L16,9.41L14.59,8Z\";\nvar mdiCog = \"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\";\nvar mdiCogOutline = \"M12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M10,22C9.75,22 9.54,21.82 9.5,21.58L9.13,18.93C8.5,18.68 7.96,18.34 7.44,17.94L4.95,18.95C4.73,19.03 4.46,18.95 4.34,18.73L2.34,15.27C2.21,15.05 2.27,14.78 2.46,14.63L4.57,12.97L4.5,12L4.57,11L2.46,9.37C2.27,9.22 2.21,8.95 2.34,8.73L4.34,5.27C4.46,5.05 4.73,4.96 4.95,5.05L7.44,6.05C7.96,5.66 8.5,5.32 9.13,5.07L9.5,2.42C9.54,2.18 9.75,2 10,2H14C14.25,2 14.46,2.18 14.5,2.42L14.87,5.07C15.5,5.32 16.04,5.66 16.56,6.05L19.05,5.05C19.27,4.96 19.54,5.05 19.66,5.27L21.66,8.73C21.79,8.95 21.73,9.22 21.54,9.37L19.43,11L19.5,12L19.43,13L21.54,14.63C21.73,14.78 21.79,15.05 21.66,15.27L19.66,18.73C19.54,18.95 19.27,19.04 19.05,18.95L16.56,17.95C16.04,18.34 15.5,18.68 14.87,18.93L14.5,21.58C14.46,21.82 14.25,22 14,22H10M11.25,4L10.88,6.61C9.68,6.86 8.62,7.5 7.85,8.39L5.44,7.35L4.69,8.65L6.8,10.2C6.4,11.37 6.4,12.64 6.8,13.8L4.68,15.36L5.43,16.66L7.86,15.62C8.63,16.5 9.68,17.14 10.87,17.38L11.24,20H12.76L13.13,17.39C14.32,17.14 15.37,16.5 16.14,15.62L18.57,16.66L19.32,15.36L17.2,13.81C17.6,12.64 17.6,11.37 17.2,10.2L19.31,8.65L18.56,7.35L16.15,8.39C15.38,7.5 14.32,6.86 13.12,6.62L12.75,4H11.25Z\";\nvar mdiContentCopy = \"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\";\nvar mdiCreation = \"M19,1L17.74,3.75L15,5L17.74,6.26L19,9L20.25,6.26L23,5L20.25,3.75M9,4L6.5,9.5L1,12L6.5,14.5L9,20L11.5,14.5L17,12L11.5,9.5M19,15L17.74,17.74L15,19L17.74,20.25L19,23L20.25,20.25L23,19L20.25,17.74\";\nvar mdiDotsHorizontal = \"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z\";\nvar mdiEye = \"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\";\nvar mdiEyeOff = \"M11.83,9L15,12.16C15,12.11 15,12.05 15,12A3,3 0 0,0 12,9C11.94,9 11.89,9 11.83,9M7.53,9.8L9.08,11.35C9.03,11.56 9,11.77 9,12A3,3 0 0,0 12,15C12.22,15 12.44,14.97 12.65,14.92L14.2,16.47C13.53,16.8 12.79,17 12,17A5,5 0 0,1 7,12C7,11.21 7.2,10.47 7.53,9.8M2,4.27L4.28,6.55L4.73,7C3.08,8.3 1.78,10 1,12C2.73,16.39 7,19.5 12,19.5C13.55,19.5 15.03,19.2 16.38,18.66L16.81,19.08L19.73,22L21,20.73L3.27,3M12,7A5,5 0 0,1 17,12C17,12.64 16.87,13.26 16.64,13.82L19.57,16.75C21.07,15.5 22.27,13.86 23,12C21.27,7.61 17,4.5 12,4.5C10.6,4.5 9.26,4.75 8,5.2L10.17,7.35C10.74,7.13 11.35,7 12,7Z\";\nvar mdiInformation = \"M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nvar mdiMenu = \"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z\";\nvar mdiMenuOpen = \"M21,15.61L19.59,17L14.58,12L19.59,7L21,8.39L17.44,12L21,15.61M3,6H16V8H3V6M3,13V11H13V13H3M3,18V16H16V18H3Z\";\nvar mdiOpenInNew = \"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\";\nvar mdiPause = \"M14,19H18V5H14M6,19H10V5H6V19Z\";\nvar mdiPlay = \"M8,5.14V19.14L19,12.14L8,5.14Z\";\nvar mdiRadioboxBlank = \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nvar mdiRadioboxMarked = \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z\";\nvar mdiUndo = \"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\";\nexport {\n mdiClock as A,\n mdiCalendarBlank as B,\n mdiCog as C,\n mdiCogOutline as D,\n mdiPause as E,\n mdiPlay as F,\n mdiMenuOpen as G,\n mdiMenu as H,\n mdiUndo as a,\n mdiClose as b,\n mdiChevronRight as c,\n mdiCheck as d,\n mdiContentCopy as e,\n mdiRadioboxMarked as f,\n mdiRadioboxBlank as g,\n mdiCheckboxMarked as h,\n mdiCheckboxBlankOutline as i,\n mdiAlertCircleOutline as j,\n mdiAlert as k,\n mdiInformation as l,\n mdiArrowRight as m,\n mdiCheckboxMarkedCircle as n,\n mdiAlertDecagram as o,\n mdiCreation as p,\n mdiEyeOff as q,\n mdiEye as r,\n mdiOpenInNew as s,\n mdiArrowTopRight as t,\n mdiCloseCircleOutline as u,\n mdiArrowLeft as v,\n mdiDotsHorizontal as w,\n mdiChevronUp as x,\n mdiChevronDown as y,\n mdiChevronLeft as z\n};\n//# sourceMappingURL=mdi-CpchYUUV.mjs.map\n","/*!\n* tabbable 6.4.0\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\n// NOTE: separate `:not()` selectors has broader browser support than the newer\n// `:not([inert], [inert] *)` (Feb 2023)\nvar candidateSelectors = ['input:not([inert]):not([inert] *)', 'select:not([inert]):not([inert] *)', 'textarea:not([inert]):not([inert] *)', 'a[href]:not([inert]):not([inert] *)', 'button:not([inert]):not([inert] *)', '[tabindex]:not(slot):not([inert]):not([inert] *)', 'audio[controls]:not([inert]):not([inert] *)', 'video[controls]:not([inert]):not([inert] *)', '[contenteditable]:not([contenteditable=\"false\"]):not([inert]):not([inert] *)', 'details>summary:first-of-type:not([inert]):not([inert] *)', 'details:not([inert]):not([inert] *)'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n var _element$getRootNode;\n return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);\n} : function (element) {\n return element === null || element === void 0 ? void 0 : element.ownerDocument;\n};\n\n/**\n * Determines if a node is inert or in an inert ancestor.\n * @param {Node} [node]\n * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to\n * see if any of them are inert. If false, only `node` itself is considered.\n * @returns {boolean} True if inert itself or by way of being in an inert ancestor.\n * False if `node` is falsy.\n */\nvar _isInert = function isInert(node, lookUp) {\n var _node$getAttribute;\n if (lookUp === void 0) {\n lookUp = true;\n }\n // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`\n // JS API property; we have to check the attribute, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's an active element\n var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'inert');\n var inert = inertAtt === '' || inertAtt === 'true';\n\n // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`\n // if it weren't for `matches()` not being a function on shadow roots; the following\n // code works for any kind of node\n var result = inert || lookUp && node && (\n // closest does not exist on shadow roots, so we fall back to a manual\n // lookup upward, in case it is not defined.\n typeof node.closest === 'function' ? node.closest('[inert]') : _isInert(node.parentNode));\n return result;\n};\n\n/**\n * Determines if a node's content is editable.\n * @param {Element} [node]\n * @returns True if it's content-editable; false if it's not or `node` is falsy.\n */\nvar isContentEditable = function isContentEditable(node) {\n var _node$getAttribute2;\n // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have\n // to use the attribute directly to check for this, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's a non-editable element\n var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, 'contenteditable');\n return attValue === '' || attValue === 'true';\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n // even if `includeContainer=false`, we still have to check it for inertness because\n // if it's inert (either by itself or via its parent), then all its children are inert\n if (_isInert(el)) {\n return [];\n }\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidateScope>}\n */\nvar _getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (_isInert(element, false)) {\n // no need to look up since we're drilling down\n // anything inside this container will also be inert\n continue;\n }\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = _getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n\n // iterate over shadow content if possible\n var shadowRoot = element.shadowRoot ||\n // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n\n // no inert look up because we're already drilling down and checking for inertness\n // on the way down, so all containers to this root node should have already been\n // vetted as non-inert\n var validShadowRoot = !_isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = _getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n};\n\n/**\n * @private\n * Determines if the node has an explicitly specified `tabindex` attribute.\n * @param {HTMLElement} node\n * @returns {boolean} True if so; false if not.\n */\nvar hasTabIndex = function hasTabIndex(node) {\n return !isNaN(parseInt(node.getAttribute('tabindex'), 10));\n};\n\n/**\n * Determine the tab index of a given node.\n * @param {HTMLElement} node\n * @returns {number} Tab order (negative, 0, or positive number).\n * @throws {Error} If `node` is falsy.\n */\nvar getTabIndex = function getTabIndex(node) {\n if (!node) {\n throw new Error('No node provided');\n }\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) {\n return 0;\n }\n }\n return node.tabIndex;\n};\n\n/**\n * Determine the tab index of a given node __for sort order purposes__.\n * @param {HTMLElement} node\n * @param {boolean} [isScope] True for a custom element with shadow root or slot that, by default,\n * has tabIndex -1, but needs to be sorted by document order in order for its content to be\n * inserted into the correct sort position.\n * @returns {number} Tab order (negative, 0, or positive number).\n */\nvar getSortOrderTabIndex = function getSortOrderTabIndex(node, isScope) {\n var tabIndex = getTabIndex(node);\n if (tabIndex < 0 && isScope && !hasTabIndex(node)) {\n return 0;\n }\n return tabIndex;\n};\nvar sortOrderedTabbables = function sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\nvar isInput = function isInput(node) {\n return node.tagName === 'INPUT';\n};\nvar isHiddenInput = function isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n};\nvar isDetailsWithSummary = function isDetailsWithSummary(node) {\n var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {\n return child.tagName === 'SUMMARY';\n });\n return r;\n};\nvar getCheckedRadio = function getCheckedRadio(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\nvar isTabbableRadio = function isTabbableRadio(node) {\n if (!node.name) {\n return true;\n }\n var radioScope = node.form || getRootNode(node);\n var queryRadios = function queryRadios(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n var radioSet;\n if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);\n return false;\n }\n }\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\nvar isRadio = function isRadio(node) {\n return isInput(node) && node.type === 'radio';\n};\nvar isNonTabbableRadio = function isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\n// determines if a node is ultimately attached to the window's document\nvar isNodeAttached = function isNodeAttached(node) {\n var _nodeRoot;\n // The root node is the shadow root if the node is in a shadow DOM; some document otherwise\n // (but NOT _the_ document; see second 'If' comment below for more).\n // If rootNode is shadow root, it'll have a host, which is the element to which the shadow\n // is attached, and the one we need to check if it's in the document or not (because the\n // shadow, and all nodes it contains, is never considered in the document since shadows\n // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,\n // is hidden, or is not in the document itself but is detached, it will affect the shadow's\n // visibility, including all the nodes it contains). The host could be any normal node,\n // or a custom element (i.e. web component). Either way, that's the one that is considered\n // part of the document, not the shadow root, nor any of its children (i.e. the node being\n // tested).\n // To further complicate things, we have to look all the way up until we find a shadow HOST\n // that is attached (or find none) because the node might be in nested shadows...\n // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the\n // document (per the docs) and while it's a Document-type object, that document does not\n // appear to be the same as the node's `ownerDocument` for some reason, so it's safer\n // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,\n // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when\n // node is actually detached.\n // NOTE: If `nodeRootHost` or `node` happens to be the `document` itself (which is possible\n // if a tabbable/focusable node was quickly added to the DOM, focused, and then removed\n // from the DOM as in https://github.com/focus-trap/focus-trap-react/issues/905), then\n // `ownerDocument` will be `null`, hence the optional chaining on it.\n var nodeRoot = node && getRootNode(node);\n var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host;\n\n // in some cases, a detached node will return itself as the root instead of a document or\n // shadow root object, in which case, we shouldn't try to look further up the host chain\n var attached = false;\n if (nodeRoot && nodeRoot !== node) {\n var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument;\n attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node));\n while (!attached && nodeRootHost) {\n var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD;\n // since it's not attached and we have a root host, the node MUST be in a nested shadow DOM,\n // which means we need to get the host's host and check if that parent host is contained\n // in (i.e. attached to) the document\n nodeRoot = getRootNode(nodeRootHost);\n nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host;\n attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost));\n }\n }\n return attached;\n};\nvar isZeroArea = function isZeroArea(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n width = _node$getBoundingClie.width,\n height = _node$getBoundingClie.height;\n return width === 0 && height === 0;\n};\nvar isHidden = function isHidden(node, _ref) {\n var displayCheck = _ref.displayCheck,\n getShadowRoot = _ref.getShadowRoot;\n if (displayCheck === 'full-native') {\n if ('checkVisibility' in node) {\n // Chrome >= 105, Edge >= 105, Firefox >= 106, Safari >= 17.4\n // @see https://developer.mozilla.org/en-US/docs/Web/API/Element/checkVisibility#browser_compatibility\n var visible = node.checkVisibility({\n // Checking opacity might be desirable for some use cases, but natively,\n // opacity zero elements _are_ focusable and tabbable.\n checkOpacity: false,\n opacityProperty: false,\n contentVisibilityAuto: true,\n visibilityProperty: true,\n // This is an alias for `visibilityProperty`. Contemporary browsers\n // support both. However, this alias has wider browser support (Chrome\n // >= 105 and Firefox >= 106, vs. Chrome >= 121 and Firefox >= 122), so\n // we include it anyway.\n checkVisibilityCSS: true\n });\n return !visible;\n }\n // Fall through to manual visibility checks\n }\n\n // NOTE: visibility will be `undefined` if node is detached from the document\n // (see notes about this further down), which means we will consider it visible\n // (this is legacy behavior from a very long way back)\n // NOTE: we check this regardless of `displayCheck=\"none\"` because this is a\n // _visibility_ check, not a _display_ check\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n var isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n }\n if (!displayCheck || displayCheck === 'full' ||\n // full-native can run this branch when it falls through in case\n // Element#checkVisibility is unsupported\n displayCheck === 'full-native' || displayCheck === 'legacy-full') {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n var originalNode = node;\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n node = originalNode;\n }\n // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n\n // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)\n // now we can just test to see if it would normally be visible or not, provided it's\n // attached to the main document.\n // NOTE: We must consider case where node is inside a shadow DOM and given directly to\n // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.\n\n if (isNodeAttached(node)) {\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n return !node.getClientRects().length;\n }\n\n // Else, the node isn't attached to the document, which means the `getClientRects()`\n // API will __always__ return zero rects (this can happen, for example, if React\n // is used to render nodes onto a detached tree, as confirmed in this thread:\n // https://github.com/facebook/react/issues/9117#issuecomment-284228870)\n //\n // It also means that even window.getComputedStyle(node).display will return `undefined`\n // because styles are only computed for nodes that are in the document.\n //\n // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable\n // somehow. Though it was never stated officially, anyone who has ever used tabbable\n // APIs on nodes in detached containers has actually implicitly used tabbable in what\n // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck=\"none\"` mode -- essentially\n // considering __everything__ to be visible because of the innability to determine styles.\n //\n // v6.0.0: As of this major release, the default 'full' option __no longer treats detached\n // nodes as visible with the 'none' fallback.__\n if (displayCheck !== 'legacy-full') {\n return true; // hidden\n }\n // else, fallback to 'none' mode and consider the node visible\n } else if (displayCheck === 'non-zero-area') {\n // NOTE: Even though this tests that the node's client rect is non-zero to determine\n // whether it's displayed, and that a detached node will __always__ have a zero-area\n // client rect, we don't special-case for whether the node is attached or not. In\n // this mode, we do want to consider nodes that have a zero area to be hidden at all\n // times, and that includes attached or not.\n return isZeroArea(node);\n }\n\n // visible, as far as we can tell, or per current `displayCheck=none` mode, we assume\n // it's visible\n return false;\n};\n\n// form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\nvar isDisabledFromFieldset = function isDisabledFromFieldset(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement;\n // check if `node` is contained in a disabled <fieldset>\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i);\n // when the first <legend> (in document order) is found\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);\n }\n }\n // the disabled <fieldset> containing `node` has no <legend>\n return true;\n }\n parentNode = parentNode.parentElement;\n }\n }\n\n // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n return false;\n};\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled || isHiddenInput(node) || isHidden(node, options) ||\n // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n return true;\n};\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (isNonTabbableRadio(node) || getTabIndex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n return true;\n};\nvar isShadowRootTabbable = function isShadowRootTabbable(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n }\n // If a custom element has an explicit negative tabindex,\n // browsers will not allow tab targeting said element's children.\n return false;\n};\n\n/**\n * @param {Array.<Element|CandidateScope>} candidates\n * @returns Element[]\n */\nvar _sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function (item, i) {\n var isScope = !!item.scopeParent;\n var element = isScope ? item.scopeParent : item;\n var candidateTabindex = getSortOrderTabIndex(element, isScope);\n var elements = isScope ? _sortByOrder(item.candidates) : element;\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\nvar tabbable = function tabbable(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = _getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isShadowRootTabbable\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n return _sortByOrder(candidates);\n};\nvar focusable = function focusable(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = _getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n return candidates;\n};\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorTabbable(options, node);\n};\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe:not([inert]):not([inert] *)').join(',');\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { focusable, getTabIndex, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n","/*!\n* focus-trap 7.6.6\n* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE\n*/\nimport { tabbable, focusable, isTabbable, getTabIndex, isFocusable } from 'tabbable';\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: true,\n configurable: true,\n writable: true\n }) : e[r] = t, e;\n}\nfunction _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), true).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r);\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nvar activeFocusTraps = {\n activateTrap: function activateTrap(trapStack, trap) {\n if (trapStack.length > 0) {\n var activeTrap = trapStack[trapStack.length - 1];\n if (activeTrap !== trap) {\n activeTrap._setPausedState(true);\n }\n }\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex === -1) {\n trapStack.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapStack.splice(trapIndex, 1);\n trapStack.push(trap);\n }\n },\n deactivateTrap: function deactivateTrap(trapStack, trap) {\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex !== -1) {\n trapStack.splice(trapIndex, 1);\n }\n if (trapStack.length > 0 && !trapStack[trapStack.length - 1]._isManuallyPaused()) {\n trapStack[trapStack.length - 1]._setPausedState(false);\n }\n }\n};\nvar isSelectableInput = function isSelectableInput(node) {\n return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function';\n};\nvar isEscapeEvent = function isEscapeEvent(e) {\n return (e === null || e === void 0 ? void 0 : e.key) === 'Escape' || (e === null || e === void 0 ? void 0 : e.key) === 'Esc' || (e === null || e === void 0 ? void 0 : e.keyCode) === 27;\n};\nvar isTabEvent = function isTabEvent(e) {\n return (e === null || e === void 0 ? void 0 : e.key) === 'Tab' || (e === null || e === void 0 ? void 0 : e.keyCode) === 9;\n};\n\n// checks for TAB by default\nvar isKeyForward = function isKeyForward(e) {\n return isTabEvent(e) && !e.shiftKey;\n};\n\n// checks for SHIFT+TAB by default\nvar isKeyBackward = function isKeyBackward(e) {\n return isTabEvent(e) && e.shiftKey;\n};\nvar delay = function delay(fn) {\n return setTimeout(fn, 0);\n};\n\n/**\n * Get an option's value when it could be a plain value, or a handler that provides\n * the value.\n * @param {*} value Option's value to check.\n * @param {...*} [params] Any parameters to pass to the handler, if `value` is a function.\n * @returns {*} The `value`, or the handler's returned value.\n */\nvar valueOrHandler = function valueOrHandler(value) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n return typeof value === 'function' ? value.apply(void 0, params) : value;\n};\nvar getActualTarget = function getActualTarget(event) {\n // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the\n // shadow host. However, event.target.composedPath() will be an array of\n // nodes \"clicked\" from inner-most (the actual element inside the shadow) to\n // outer-most (the host HTML document). If we have access to composedPath(),\n // then use its first element; otherwise, fall back to event.target (and\n // this only works for an _open_ shadow DOM; otherwise,\n // composedPath()[0] === event.target always).\n return event.target.shadowRoot && typeof event.composedPath === 'function' ? event.composedPath()[0] : event.target;\n};\n\n// NOTE: this must be _outside_ `createFocusTrap()` to make sure all traps in this\n// current instance use the same stack if `userOptions.trapStack` isn't specified\nvar internalTrapStack = [];\nvar createFocusTrap = function createFocusTrap(elements, userOptions) {\n // SSR: a live trap shouldn't be created in this type of environment so this\n // should be safe code to execute if the `document` option isn't specified\n var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;\n var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack;\n var config = _objectSpread2({\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true,\n isKeyForward: isKeyForward,\n isKeyBackward: isKeyBackward\n }, userOptions);\n var state = {\n // containers given to createFocusTrap()\n // @type {Array<HTMLElement>}\n containers: [],\n // list of objects identifying tabbable nodes in `containers` in the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n // @type {Array<{\n // container: HTMLElement,\n // tabbableNodes: Array<HTMLElement>, // empty if none\n // focusableNodes: Array<HTMLElement>, // empty if none\n // posTabIndexesFound: boolean,\n // firstTabbableNode: HTMLElement|undefined,\n // lastTabbableNode: HTMLElement|undefined,\n // firstDomTabbableNode: HTMLElement|undefined,\n // lastDomTabbableNode: HTMLElement|undefined,\n // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n // }>}\n containerGroups: [],\n // same order/length as `containers` list\n\n // references to objects in `containerGroups`, but only those that actually have\n // tabbable nodes in them\n // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n // the same length\n tabbableGroups: [],\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n manuallyPaused: false,\n // timer ID for when delayInitialFocus is true and initial focus in this trap\n // has been delayed during activation\n delayInitialFocusTimer: undefined,\n // the most recent KeyboardEvent for the configured nav key (typically [SHIFT+]TAB), if any\n recentNavEvent: undefined\n };\n var trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later\n\n /**\n * Gets a configuration option value.\n * @param {Object|undefined} configOverrideOptions If true, and option is defined in this set,\n * value will be taken from this object. Otherwise, value will be taken from base configuration.\n * @param {string} optionName Name of the option whose value is sought.\n * @param {string|undefined} [configOptionName] Name of option to use __instead of__ `optionName`\n * IIF `configOverrideOptions` is not defined. Otherwise, `optionName` is used.\n */\n var getOption = function getOption(configOverrideOptions, optionName, configOptionName) {\n return configOverrideOptions && configOverrideOptions[optionName] !== undefined ? configOverrideOptions[optionName] : config[configOptionName || optionName];\n };\n\n /**\n * Finds the index of the container that contains the element.\n * @param {HTMLElement} element\n * @param {Event} [event] If available, and `element` isn't directly found in any container,\n * the event's composed path is used to see if includes any known trap containers in the\n * case where the element is inside a Shadow DOM.\n * @returns {number} Index of the container in either `state.containers` or\n * `state.containerGroups` (the order/length of these lists are the same); -1\n * if the element isn't found.\n */\n var findContainerIndex = function findContainerIndex(element, event) {\n var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === 'function' ? event.composedPath() : undefined;\n // NOTE: search `containerGroups` because it's possible a group contains no tabbable\n // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)\n // and we still need to find the element in there\n return state.containerGroups.findIndex(function (_ref) {\n var container = _ref.container,\n tabbableNodes = _ref.tabbableNodes;\n return container.contains(element) || (// fall back to explicit tabbable search which will take into consideration any\n // web components if the `tabbableOptions.getShadowRoot` option was used for\n // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n // look inside web components even if open)\n composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function (node) {\n return node === element;\n });\n });\n };\n\n /**\n * Gets the node for the given option, which is expected to be an option that\n * can be either a DOM node, a string that is a selector to get a node, `false`\n * (if a node is explicitly NOT given), or a function that returns any of these\n * values.\n * @param {string} optionName\n * @param {Object} options\n * @param {boolean} [options.hasFallback] True if the option could be a selector string\n * and the option allows for a fallback scenario in the case where the selector is\n * valid but does not match a node (i.e. the queried node doesn't exist in the DOM).\n * @param {Array} [options.params] Params to pass to the option if it's a function.\n * @returns {undefined | null | false | HTMLElement | SVGElement} Returns\n * `undefined` if the option is not specified; `null` if the option didn't resolve\n * to a node but `options.hasFallback=true`, `false` if the option resolved to `false`\n * (node explicitly not given); otherwise, the resolved DOM node.\n * @throws {Error} If the option is set, not `false`, and is not, or does not\n * resolve to a node, unless the option is a selector string and `options.hasFallback=true`.\n */\n var getNodeForOption = function getNodeForOption(optionName) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref2$hasFallback = _ref2.hasFallback,\n hasFallback = _ref2$hasFallback === void 0 ? false : _ref2$hasFallback,\n _ref2$params = _ref2.params,\n params = _ref2$params === void 0 ? [] : _ref2$params;\n var optionValue = config[optionName];\n if (typeof optionValue === 'function') {\n optionValue = optionValue.apply(void 0, _toConsumableArray(params));\n }\n if (optionValue === true) {\n optionValue = undefined; // use default value\n }\n if (!optionValue) {\n if (optionValue === undefined || optionValue === false) {\n return optionValue;\n }\n // else, empty string (invalid), null (invalid), 0 (invalid)\n\n throw new Error(\"`\".concat(optionName, \"` was specified but was not a node, or did not return a node\"));\n }\n var node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point\n\n if (typeof optionValue === 'string') {\n try {\n node = doc.querySelector(optionValue); // resolve to node, or null if fails\n } catch (err) {\n throw new Error(\"`\".concat(optionName, \"` appears to be an invalid selector; error=\\\"\").concat(err.message, \"\\\"\"));\n }\n if (!node) {\n if (!hasFallback) {\n throw new Error(\"`\".concat(optionName, \"` as selector refers to no known node\"));\n }\n // else, `node` MUST be `null` because that's what `Document.querySelector()` returns\n // if the selector is valid but doesn't match anything\n }\n }\n return node;\n };\n var getInitialFocusNode = function getInitialFocusNode() {\n var node = getNodeForOption('initialFocus', {\n hasFallback: true\n });\n\n // false explicitly indicates we want no initialFocus at all\n if (node === false) {\n return false;\n }\n if (node === undefined || node && !isFocusable(node, config.tabbableOptions)) {\n // option not specified nor focusable: use fallback options\n if (findContainerIndex(doc.activeElement) >= 0) {\n node = doc.activeElement;\n } else {\n var firstTabbableGroup = state.tabbableGroups[0];\n var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode;\n\n // NOTE: `fallbackFocus` option function cannot return `false` (not supported)\n node = firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n } else if (node === null) {\n // option is a VALID selector string that doesn't yield a node: use the `fallbackFocus`\n // option instead of the default behavior when the option isn't specified at all\n node = getNodeForOption('fallbackFocus');\n }\n if (!node) {\n throw new Error('Your focus-trap needs to have at least one focusable element');\n }\n return node;\n };\n var updateTabbableNodes = function updateTabbableNodes() {\n state.containerGroups = state.containers.map(function (container) {\n var tabbableNodes = tabbable(container, config.tabbableOptions);\n\n // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes\n // are a superset of tabbable nodes since nodes with negative `tabindex` attributes\n // are focusable but not tabbable\n var focusableNodes = focusable(container, config.tabbableOptions);\n var firstTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[0] : undefined;\n var lastTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : undefined;\n var firstDomTabbableNode = focusableNodes.find(function (node) {\n return isTabbable(node);\n });\n var lastDomTabbableNode = focusableNodes.slice().reverse().find(function (node) {\n return isTabbable(node);\n });\n var posTabIndexesFound = !!tabbableNodes.find(function (node) {\n return getTabIndex(node) > 0;\n });\n return {\n container: container,\n tabbableNodes: tabbableNodes,\n focusableNodes: focusableNodes,\n /** True if at least one node with positive `tabindex` was found in this container. */\n posTabIndexesFound: posTabIndexesFound,\n /** First tabbable node in container, __tabindex__ order; `undefined` if none. */\n firstTabbableNode: firstTabbableNode,\n /** Last tabbable node in container, __tabindex__ order; `undefined` if none. */\n lastTabbableNode: lastTabbableNode,\n // NOTE: DOM order is NOT NECESSARILY \"document position\" order, but figuring that out\n // would require more than just https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n // because that API doesn't work with Shadow DOM as well as it should (@see\n // https://github.com/whatwg/dom/issues/320) and since this first/last is only needed, so far,\n // to address an edge case related to positive tabindex support, this seems like a much easier,\n // \"close enough most of the time\" alternative for positive tabindexes which should generally\n // be avoided anyway...\n /** First tabbable node in container, __DOM__ order; `undefined` if none. */\n firstDomTabbableNode: firstDomTabbableNode,\n /** Last tabbable node in container, __DOM__ order; `undefined` if none. */\n lastDomTabbableNode: lastDomTabbableNode,\n /**\n * Finds the __tabbable__ node that follows the given node in the specified direction,\n * in this container, if any.\n * @param {HTMLElement} node\n * @param {boolean} [forward] True if going in forward tab order; false if going\n * in reverse.\n * @returns {HTMLElement|undefined} The next tabbable node, if any.\n */\n nextTabbableNode: function nextTabbableNode(node) {\n var forward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var nodeIdx = tabbableNodes.indexOf(node);\n if (nodeIdx < 0) {\n // either not tabbable nor focusable, or was focused but not tabbable (negative tabindex):\n // since `node` should at least have been focusable, we assume that's the case and mimic\n // what browsers do, which is set focus to the next node in __document position order__,\n // regardless of positive tabindexes, if any -- and for reasons explained in the NOTE\n // above related to `firstDomTabbable` and `lastDomTabbable` properties, we fall back to\n // basic DOM order\n if (forward) {\n return focusableNodes.slice(focusableNodes.indexOf(node) + 1).find(function (el) {\n return isTabbable(el);\n });\n }\n return focusableNodes.slice(0, focusableNodes.indexOf(node)).reverse().find(function (el) {\n return isTabbable(el);\n });\n }\n return tabbableNodes[nodeIdx + (forward ? 1 : -1)];\n }\n };\n });\n state.tabbableGroups = state.containerGroups.filter(function (group) {\n return group.tabbableNodes.length > 0;\n });\n\n // throw if no groups have tabbable nodes and we don't have a fallback focus node either\n if (state.tabbableGroups.length <= 0 && !getNodeForOption('fallbackFocus') // returning false not supported for this option\n ) {\n throw new Error('Your focus-trap must have at least one container with at least one tabbable node in it at all times');\n }\n\n // NOTE: Positive tabindexes are only properly supported in single-container traps because\n // doing it across multiple containers where tabindexes could be all over the place\n // would require Tabbable to support multiple containers, would require additional\n // specialized Shadow DOM support, and would require Tabbable's multi-container support\n // to look at those containers in document position order rather than user-provided\n // order (as they are treated in Focus-trap, for legacy reasons). See discussion on\n // https://github.com/focus-trap/focus-trap/issues/375 for more details.\n if (state.containerGroups.find(function (g) {\n return g.posTabIndexesFound;\n }) && state.containerGroups.length > 1) {\n throw new Error(\"At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.\");\n }\n };\n\n /**\n * Gets the current activeElement. If it's a web-component and has open shadow-root\n * it will recursively search inside shadow roots for the \"true\" activeElement.\n *\n * @param {Document | ShadowRoot} el\n *\n * @returns {HTMLElement} The element that currently has the focus\n **/\n var _getActiveElement = function getActiveElement(el) {\n var activeElement = el.activeElement;\n if (!activeElement) {\n return;\n }\n if (activeElement.shadowRoot && activeElement.shadowRoot.activeElement !== null) {\n return _getActiveElement(activeElement.shadowRoot);\n }\n return activeElement;\n };\n var _tryFocus = function tryFocus(node) {\n if (node === false) {\n return;\n }\n if (node === _getActiveElement(document)) {\n return;\n }\n if (!node || !node.focus) {\n _tryFocus(getInitialFocusNode());\n return;\n }\n node.focus({\n preventScroll: !!config.preventScroll\n });\n // NOTE: focus() API does not trigger focusIn event so set MRU node manually\n state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n var getReturnFocusNode = function getReturnFocusNode(previousActiveElement) {\n var node = getNodeForOption('setReturnFocus', {\n params: [previousActiveElement]\n });\n return node ? node : node === false ? false : previousActiveElement;\n };\n\n /**\n * Finds the next node (in either direction) where focus should move according to a\n * keyboard focus-in event.\n * @param {Object} params\n * @param {Node} [params.target] Known target __from which__ to navigate, if any.\n * @param {KeyboardEvent|FocusEvent} [params.event] Event to use if `target` isn't known (event\n * will be used to determine the `target`). Ignored if `target` is specified.\n * @param {boolean} [params.isBackward] True if focus should move backward.\n * @returns {Node|undefined} The next node, or `undefined` if a next node couldn't be\n * determined given the current state of the trap.\n */\n var findNextNavNode = function findNextNavNode(_ref3) {\n var target = _ref3.target,\n event = _ref3.event,\n _ref3$isBackward = _ref3.isBackward,\n isBackward = _ref3$isBackward === void 0 ? false : _ref3$isBackward;\n target = target || getActualTarget(event);\n updateTabbableNodes();\n var destinationNode = null;\n if (state.tabbableGroups.length > 0) {\n // make sure the target is actually contained in a group\n // NOTE: the target may also be the container itself if it's focusable\n // with tabIndex='-1' and was given initial focus\n var containerIndex = findContainerIndex(target, event);\n var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined;\n if (containerIndex < 0) {\n // target not found in any group: quite possible focus has escaped the trap,\n // so bring it back into...\n if (isBackward) {\n // ...the last node in the last group\n destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode;\n } else {\n // ...the first node in the first group\n destinationNode = state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (isBackward) {\n // REVERSE\n\n // is the target the first tabbable node in a group?\n var startOfGroupIndex = state.tabbableGroups.findIndex(function (_ref4) {\n var firstTabbableNode = _ref4.firstTabbableNode;\n return target === firstTabbableNode;\n });\n if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {\n // an exception case where the target is either the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle shift+tab as if focus were on the container's\n // first tabbable node, and go to the last tabbable node of the LAST group\n startOfGroupIndex = containerIndex;\n }\n if (startOfGroupIndex >= 0) {\n // YES: then shift+tab should go to the last tabbable node in the\n // previous group (and wrap around to the last tabbable node of\n // the LAST group if it's the first tabbable node of the FIRST group)\n var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n var destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? destinationGroup.lastTabbableNode : destinationGroup.lastDomTabbableNode;\n } else if (!isTabEvent(event)) {\n // user must have customized the nav keys so we have to move focus manually _within_\n // the active group: do this based on the order determined by tabbable()\n destinationNode = containerGroup.nextTabbableNode(target, false);\n }\n } else {\n // FORWARD\n\n // is the target the last tabbable node in a group?\n var lastOfGroupIndex = state.tabbableGroups.findIndex(function (_ref5) {\n var lastTabbableNode = _ref5.lastTabbableNode;\n return target === lastTabbableNode;\n });\n if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {\n // an exception case where the target is the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle tab as if focus were on the container's\n // last tabbable node, and go to the first tabbable node of the FIRST group\n lastOfGroupIndex = containerIndex;\n }\n if (lastOfGroupIndex >= 0) {\n // YES: then tab should go to the first tabbable node in the next\n // group (and wrap around to the first tabbable node of the FIRST\n // group if it's the last tabbable node of the LAST group)\n var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? _destinationGroup.firstTabbableNode : _destinationGroup.firstDomTabbableNode;\n } else if (!isTabEvent(event)) {\n // user must have customized the nav keys so we have to move focus manually _within_\n // the active group: do this based on the order determined by tabbable()\n destinationNode = containerGroup.nextTabbableNode(target);\n }\n }\n } else {\n // no groups available\n // NOTE: the fallbackFocus option does not support returning false to opt-out\n destinationNode = getNodeForOption('fallbackFocus');\n }\n return destinationNode;\n };\n\n // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n var checkPointerDown = function checkPointerDown(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n // allow the click since it ocurred inside the trap\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n // immediately deactivate the trap\n trap.deactivate({\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked (and if not focusable, to \"nothing\"); by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node), whether the\n // outside click was on a focusable node or not\n returnFocus: config.returnFocusOnDeactivate\n });\n return;\n }\n\n // This is needed for mobile devices.\n // (If we'll only let `click` events through,\n // then on mobile they will be blocked anyways if `touchstart` is blocked.)\n if (valueOrHandler(config.allowOutsideClick, e)) {\n // allow the click outside the trap to take place\n return;\n }\n\n // otherwise, prevent the click\n e.preventDefault();\n };\n\n // In case focus escapes the trap for some strange reason, pull it back in.\n // NOTE: the focusIn event is NOT cancelable, so if focus escapes, it may cause unexpected\n // scrolling if the node that got focused was out of view; there's nothing we can do to\n // prevent that from happening by the time we discover that focus escaped\n var checkFocusIn = function checkFocusIn(event) {\n var target = getActualTarget(event);\n var targetContained = findContainerIndex(target, event) >= 0;\n\n // In Firefox when you Tab out of an iframe the Document is briefly focused.\n if (targetContained || target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = target;\n }\n } else {\n // escaped! pull it back in to where it just left\n event.stopImmediatePropagation();\n\n // focus will escape if the MRU node had a positive tab index and user tried to nav forward;\n // it will also escape if the MRU node had a 0 tab index and user tried to nav backward\n // toward a node with a positive tab index\n var nextNode; // next node to focus, if we find one\n var navAcrossContainers = true;\n if (state.mostRecentlyFocusedNode) {\n if (getTabIndex(state.mostRecentlyFocusedNode) > 0) {\n // MRU container index must be >=0 otherwise we wouldn't have it as an MRU node...\n var mruContainerIdx = findContainerIndex(state.mostRecentlyFocusedNode);\n // there MAY not be any tabbable nodes in the container if there are at least 2 containers\n // and the MRU node is focusable but not tabbable (focus-trap requires at least 1 container\n // with at least one tabbable node in order to function, so this could be the other container\n // with nothing tabbable in it)\n var tabbableNodes = state.containerGroups[mruContainerIdx].tabbableNodes;\n if (tabbableNodes.length > 0) {\n // MRU tab index MAY not be found if the MRU node is focusable but not tabbable\n var mruTabIdx = tabbableNodes.findIndex(function (node) {\n return node === state.mostRecentlyFocusedNode;\n });\n if (mruTabIdx >= 0) {\n if (config.isKeyForward(state.recentNavEvent)) {\n if (mruTabIdx + 1 < tabbableNodes.length) {\n nextNode = tabbableNodes[mruTabIdx + 1];\n navAcrossContainers = false;\n }\n // else, don't wrap within the container as focus should move to next/previous\n // container\n } else {\n if (mruTabIdx - 1 >= 0) {\n nextNode = tabbableNodes[mruTabIdx - 1];\n navAcrossContainers = false;\n }\n // else, don't wrap within the container as focus should move to next/previous\n // container\n }\n // else, don't find in container order without considering direction too\n }\n }\n // else, no tabbable nodes in that container (which means we must have at least one other\n // container with at least one tabbable node in it, otherwise focus-trap would've thrown\n // an error the last time updateTabbableNodes() was run): find next node among all known\n // containers\n } else {\n // check to see if there's at least one tabbable node with a positive tab index inside\n // the trap because focus seems to escape when navigating backward from a tabbable node\n // with tabindex=0 when this is the case (instead of wrapping to the tabbable node with\n // the greatest positive tab index like it should)\n if (!state.containerGroups.some(function (g) {\n return g.tabbableNodes.some(function (n) {\n return getTabIndex(n) > 0;\n });\n })) {\n // no containers with tabbable nodes with positive tab indexes which means the focus\n // escaped for some other reason and we should just execute the fallback to the\n // MRU node or initial focus node, if any\n navAcrossContainers = false;\n }\n }\n } else {\n // no MRU node means we're likely in some initial condition when the trap has just\n // been activated and initial focus hasn't been given yet, in which case we should\n // fall through to trying to focus the initial focus node, which is what should\n // happen below at this point in the logic\n navAcrossContainers = false;\n }\n if (navAcrossContainers) {\n nextNode = findNextNavNode({\n // move FROM the MRU node, not event-related node (which will be the node that is\n // outside the trap causing the focus escape we're trying to fix)\n target: state.mostRecentlyFocusedNode,\n isBackward: config.isKeyBackward(state.recentNavEvent)\n });\n }\n if (nextNode) {\n _tryFocus(nextNode);\n } else {\n _tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n }\n state.recentNavEvent = undefined; // clear\n };\n\n // Hijack key nav events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n var checkKeyNav = function checkKeyNav(event) {\n var isBackward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n state.recentNavEvent = event;\n var destinationNode = findNextNavNode({\n event: event,\n isBackward: isBackward\n });\n if (destinationNode) {\n if (isTabEvent(event)) {\n // since tab natively moves focus, we wouldn't have a destination node unless we\n // were on the edge of a container and had to move to the next/previous edge, in\n // which case we want to prevent default to keep the browser from moving focus\n // to where it normally would\n event.preventDefault();\n }\n _tryFocus(destinationNode);\n }\n // else, let the browser take care of [shift+]tab and move the focus\n };\n var checkTabKey = function checkTabKey(event) {\n if (config.isKeyForward(event) || config.isKeyBackward(event)) {\n checkKeyNav(event, config.isKeyBackward(event));\n }\n };\n\n // we use a different event phase for the Escape key to allow canceling the event and checking for this in escapeDeactivates\n var checkEscapeKey = function checkEscapeKey(event) {\n if (isEscapeEvent(event) && valueOrHandler(config.escapeDeactivates, event) !== false) {\n event.preventDefault();\n trap.deactivate();\n }\n };\n var checkClick = function checkClick(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n\n //\n // EVENT LISTENERS\n //\n\n var addListeners = function addListeners() {\n if (!state.active) {\n return;\n }\n\n // There can be only one listening focus trap at a time\n activeFocusTraps.activateTrap(trapStack, trap);\n\n // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function () {\n _tryFocus(getInitialFocusNode());\n }) : _tryFocus(getInitialFocusNode());\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkTabKey, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkEscapeKey);\n return trap;\n };\n var removeListeners = function removeListeners() {\n if (!state.active) {\n return;\n }\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkTabKey, true);\n doc.removeEventListener('keydown', checkEscapeKey);\n return trap;\n };\n\n //\n // MUTATION OBSERVER\n //\n\n var checkDomRemoval = function checkDomRemoval(mutations) {\n var isFocusedNodeRemoved = mutations.some(function (mutation) {\n var removedNodes = Array.from(mutation.removedNodes);\n return removedNodes.some(function (node) {\n return node === state.mostRecentlyFocusedNode;\n });\n });\n\n // If the currently focused is removed then browsers will move focus to the\n // <body> element. If this happens, try to move focus back into the trap.\n if (isFocusedNodeRemoved) {\n _tryFocus(getInitialFocusNode());\n }\n };\n\n // Use MutationObserver - if supported - to detect if focused node is removed\n // from the DOM.\n var mutationObserver = typeof window !== 'undefined' && 'MutationObserver' in window ? new MutationObserver(checkDomRemoval) : undefined;\n var updateObservedNodes = function updateObservedNodes() {\n if (!mutationObserver) {\n return;\n }\n mutationObserver.disconnect();\n if (state.active && !state.paused) {\n state.containers.map(function (container) {\n mutationObserver.observe(container, {\n subtree: true,\n childList: true\n });\n });\n }\n };\n\n //\n // TRAP DEFINITION\n //\n\n trap = {\n get active() {\n return state.active;\n },\n get paused() {\n return state.paused;\n },\n activate: function activate(activateOptions) {\n if (state.active) {\n return this;\n }\n var onActivate = getOption(activateOptions, 'onActivate');\n var onPostActivate = getOption(activateOptions, 'onPostActivate');\n var checkCanFocusTrap = getOption(activateOptions, 'checkCanFocusTrap');\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = _getActiveElement(doc);\n onActivate === null || onActivate === void 0 || onActivate();\n var finishActivation = function finishActivation() {\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n addListeners();\n updateObservedNodes();\n onPostActivate === null || onPostActivate === void 0 || onPostActivate();\n };\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n finishActivation();\n return this;\n },\n deactivate: function deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n var options = _objectSpread2({\n onDeactivate: config.onDeactivate,\n onPostDeactivate: config.onPostDeactivate,\n checkCanReturnFocus: config.checkCanReturnFocus\n }, deactivateOptions);\n clearTimeout(state.delayInitialFocusTimer); // noop if undefined\n state.delayInitialFocusTimer = undefined;\n removeListeners();\n state.active = false;\n state.paused = false;\n updateObservedNodes();\n activeFocusTraps.deactivateTrap(trapStack, trap);\n var onDeactivate = getOption(options, 'onDeactivate');\n var onPostDeactivate = getOption(options, 'onPostDeactivate');\n var checkCanReturnFocus = getOption(options, 'checkCanReturnFocus');\n var returnFocus = getOption(options, 'returnFocus', 'returnFocusOnDeactivate');\n onDeactivate === null || onDeactivate === void 0 || onDeactivate();\n var finishDeactivation = function finishDeactivation() {\n delay(function () {\n if (returnFocus) {\n _tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n onPostDeactivate === null || onPostDeactivate === void 0 || onPostDeactivate();\n });\n };\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation);\n return this;\n }\n finishDeactivation();\n return this;\n },\n pause: function pause(pauseOptions) {\n if (!state.active) {\n return this;\n }\n state.manuallyPaused = true;\n return this._setPausedState(true, pauseOptions);\n },\n unpause: function unpause(unpauseOptions) {\n if (!state.active) {\n return this;\n }\n state.manuallyPaused = false;\n if (trapStack[trapStack.length - 1] !== this) {\n return this;\n }\n return this._setPausedState(false, unpauseOptions);\n },\n updateContainerElements: function updateContainerElements(containerElements) {\n var elementsAsArray = [].concat(containerElements).filter(Boolean);\n state.containers = elementsAsArray.map(function (element) {\n return typeof element === 'string' ? doc.querySelector(element) : element;\n });\n if (state.active) {\n updateTabbableNodes();\n }\n updateObservedNodes();\n return this;\n }\n };\n Object.defineProperties(trap, {\n _isManuallyPaused: {\n value: function value() {\n return state.manuallyPaused;\n }\n },\n _setPausedState: {\n value: function value(paused, options) {\n if (state.paused === paused) {\n return this;\n }\n state.paused = paused;\n if (paused) {\n var onPause = getOption(options, 'onPause');\n var onPostPause = getOption(options, 'onPostPause');\n onPause === null || onPause === void 0 || onPause();\n removeListeners();\n updateObservedNodes();\n onPostPause === null || onPostPause === void 0 || onPostPause();\n } else {\n var onUnpause = getOption(options, 'onUnpause');\n var onPostUnpause = getOption(options, 'onPostUnpause');\n onUnpause === null || onUnpause === void 0 || onUnpause();\n updateTabbableNodes();\n addListeners();\n updateObservedNodes();\n onPostUnpause === null || onPostUnpause === void 0 || onPostUnpause();\n }\n return this;\n }\n }\n });\n\n // initialize container elements\n trap.updateContainerElements(elements);\n return trap;\n};\n\nexport { createFocusTrap };\n//# sourceMappingURL=focus-trap.esm.js.map\n","function getTrapStack() {\n window._nc_focus_trap ??= [];\n return window._nc_focus_trap;\n}\nfunction createTrapStackController() {\n let pausedStack = [];\n return {\n /**\n * Pause the current focus-trap stack\n */\n pause() {\n pausedStack = [...getTrapStack()];\n for (const trap of pausedStack) {\n trap.pause();\n }\n },\n /**\n * Unpause the paused focus trap stack\n * If the actual stack is different from the paused one, ignore unpause.\n */\n unpause() {\n if (pausedStack.length === getTrapStack().length) {\n for (const trap of pausedStack) {\n trap.unpause();\n }\n }\n pausedStack = [];\n }\n };\n}\nexport {\n createTrapStackController as c,\n getTrapStack as g\n};\n//# sourceMappingURL=focusTrap-HJQ4pqHV.mjs.map\n","import { watch, toValue, onUnmounted } from \"vue\";\nimport { c as createTrapStackController } from \"./focusTrap-HJQ4pqHV.mjs\";\nfunction useTrapStackControl(shouldPause, options = {}) {\n const trapStackController = createTrapStackController();\n watch(shouldPause, () => {\n if (toValue(options.disabled)) {\n return;\n }\n if (toValue(shouldPause)) {\n trapStackController.pause();\n } else {\n trapStackController.unpause();\n }\n });\n onUnmounted(() => {\n trapStackController.unpause();\n });\n}\nexport {\n useTrapStackControl as u\n};\n//# sourceMappingURL=useTrapStackControl-B6cEicto.mjs.map\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nconst yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);\nfunction getSideAxis(placement) {\n return yAxisSides.has(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = originSides.has(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = originSides.has(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","import{rectToClientRect as t,computePosition as e}from\"@floating-ui/core\";export{arrow,autoPlacement,detectOverflow,flip,hide,inline,limitShift,offset,shift,size}from\"@floating-ui/core\";function n(t){var e;return(null==(e=t.ownerDocument)?void 0:e.defaultView)||window}function o(t){return n(t).getComputedStyle(t)}const i=Math.min,r=Math.max,l=Math.round;function c(t){const e=o(t);let n=parseFloat(e.width),i=parseFloat(e.height);const r=t.offsetWidth,c=t.offsetHeight,s=l(n)!==r||l(i)!==c;return s&&(n=r,i=c),{width:n,height:i,fallback:s}}function s(t){return h(t)?(t.nodeName||\"\").toLowerCase():\"\"}let f;function u(){if(f)return f;const t=navigator.userAgentData;return t&&Array.isArray(t.brands)?(f=t.brands.map((t=>t.brand+\"/\"+t.version)).join(\" \"),f):navigator.userAgent}function a(t){return t instanceof n(t).HTMLElement}function d(t){return t instanceof n(t).Element}function h(t){return t instanceof n(t).Node}function p(t){if(\"undefined\"==typeof ShadowRoot)return!1;return t instanceof n(t).ShadowRoot||t instanceof ShadowRoot}function g(t){const{overflow:e,overflowX:n,overflowY:i,display:r}=o(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&![\"inline\",\"contents\"].includes(r)}function m(t){return[\"table\",\"td\",\"th\"].includes(s(t))}function y(t){const e=/firefox/i.test(u()),n=o(t),i=n.backdropFilter||n.WebkitBackdropFilter;return\"none\"!==n.transform||\"none\"!==n.perspective||!!i&&\"none\"!==i||e&&\"filter\"===n.willChange||e&&!!n.filter&&\"none\"!==n.filter||[\"transform\",\"perspective\"].some((t=>n.willChange.includes(t)))||[\"paint\",\"layout\",\"strict\",\"content\"].some((t=>{const e=n.contain;return null!=e&&e.includes(t)}))}function x(){return!/^((?!chrome|android).)*safari/i.test(u())}function w(t){return[\"html\",\"body\",\"#document\"].includes(s(t))}function v(t){return d(t)?t:t.contextElement}const b={x:1,y:1};function L(t){const e=v(t);if(!a(e))return b;const n=e.getBoundingClientRect(),{width:o,height:i,fallback:r}=c(e);let s=(r?l(n.width):n.width)/o,f=(r?l(n.height):n.height)/i;return s&&Number.isFinite(s)||(s=1),f&&Number.isFinite(f)||(f=1),{x:s,y:f}}function E(t,e,o,i){var r,l;void 0===e&&(e=!1),void 0===o&&(o=!1);const c=t.getBoundingClientRect(),s=v(t);let f=b;e&&(i?d(i)&&(f=L(i)):f=L(t));const u=s?n(s):window,a=!x()&&o;let h=(c.left+(a&&(null==(r=u.visualViewport)?void 0:r.offsetLeft)||0))/f.x,p=(c.top+(a&&(null==(l=u.visualViewport)?void 0:l.offsetTop)||0))/f.y,g=c.width/f.x,m=c.height/f.y;if(s){const t=n(s),e=i&&d(i)?n(i):i;let o=t.frameElement;for(;o&&i&&e!==t;){const t=L(o),e=o.getBoundingClientRect(),i=getComputedStyle(o);e.x+=(o.clientLeft+parseFloat(i.paddingLeft))*t.x,e.y+=(o.clientTop+parseFloat(i.paddingTop))*t.y,h*=t.x,p*=t.y,g*=t.x,m*=t.y,h+=e.x,p+=e.y,o=n(o).frameElement}}return{width:g,height:m,top:p,right:h+g,bottom:p+m,left:h,x:h,y:p}}function R(t){return((h(t)?t.ownerDocument:t.document)||window.document).documentElement}function T(t){return d(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function C(t){return E(R(t)).left+T(t).scrollLeft}function F(t){if(\"html\"===s(t))return t;const e=t.assignedSlot||t.parentNode||p(t)&&t.host||R(t);return p(e)?e.host:e}function W(t){const e=F(t);return w(e)?e.ownerDocument.body:a(e)&&g(e)?e:W(e)}function D(t,e){var o;void 0===e&&(e=[]);const i=W(t),r=i===(null==(o=t.ownerDocument)?void 0:o.body),l=n(i);return r?e.concat(l,l.visualViewport||[],g(i)?i:[]):e.concat(i,D(i))}function S(e,i,l){return\"viewport\"===i?t(function(t,e){const o=n(t),i=R(t),r=o.visualViewport;let l=i.clientWidth,c=i.clientHeight,s=0,f=0;if(r){l=r.width,c=r.height;const t=x();(t||!t&&\"fixed\"===e)&&(s=r.offsetLeft,f=r.offsetTop)}return{width:l,height:c,x:s,y:f}}(e,l)):d(i)?t(function(t,e){const n=E(t,!0,\"fixed\"===e),o=n.top+t.clientTop,i=n.left+t.clientLeft,r=a(t)?L(t):{x:1,y:1};return{width:t.clientWidth*r.x,height:t.clientHeight*r.y,x:i*r.x,y:o*r.y}}(i,l)):t(function(t){const e=R(t),n=T(t),i=t.ownerDocument.body,l=r(e.scrollWidth,e.clientWidth,i.scrollWidth,i.clientWidth),c=r(e.scrollHeight,e.clientHeight,i.scrollHeight,i.clientHeight);let s=-n.scrollLeft+C(t);const f=-n.scrollTop;return\"rtl\"===o(i).direction&&(s+=r(e.clientWidth,i.clientWidth)-l),{width:l,height:c,x:s,y:f}}(R(e)))}function A(t){return a(t)&&\"fixed\"!==o(t).position?t.offsetParent:null}function H(t){const e=n(t);let i=A(t);for(;i&&m(i)&&\"static\"===o(i).position;)i=A(i);return i&&(\"html\"===s(i)||\"body\"===s(i)&&\"static\"===o(i).position&&!y(i))?e:i||function(t){let e=F(t);for(;a(e)&&!w(e);){if(y(e))return e;e=F(e)}return null}(t)||e}function O(t,e,n){const o=a(e),i=R(e),r=E(t,!0,\"fixed\"===n,e);let l={scrollLeft:0,scrollTop:0};const c={x:0,y:0};if(o||!o&&\"fixed\"!==n)if((\"body\"!==s(e)||g(i))&&(l=T(e)),a(e)){const t=E(e,!0);c.x=t.x+e.clientLeft,c.y=t.y+e.clientTop}else i&&(c.x=C(i));return{x:r.left+l.scrollLeft-c.x,y:r.top+l.scrollTop-c.y,width:r.width,height:r.height}}const P={getClippingRect:function(t){let{element:e,boundary:n,rootBoundary:l,strategy:c}=t;const f=\"clippingAncestors\"===n?function(t,e){const n=e.get(t);if(n)return n;let i=D(t).filter((t=>d(t)&&\"body\"!==s(t))),r=null;const l=\"fixed\"===o(t).position;let c=l?F(t):t;for(;d(c)&&!w(c);){const t=o(c),e=y(c);(l?e||r:e||\"static\"!==t.position||!r||![\"absolute\",\"fixed\"].includes(r.position))?r=t:i=i.filter((t=>t!==c)),c=F(c)}return e.set(t,i),i}(e,this._c):[].concat(n),u=[...f,l],a=u[0],h=u.reduce(((t,n)=>{const o=S(e,n,c);return t.top=r(o.top,t.top),t.right=i(o.right,t.right),t.bottom=i(o.bottom,t.bottom),t.left=r(o.left,t.left),t}),S(e,a,c));return{width:h.right-h.left,height:h.bottom-h.top,x:h.left,y:h.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:n,strategy:o}=t;const i=a(n),r=R(n);if(n===r)return e;let l={scrollLeft:0,scrollTop:0},c={x:1,y:1};const f={x:0,y:0};if((i||!i&&\"fixed\"!==o)&&((\"body\"!==s(n)||g(r))&&(l=T(n)),a(n))){const t=E(n);c=L(n),f.x=t.x+n.clientLeft,f.y=t.y+n.clientTop}return{width:e.width*c.x,height:e.height*c.y,x:e.x*c.x-l.scrollLeft*c.x+f.x,y:e.y*c.y-l.scrollTop*c.y+f.y}},isElement:d,getDimensions:function(t){return a(t)?c(t):t.getBoundingClientRect()},getOffsetParent:H,getDocumentElement:R,getScale:L,async getElementRects(t){let{reference:e,floating:n,strategy:o}=t;const i=this.getOffsetParent||H,r=this.getDimensions;return{reference:O(e,await i(n),o),floating:{x:0,y:0,...await r(n)}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>\"rtl\"===o(t).direction};function z(t,e,n,o){void 0===o&&(o={});const{ancestorScroll:i=!0,ancestorResize:r=!0,elementResize:l=!0,animationFrame:c=!1}=o,s=i&&!c,f=s||r?[...d(t)?D(t):t.contextElement?D(t.contextElement):[],...D(e)]:[];f.forEach((t=>{s&&t.addEventListener(\"scroll\",n,{passive:!0}),r&&t.addEventListener(\"resize\",n)}));let u,a=null;if(l){let o=!0;a=new ResizeObserver((()=>{o||n(),o=!1})),d(t)&&!c&&a.observe(t),d(t)||!t.contextElement||c||a.observe(t.contextElement),a.observe(e)}let h=c?E(t):null;return c&&function e(){const o=E(t);!h||o.x===h.x&&o.y===h.y&&o.width===h.width&&o.height===h.height||n();h=o,u=requestAnimationFrame(e)}(),n(),()=>{var t;f.forEach((t=>{s&&t.removeEventListener(\"scroll\",n),r&&t.removeEventListener(\"resize\",n)})),null==(t=a)||t.disconnect(),a=null,c&&cancelAnimationFrame(u)}}const B=(t,n,o)=>{const i=new Map,r={platform:P,...o},l={...r.platform,_c:i};return e(t,n,{...r,platform:l})};export{z as autoUpdate,B as computePosition,D as getOverflowAncestors,P as platform};\n","import { defineComponent as O, openBlock as f, createElementBlock as T, normalizeClass as J, renderSlot as A, normalizeProps as ke, guardReactiveProps as Le, pushScopeId as De, popScopeId as Ie, nextTick as Fe, createBlock as M, withScopeId as Re, resolveComponent as P, normalizeStyle as W, withKeys as je, createElementVNode as w, Fragment as Ve, createCommentVNode as se, mergeProps as $e, withCtx as N, createVNode as ve, toDisplayString as We, ref as U, createApp as Ge, h as qe } from \"vue\";\nimport { offset as xe, autoPlacement as Ue, shift as Ye, flip as Xe, arrow as Ke, size as Je, computePosition as Qe, getOverflowAncestors as ne } from \"@floating-ui/dom\";\nfunction ye(e, t) {\n for (const o in t)\n Object.prototype.hasOwnProperty.call(t, o) && (typeof t[o] == \"object\" && e[o] ? ye(e[o], t[o]) : e[o] = t[o]);\n}\nconst h = {\n // Disable popper components\n disabled: !1,\n // Default position offset along main axis (px)\n distance: 5,\n // Default position offset along cross axis (px)\n skidding: 0,\n // Default container where the tooltip will be appended\n container: \"body\",\n // Element used to compute position and size boundaries\n boundary: void 0,\n // Skip delay & CSS transitions when another popper is shown, so that the popper appear to instanly move to the new position.\n instantMove: !1,\n // Auto destroy tooltip DOM nodes (ms)\n disposeTimeout: 150,\n // Triggers on the popper itself\n popperTriggers: [],\n // Positioning strategy\n strategy: \"absolute\",\n // Prevent overflow\n preventOverflow: !0,\n // Flip to the opposite placement if needed\n flip: !0,\n // Shift on the cross axis to prevent the popper from overflowing\n shift: !0,\n // Overflow padding (px)\n overflowPadding: 0,\n // Arrow padding (px)\n arrowPadding: 0,\n // Compute arrow overflow (useful to hide it)\n arrowOverflow: !0,\n /**\n * By default, compute autohide on 'click'.\n */\n autoHideOnMousedown: !1,\n // Themes\n themes: {\n tooltip: {\n // Default tooltip placement relative to target element\n placement: \"top\",\n // Default events that trigger the tooltip\n triggers: [\"hover\", \"focus\", \"touch\"],\n // Close tooltip on click on tooltip target\n hideTriggers: (e) => [...e, \"click\"],\n // Delay (ms)\n delay: {\n show: 200,\n hide: 0\n },\n // Update popper on content resize\n handleResize: !1,\n // Enable HTML content in directive\n html: !1,\n // Displayed when tooltip content is loading\n loadingContent: \"...\"\n },\n dropdown: {\n // Default dropdown placement relative to target element\n placement: \"bottom\",\n // Default events that trigger the dropdown\n triggers: [\"click\"],\n // Delay (ms)\n delay: 0,\n // Update popper on content resize\n handleResize: !0,\n // Hide on clock outside\n autoHide: !0\n },\n menu: {\n $extend: \"dropdown\",\n triggers: [\"hover\", \"focus\"],\n popperTriggers: [\"hover\"],\n delay: {\n show: 0,\n hide: 400\n }\n }\n }\n};\nfunction S(e, t) {\n let o = h.themes[e] || {}, i;\n do\n i = o[t], typeof i > \"u\" ? o.$extend ? o = h.themes[o.$extend] || {} : (o = null, i = h[t]) : o = null;\n while (o);\n return i;\n}\nfunction Ze(e) {\n const t = [e];\n let o = h.themes[e] || {};\n do\n o.$extend && !o.$resetCss ? (t.push(o.$extend), o = h.themes[o.$extend] || {}) : o = null;\n while (o);\n return t.map((i) => `v-popper--theme-${i}`);\n}\nfunction re(e) {\n const t = [e];\n let o = h.themes[e] || {};\n do\n o.$extend ? (t.push(o.$extend), o = h.themes[o.$extend] || {}) : o = null;\n while (o);\n return t;\n}\nlet $ = !1;\nif (typeof window < \"u\") {\n $ = !1;\n try {\n const e = Object.defineProperty({}, \"passive\", {\n get() {\n $ = !0;\n }\n });\n window.addEventListener(\"test\", null, e);\n } catch {\n }\n}\nlet _e = !1;\ntypeof window < \"u\" && typeof navigator < \"u\" && (_e = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream);\nconst Te = [\"auto\", \"top\", \"bottom\", \"left\", \"right\"].reduce((e, t) => e.concat([\n t,\n `${t}-start`,\n `${t}-end`\n]), []), pe = {\n hover: \"mouseenter\",\n focus: \"focus\",\n click: \"click\",\n touch: \"touchstart\",\n pointer: \"pointerdown\"\n}, ae = {\n hover: \"mouseleave\",\n focus: \"blur\",\n click: \"click\",\n touch: \"touchend\",\n pointer: \"pointerup\"\n};\nfunction de(e, t) {\n const o = e.indexOf(t);\n o !== -1 && e.splice(o, 1);\n}\nfunction G() {\n return new Promise((e) => requestAnimationFrame(() => {\n requestAnimationFrame(e);\n }));\n}\nconst d = [];\nlet g = null;\nconst le = {};\nfunction he(e) {\n let t = le[e];\n return t || (t = le[e] = []), t;\n}\nlet Y = function() {\n};\ntypeof window < \"u\" && (Y = window.Element);\nfunction n(e) {\n return function(t) {\n return S(t.theme, e);\n };\n}\nconst q = \"__floating-vue__popper\", Q = () => O({\n name: \"VPopper\",\n provide() {\n return {\n [q]: {\n parentPopper: this\n }\n };\n },\n inject: {\n [q]: { default: null }\n },\n props: {\n theme: {\n type: String,\n required: !0\n },\n targetNodes: {\n type: Function,\n required: !0\n },\n referenceNode: {\n type: Function,\n default: null\n },\n popperNode: {\n type: Function,\n required: !0\n },\n shown: {\n type: Boolean,\n default: !1\n },\n showGroup: {\n type: String,\n default: null\n },\n // eslint-disable-next-line vue/require-prop-types\n ariaId: {\n default: null\n },\n disabled: {\n type: Boolean,\n default: n(\"disabled\")\n },\n positioningDisabled: {\n type: Boolean,\n default: n(\"positioningDisabled\")\n },\n placement: {\n type: String,\n default: n(\"placement\"),\n validator: (e) => Te.includes(e)\n },\n delay: {\n type: [String, Number, Object],\n default: n(\"delay\")\n },\n distance: {\n type: [Number, String],\n default: n(\"distance\")\n },\n skidding: {\n type: [Number, String],\n default: n(\"skidding\")\n },\n triggers: {\n type: Array,\n default: n(\"triggers\")\n },\n showTriggers: {\n type: [Array, Function],\n default: n(\"showTriggers\")\n },\n hideTriggers: {\n type: [Array, Function],\n default: n(\"hideTriggers\")\n },\n popperTriggers: {\n type: Array,\n default: n(\"popperTriggers\")\n },\n popperShowTriggers: {\n type: [Array, Function],\n default: n(\"popperShowTriggers\")\n },\n popperHideTriggers: {\n type: [Array, Function],\n default: n(\"popperHideTriggers\")\n },\n container: {\n type: [String, Object, Y, Boolean],\n default: n(\"container\")\n },\n boundary: {\n type: [String, Y],\n default: n(\"boundary\")\n },\n strategy: {\n type: String,\n validator: (e) => [\"absolute\", \"fixed\"].includes(e),\n default: n(\"strategy\")\n },\n autoHide: {\n type: [Boolean, Function],\n default: n(\"autoHide\")\n },\n handleResize: {\n type: Boolean,\n default: n(\"handleResize\")\n },\n instantMove: {\n type: Boolean,\n default: n(\"instantMove\")\n },\n eagerMount: {\n type: Boolean,\n default: n(\"eagerMount\")\n },\n popperClass: {\n type: [String, Array, Object],\n default: n(\"popperClass\")\n },\n computeTransformOrigin: {\n type: Boolean,\n default: n(\"computeTransformOrigin\")\n },\n /**\n * @deprecated\n */\n autoMinSize: {\n type: Boolean,\n default: n(\"autoMinSize\")\n },\n autoSize: {\n type: [Boolean, String],\n default: n(\"autoSize\")\n },\n /**\n * @deprecated\n */\n autoMaxSize: {\n type: Boolean,\n default: n(\"autoMaxSize\")\n },\n autoBoundaryMaxSize: {\n type: Boolean,\n default: n(\"autoBoundaryMaxSize\")\n },\n preventOverflow: {\n type: Boolean,\n default: n(\"preventOverflow\")\n },\n overflowPadding: {\n type: [Number, String],\n default: n(\"overflowPadding\")\n },\n arrowPadding: {\n type: [Number, String],\n default: n(\"arrowPadding\")\n },\n arrowOverflow: {\n type: Boolean,\n default: n(\"arrowOverflow\")\n },\n flip: {\n type: Boolean,\n default: n(\"flip\")\n },\n shift: {\n type: Boolean,\n default: n(\"shift\")\n },\n shiftCrossAxis: {\n type: Boolean,\n default: n(\"shiftCrossAxis\")\n },\n noAutoFocus: {\n type: Boolean,\n default: n(\"noAutoFocus\")\n },\n disposeTimeout: {\n type: Number,\n default: n(\"disposeTimeout\")\n }\n },\n emits: {\n show: () => !0,\n hide: () => !0,\n \"update:shown\": (e) => !0,\n \"apply-show\": () => !0,\n \"apply-hide\": () => !0,\n \"close-group\": () => !0,\n \"close-directive\": () => !0,\n \"auto-hide\": () => !0,\n resize: () => !0\n },\n data() {\n return {\n isShown: !1,\n isMounted: !1,\n skipTransition: !1,\n classes: {\n showFrom: !1,\n showTo: !1,\n hideFrom: !1,\n hideTo: !0\n },\n result: {\n x: 0,\n y: 0,\n placement: \"\",\n strategy: this.strategy,\n arrow: {\n x: 0,\n y: 0,\n centerOffset: 0\n },\n transformOrigin: null\n },\n randomId: `popper_${[Math.random(), Date.now()].map((e) => e.toString(36).substring(2, 10)).join(\"_\")}`,\n shownChildren: /* @__PURE__ */ new Set(),\n lastAutoHide: !0,\n pendingHide: !1,\n containsGlobalTarget: !1,\n isDisposed: !0,\n mouseDownContains: !1\n };\n },\n computed: {\n popperId() {\n return this.ariaId != null ? this.ariaId : this.randomId;\n },\n shouldMountContent() {\n return this.eagerMount || this.isMounted;\n },\n slotData() {\n return {\n popperId: this.popperId,\n isShown: this.isShown,\n shouldMountContent: this.shouldMountContent,\n skipTransition: this.skipTransition,\n autoHide: typeof this.autoHide == \"function\" ? this.lastAutoHide : this.autoHide,\n show: this.show,\n hide: this.hide,\n handleResize: this.handleResize,\n onResize: this.onResize,\n classes: {\n ...this.classes,\n popperClass: this.popperClass\n },\n result: this.positioningDisabled ? null : this.result,\n attrs: this.$attrs\n };\n },\n parentPopper() {\n var e;\n return (e = this[q]) == null ? void 0 : e.parentPopper;\n },\n hasPopperShowTriggerHover() {\n var e, t;\n return ((e = this.popperTriggers) == null ? void 0 : e.includes(\"hover\")) || ((t = this.popperShowTriggers) == null ? void 0 : t.includes(\"hover\"));\n }\n },\n watch: {\n shown: \"$_autoShowHide\",\n disabled(e) {\n e ? this.dispose() : this.init();\n },\n async container() {\n this.isShown && (this.$_ensureTeleport(), await this.$_computePosition());\n },\n triggers: {\n handler: \"$_refreshListeners\",\n deep: !0\n },\n positioningDisabled: \"$_refreshListeners\",\n ...[\n \"placement\",\n \"distance\",\n \"skidding\",\n \"boundary\",\n \"strategy\",\n \"overflowPadding\",\n \"arrowPadding\",\n \"preventOverflow\",\n \"shift\",\n \"shiftCrossAxis\",\n \"flip\"\n ].reduce((e, t) => (e[t] = \"$_computePosition\", e), {})\n },\n created() {\n this.autoMinSize && console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize=\"min\"` instead.'), this.autoMaxSize && console.warn(\"[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.\");\n },\n mounted() {\n this.init(), this.$_detachPopperNode();\n },\n activated() {\n this.$_autoShowHide();\n },\n deactivated() {\n this.hide();\n },\n beforeUnmount() {\n this.dispose();\n },\n methods: {\n show({ event: e = null, skipDelay: t = !1, force: o = !1 } = {}) {\n var i, s;\n (i = this.parentPopper) != null && i.lockedChild && this.parentPopper.lockedChild !== this || (this.pendingHide = !1, (o || !this.disabled) && (((s = this.parentPopper) == null ? void 0 : s.lockedChild) === this && (this.parentPopper.lockedChild = null), this.$_scheduleShow(e, t), this.$emit(\"show\"), this.$_showFrameLocked = !0, requestAnimationFrame(() => {\n this.$_showFrameLocked = !1;\n })), this.$emit(\"update:shown\", !0));\n },\n hide({ event: e = null, skipDelay: t = !1 } = {}) {\n var o;\n if (!this.$_hideInProgress) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0;\n return;\n }\n if (this.hasPopperShowTriggerHover && this.$_isAimingPopper()) {\n this.parentPopper && (this.parentPopper.lockedChild = this, clearTimeout(this.parentPopper.lockedChildTimer), this.parentPopper.lockedChildTimer = setTimeout(() => {\n this.parentPopper.lockedChild === this && (this.parentPopper.lockedChild.hide({ skipDelay: t }), this.parentPopper.lockedChild = null);\n }, 1e3));\n return;\n }\n ((o = this.parentPopper) == null ? void 0 : o.lockedChild) === this && (this.parentPopper.lockedChild = null), this.pendingHide = !1, this.$_scheduleHide(e, t), this.$emit(\"hide\"), this.$emit(\"update:shown\", !1);\n }\n },\n init() {\n var e;\n this.isDisposed && (this.isDisposed = !1, this.isMounted = !1, this.$_events = [], this.$_preventShow = !1, this.$_referenceNode = ((e = this.referenceNode) == null ? void 0 : e.call(this)) ?? this.$el, this.$_targetNodes = this.targetNodes().filter((t) => t.nodeType === t.ELEMENT_NODE), this.$_popperNode = this.popperNode(), this.$_innerNode = this.$_popperNode.querySelector(\".v-popper__inner\"), this.$_arrowNode = this.$_popperNode.querySelector(\".v-popper__arrow-container\"), this.$_swapTargetAttrs(\"title\", \"data-original-title\"), this.$_detachPopperNode(), this.triggers.length && this.$_addEventListeners(), this.shown && this.show());\n },\n dispose() {\n this.isDisposed || (this.isDisposed = !0, this.$_removeEventListeners(), this.hide({ skipDelay: !0 }), this.$_detachPopperNode(), this.isMounted = !1, this.isShown = !1, this.$_updateParentShownChildren(!1), this.$_swapTargetAttrs(\"data-original-title\", \"title\"));\n },\n async onResize() {\n this.isShown && (await this.$_computePosition(), this.$emit(\"resize\"));\n },\n async $_computePosition() {\n if (this.isDisposed || this.positioningDisabled)\n return;\n const e = {\n strategy: this.strategy,\n middleware: []\n };\n (this.distance || this.skidding) && e.middleware.push(xe({\n mainAxis: this.distance,\n crossAxis: this.skidding\n }));\n const t = this.placement.startsWith(\"auto\");\n if (t ? e.middleware.push(Ue({\n alignment: this.placement.split(\"-\")[1] ?? \"\"\n })) : e.placement = this.placement, this.preventOverflow && (this.shift && e.middleware.push(Ye({\n padding: this.overflowPadding,\n boundary: this.boundary,\n crossAxis: this.shiftCrossAxis\n })), !t && this.flip && e.middleware.push(Xe({\n padding: this.overflowPadding,\n boundary: this.boundary\n }))), e.middleware.push(Ke({\n element: this.$_arrowNode,\n padding: this.arrowPadding\n })), this.arrowOverflow && e.middleware.push({\n name: \"arrowOverflow\",\n fn: ({ placement: i, rects: s, middlewareData: r }) => {\n let p;\n const { centerOffset: a } = r.arrow;\n return i.startsWith(\"top\") || i.startsWith(\"bottom\") ? p = Math.abs(a) > s.reference.width / 2 : p = Math.abs(a) > s.reference.height / 2, {\n data: {\n overflow: p\n }\n };\n }\n }), this.autoMinSize || this.autoSize) {\n const i = this.autoSize ? this.autoSize : this.autoMinSize ? \"min\" : null;\n e.middleware.push({\n name: \"autoSize\",\n fn: ({ rects: s, placement: r, middlewareData: p }) => {\n var u;\n if ((u = p.autoSize) != null && u.skip)\n return {};\n let a, l;\n return r.startsWith(\"top\") || r.startsWith(\"bottom\") ? a = s.reference.width : l = s.reference.height, this.$_innerNode.style[i === \"min\" ? \"minWidth\" : i === \"max\" ? \"maxWidth\" : \"width\"] = a != null ? `${a}px` : null, this.$_innerNode.style[i === \"min\" ? \"minHeight\" : i === \"max\" ? \"maxHeight\" : \"height\"] = l != null ? `${l}px` : null, {\n data: {\n skip: !0\n },\n reset: {\n rects: !0\n }\n };\n }\n });\n }\n (this.autoMaxSize || this.autoBoundaryMaxSize) && (this.$_innerNode.style.maxWidth = null, this.$_innerNode.style.maxHeight = null, e.middleware.push(Je({\n boundary: this.boundary,\n padding: this.overflowPadding,\n apply: ({ availableWidth: i, availableHeight: s }) => {\n this.$_innerNode.style.maxWidth = i != null ? `${i}px` : null, this.$_innerNode.style.maxHeight = s != null ? `${s}px` : null;\n }\n })));\n const o = await Qe(this.$_referenceNode, this.$_popperNode, e);\n Object.assign(this.result, {\n x: o.x,\n y: o.y,\n placement: o.placement,\n strategy: o.strategy,\n arrow: {\n ...o.middlewareData.arrow,\n ...o.middlewareData.arrowOverflow\n }\n });\n },\n $_scheduleShow(e, t = !1) {\n if (this.$_updateParentShownChildren(!0), this.$_hideInProgress = !1, clearTimeout(this.$_scheduleTimer), g && this.instantMove && g.instantMove && g !== this.parentPopper) {\n g.$_applyHide(!0), this.$_applyShow(!0);\n return;\n }\n t ? this.$_applyShow() : this.$_scheduleTimer = setTimeout(this.$_applyShow.bind(this), this.$_computeDelay(\"show\"));\n },\n $_scheduleHide(e, t = !1) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0;\n return;\n }\n this.$_updateParentShownChildren(!1), this.$_hideInProgress = !0, clearTimeout(this.$_scheduleTimer), this.isShown && (g = this), t ? this.$_applyHide() : this.$_scheduleTimer = setTimeout(this.$_applyHide.bind(this), this.$_computeDelay(\"hide\"));\n },\n $_computeDelay(e) {\n const t = this.delay;\n return parseInt(t && t[e] || t || 0);\n },\n async $_applyShow(e = !1) {\n clearTimeout(this.$_disposeTimer), clearTimeout(this.$_scheduleTimer), this.skipTransition = e, !this.isShown && (this.$_ensureTeleport(), await G(), await this.$_computePosition(), await this.$_applyShowEffect(), this.positioningDisabled || this.$_registerEventListeners([\n ...ne(this.$_referenceNode),\n ...ne(this.$_popperNode)\n ], \"scroll\", () => {\n this.$_computePosition();\n }));\n },\n async $_applyShowEffect() {\n if (this.$_hideInProgress)\n return;\n if (this.computeTransformOrigin) {\n const t = this.$_referenceNode.getBoundingClientRect(), o = this.$_popperNode.querySelector(\".v-popper__wrapper\"), i = o.parentNode.getBoundingClientRect(), s = t.x + t.width / 2 - (i.left + o.offsetLeft), r = t.y + t.height / 2 - (i.top + o.offsetTop);\n this.result.transformOrigin = `${s}px ${r}px`;\n }\n this.isShown = !0, this.$_applyAttrsToTarget({\n \"aria-describedby\": this.popperId,\n \"data-popper-shown\": \"\"\n });\n const e = this.showGroup;\n if (e) {\n let t;\n for (let o = 0; o < d.length; o++)\n t = d[o], t.showGroup !== e && (t.hide(), t.$emit(\"close-group\"));\n }\n d.push(this), document.body.classList.add(\"v-popper--some-open\");\n for (const t of re(this.theme))\n he(t).push(this), document.body.classList.add(`v-popper--some-open--${t}`);\n this.$emit(\"apply-show\"), this.classes.showFrom = !0, this.classes.showTo = !1, this.classes.hideFrom = !1, this.classes.hideTo = !1, await G(), this.classes.showFrom = !1, this.classes.showTo = !0, this.noAutoFocus || this.$_popperNode.focus();\n },\n async $_applyHide(e = !1) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0, this.$_hideInProgress = !1;\n return;\n }\n if (clearTimeout(this.$_scheduleTimer), !this.isShown)\n return;\n this.skipTransition = e, de(d, this), d.length === 0 && document.body.classList.remove(\"v-popper--some-open\");\n for (const o of re(this.theme)) {\n const i = he(o);\n de(i, this), i.length === 0 && document.body.classList.remove(`v-popper--some-open--${o}`);\n }\n g === this && (g = null), this.isShown = !1, this.$_applyAttrsToTarget({\n \"aria-describedby\": void 0,\n \"data-popper-shown\": void 0\n }), clearTimeout(this.$_disposeTimer);\n const t = this.disposeTimeout;\n t !== null && (this.$_disposeTimer = setTimeout(() => {\n this.$_popperNode && (this.$_detachPopperNode(), this.isMounted = !1);\n }, t)), this.$_removeEventListeners(\"scroll\"), this.$emit(\"apply-hide\"), this.classes.showFrom = !1, this.classes.showTo = !1, this.classes.hideFrom = !0, this.classes.hideTo = !1, await G(), this.classes.hideFrom = !1, this.classes.hideTo = !0;\n },\n $_autoShowHide() {\n this.shown ? this.show() : this.hide();\n },\n $_ensureTeleport() {\n if (this.isDisposed)\n return;\n let e = this.container;\n if (typeof e == \"string\" ? e = window.document.querySelector(e) : e === !1 && (e = this.$_targetNodes[0].parentNode), !e)\n throw new Error(\"No container for popover: \" + this.container);\n e.appendChild(this.$_popperNode), this.isMounted = !0;\n },\n $_addEventListeners() {\n const e = (o) => {\n this.isShown && !this.$_hideInProgress || (o.usedByTooltip = !0, !this.$_preventShow && this.show({ event: o }));\n };\n this.$_registerTriggerListeners(this.$_targetNodes, pe, this.triggers, this.showTriggers, e), this.$_registerTriggerListeners([this.$_popperNode], pe, this.popperTriggers, this.popperShowTriggers, e);\n const t = (o) => {\n o.usedByTooltip || this.hide({ event: o });\n };\n this.$_registerTriggerListeners(this.$_targetNodes, ae, this.triggers, this.hideTriggers, t), this.$_registerTriggerListeners([this.$_popperNode], ae, this.popperTriggers, this.popperHideTriggers, t);\n },\n $_registerEventListeners(e, t, o) {\n this.$_events.push({ targetNodes: e, eventType: t, handler: o }), e.forEach((i) => i.addEventListener(t, o, $ ? {\n passive: !0\n } : void 0));\n },\n $_registerTriggerListeners(e, t, o, i, s) {\n let r = o;\n i != null && (r = typeof i == \"function\" ? i(r) : i), r.forEach((p) => {\n const a = t[p];\n a && this.$_registerEventListeners(e, a, s);\n });\n },\n $_removeEventListeners(e) {\n const t = [];\n this.$_events.forEach((o) => {\n const { targetNodes: i, eventType: s, handler: r } = o;\n !e || e === s ? i.forEach((p) => p.removeEventListener(s, r)) : t.push(o);\n }), this.$_events = t;\n },\n $_refreshListeners() {\n this.isDisposed || (this.$_removeEventListeners(), this.$_addEventListeners());\n },\n $_handleGlobalClose(e, t = !1) {\n this.$_showFrameLocked || (this.hide({ event: e }), e.closePopover ? this.$emit(\"close-directive\") : this.$emit(\"auto-hide\"), t && (this.$_preventShow = !0, setTimeout(() => {\n this.$_preventShow = !1;\n }, 300)));\n },\n $_detachPopperNode() {\n this.$_popperNode.parentNode && this.$_popperNode.parentNode.removeChild(this.$_popperNode);\n },\n $_swapTargetAttrs(e, t) {\n for (const o of this.$_targetNodes) {\n const i = o.getAttribute(e);\n i && (o.removeAttribute(e), o.setAttribute(t, i));\n }\n },\n $_applyAttrsToTarget(e) {\n for (const t of this.$_targetNodes)\n for (const o in e) {\n const i = e[o];\n i == null ? t.removeAttribute(o) : t.setAttribute(o, i);\n }\n },\n $_updateParentShownChildren(e) {\n let t = this.parentPopper;\n for (; t; )\n e ? t.shownChildren.add(this.randomId) : (t.shownChildren.delete(this.randomId), t.pendingHide && t.hide()), t = t.parentPopper;\n },\n $_isAimingPopper() {\n const e = this.$_referenceNode.getBoundingClientRect();\n if (y >= e.left && y <= e.right && _ >= e.top && _ <= e.bottom) {\n const t = this.$_popperNode.getBoundingClientRect(), o = y - c, i = _ - m, r = t.left + t.width / 2 - c + (t.top + t.height / 2) - m + t.width + t.height, p = c + o * r, a = m + i * r;\n return C(c, m, p, a, t.left, t.top, t.left, t.bottom) || // Left edge\n C(c, m, p, a, t.left, t.top, t.right, t.top) || // Top edge\n C(c, m, p, a, t.right, t.top, t.right, t.bottom) || // Right edge\n C(c, m, p, a, t.left, t.bottom, t.right, t.bottom);\n }\n return !1;\n }\n },\n render() {\n return this.$slots.default(this.slotData);\n }\n});\nif (typeof document < \"u\" && typeof window < \"u\") {\n if (_e) {\n const e = $ ? {\n passive: !0,\n capture: !0\n } : !0;\n document.addEventListener(\"touchstart\", (t) => ue(t, !0), e), document.addEventListener(\"touchend\", (t) => fe(t, !0), e);\n } else\n window.addEventListener(\"mousedown\", (e) => ue(e, !1), !0), window.addEventListener(\"click\", (e) => fe(e, !1), !0);\n window.addEventListener(\"resize\", tt);\n}\nfunction ue(e, t) {\n if (h.autoHideOnMousedown)\n Pe(e, t);\n else\n for (let o = 0; o < d.length; o++) {\n const i = d[o];\n try {\n i.mouseDownContains = i.popperNode().contains(e.target);\n } catch {\n }\n }\n}\nfunction fe(e, t) {\n h.autoHideOnMousedown || Pe(e, t);\n}\nfunction Pe(e, t) {\n const o = {};\n for (let i = d.length - 1; i >= 0; i--) {\n const s = d[i];\n try {\n const r = s.containsGlobalTarget = s.mouseDownContains || s.popperNode().contains(e.target);\n s.pendingHide = !1, requestAnimationFrame(() => {\n if (s.pendingHide = !1, !o[s.randomId] && ce(s, r, e)) {\n if (s.$_handleGlobalClose(e, t), !e.closeAllPopover && e.closePopover && r) {\n let a = s.parentPopper;\n for (; a; )\n o[a.randomId] = !0, a = a.parentPopper;\n return;\n }\n let p = s.parentPopper;\n for (; p && ce(p, p.containsGlobalTarget, e); ) {\n p.$_handleGlobalClose(e, t);\n p = p.parentPopper;\n }\n }\n });\n } catch {\n }\n }\n}\nfunction ce(e, t, o) {\n return o.closeAllPopover || o.closePopover && t || et(e, o) && !t;\n}\nfunction et(e, t) {\n if (typeof e.autoHide == \"function\") {\n const o = e.autoHide(t);\n return e.lastAutoHide = o, o;\n }\n return e.autoHide;\n}\nfunction tt() {\n for (let e = 0; e < d.length; e++)\n d[e].$_computePosition();\n}\nfunction Nt() {\n for (let e = 0; e < d.length; e++)\n d[e].hide();\n}\nlet c = 0, m = 0, y = 0, _ = 0;\ntypeof window < \"u\" && window.addEventListener(\"mousemove\", (e) => {\n c = y, m = _, y = e.clientX, _ = e.clientY;\n}, $ ? {\n passive: !0\n} : void 0);\nfunction C(e, t, o, i, s, r, p, a) {\n const l = ((p - s) * (t - r) - (a - r) * (e - s)) / ((a - r) * (o - e) - (p - s) * (i - t)), u = ((o - e) * (t - r) - (i - t) * (e - s)) / ((a - r) * (o - e) - (p - s) * (i - t));\n return l >= 0 && l <= 1 && u >= 0 && u <= 1;\n}\nconst ot = {\n extends: Q()\n}, B = (e, t) => {\n const o = e.__vccOpts || e;\n for (const [i, s] of t)\n o[i] = s;\n return o;\n};\nfunction it(e, t, o, i, s, r) {\n return f(), T(\"div\", {\n ref: \"reference\",\n class: J([\"v-popper\", {\n \"v-popper--shown\": e.slotData.isShown\n }])\n }, [\n A(e.$slots, \"default\", ke(Le(e.slotData)))\n ], 2);\n}\nconst st = /* @__PURE__ */ B(ot, [[\"render\", it]]);\nfunction nt() {\n var e = window.navigator.userAgent, t = e.indexOf(\"MSIE \");\n if (t > 0)\n return parseInt(e.substring(t + 5, e.indexOf(\".\", t)), 10);\n var o = e.indexOf(\"Trident/\");\n if (o > 0) {\n var i = e.indexOf(\"rv:\");\n return parseInt(e.substring(i + 3, e.indexOf(\".\", i)), 10);\n }\n var s = e.indexOf(\"Edge/\");\n return s > 0 ? parseInt(e.substring(s + 5, e.indexOf(\".\", s)), 10) : -1;\n}\nlet z;\nfunction X() {\n X.init || (X.init = !0, z = nt() !== -1);\n}\nvar E = {\n name: \"ResizeObserver\",\n props: {\n emitOnMount: {\n type: Boolean,\n default: !1\n },\n ignoreWidth: {\n type: Boolean,\n default: !1\n },\n ignoreHeight: {\n type: Boolean,\n default: !1\n }\n },\n emits: [\n \"notify\"\n ],\n mounted() {\n X(), Fe(() => {\n this._w = this.$el.offsetWidth, this._h = this.$el.offsetHeight, this.emitOnMount && this.emitSize();\n });\n const e = document.createElement(\"object\");\n this._resizeObject = e, e.setAttribute(\"aria-hidden\", \"true\"), e.setAttribute(\"tabindex\", -1), e.onload = this.addResizeHandlers, e.type = \"text/html\", z && this.$el.appendChild(e), e.data = \"about:blank\", z || this.$el.appendChild(e);\n },\n beforeUnmount() {\n this.removeResizeHandlers();\n },\n methods: {\n compareAndNotify() {\n (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) && (this._w = this.$el.offsetWidth, this._h = this.$el.offsetHeight, this.emitSize());\n },\n emitSize() {\n this.$emit(\"notify\", {\n width: this._w,\n height: this._h\n });\n },\n addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener(\"resize\", this.compareAndNotify), this.compareAndNotify();\n },\n removeResizeHandlers() {\n this._resizeObject && this._resizeObject.onload && (!z && this._resizeObject.contentDocument && this._resizeObject.contentDocument.defaultView.removeEventListener(\"resize\", this.compareAndNotify), this.$el.removeChild(this._resizeObject), this._resizeObject.onload = null, this._resizeObject = null);\n }\n }\n};\nconst rt = /* @__PURE__ */ Re(\"data-v-b329ee4c\");\nDe(\"data-v-b329ee4c\");\nconst pt = {\n class: \"resize-observer\",\n tabindex: \"-1\"\n};\nIe();\nconst at = /* @__PURE__ */ rt((e, t, o, i, s, r) => (f(), M(\"div\", pt)));\nE.render = at;\nE.__scopeId = \"data-v-b329ee4c\";\nE.__file = \"src/components/ResizeObserver.vue\";\nconst Z = (e = \"theme\") => ({\n computed: {\n themeClass() {\n return Ze(this[e]);\n }\n }\n}), dt = O({\n name: \"VPopperContent\",\n components: {\n ResizeObserver: E\n },\n mixins: [\n Z()\n ],\n props: {\n popperId: String,\n theme: String,\n shown: Boolean,\n mounted: Boolean,\n skipTransition: Boolean,\n autoHide: Boolean,\n handleResize: Boolean,\n classes: Object,\n result: Object\n },\n emits: [\n \"hide\",\n \"resize\"\n ],\n methods: {\n toPx(e) {\n return e != null && !isNaN(e) ? `${e}px` : null;\n }\n }\n}), lt = [\"id\", \"aria-hidden\", \"tabindex\", \"data-popper-placement\"], ht = {\n ref: \"inner\",\n class: \"v-popper__inner\"\n}, ut = /* @__PURE__ */ w(\"div\", { class: \"v-popper__arrow-outer\" }, null, -1), ft = /* @__PURE__ */ w(\"div\", { class: \"v-popper__arrow-inner\" }, null, -1), ct = [\n ut,\n ft\n];\nfunction mt(e, t, o, i, s, r) {\n const p = P(\"ResizeObserver\");\n return f(), T(\"div\", {\n id: e.popperId,\n ref: \"popover\",\n class: J([\"v-popper__popper\", [\n e.themeClass,\n e.classes.popperClass,\n {\n \"v-popper__popper--shown\": e.shown,\n \"v-popper__popper--hidden\": !e.shown,\n \"v-popper__popper--show-from\": e.classes.showFrom,\n \"v-popper__popper--show-to\": e.classes.showTo,\n \"v-popper__popper--hide-from\": e.classes.hideFrom,\n \"v-popper__popper--hide-to\": e.classes.hideTo,\n \"v-popper__popper--skip-transition\": e.skipTransition,\n \"v-popper__popper--arrow-overflow\": e.result && e.result.arrow.overflow,\n \"v-popper__popper--no-positioning\": !e.result\n }\n ]]),\n style: W(e.result ? {\n position: e.result.strategy,\n transform: `translate3d(${Math.round(e.result.x)}px,${Math.round(e.result.y)}px,0)`\n } : void 0),\n \"aria-hidden\": e.shown ? \"false\" : \"true\",\n tabindex: e.autoHide ? 0 : void 0,\n \"data-popper-placement\": e.result ? e.result.placement : void 0,\n onKeyup: t[2] || (t[2] = je((a) => e.autoHide && e.$emit(\"hide\"), [\"esc\"]))\n }, [\n w(\"div\", {\n class: \"v-popper__backdrop\",\n onClick: t[0] || (t[0] = (a) => e.autoHide && e.$emit(\"hide\"))\n }),\n w(\"div\", {\n class: \"v-popper__wrapper\",\n style: W(e.result ? {\n transformOrigin: e.result.transformOrigin\n } : void 0)\n }, [\n w(\"div\", ht, [\n e.mounted ? (f(), T(Ve, { key: 0 }, [\n w(\"div\", null, [\n A(e.$slots, \"default\")\n ]),\n e.handleResize ? (f(), M(p, {\n key: 0,\n onNotify: t[1] || (t[1] = (a) => e.$emit(\"resize\", a))\n })) : se(\"\", !0)\n ], 64)) : se(\"\", !0)\n ], 512),\n w(\"div\", {\n ref: \"arrow\",\n class: \"v-popper__arrow-container\",\n style: W(e.result ? {\n left: e.toPx(e.result.arrow.x),\n top: e.toPx(e.result.arrow.y)\n } : void 0)\n }, ct, 4)\n ], 4)\n ], 46, lt);\n}\nconst ee = /* @__PURE__ */ B(dt, [[\"render\", mt]]), te = {\n methods: {\n show(...e) {\n return this.$refs.popper.show(...e);\n },\n hide(...e) {\n return this.$refs.popper.hide(...e);\n },\n dispose(...e) {\n return this.$refs.popper.dispose(...e);\n },\n onResize(...e) {\n return this.$refs.popper.onResize(...e);\n }\n }\n};\nlet K = function() {\n};\ntypeof window < \"u\" && (K = window.Element);\nconst gt = O({\n name: \"VPopperWrapper\",\n components: {\n Popper: st,\n PopperContent: ee\n },\n mixins: [\n te,\n Z(\"finalTheme\")\n ],\n props: {\n theme: {\n type: String,\n default: null\n },\n referenceNode: {\n type: Function,\n default: null\n },\n shown: {\n type: Boolean,\n default: !1\n },\n showGroup: {\n type: String,\n default: null\n },\n // eslint-disable-next-line vue/require-prop-types\n ariaId: {\n default: null\n },\n disabled: {\n type: Boolean,\n default: void 0\n },\n positioningDisabled: {\n type: Boolean,\n default: void 0\n },\n placement: {\n type: String,\n default: void 0\n },\n delay: {\n type: [String, Number, Object],\n default: void 0\n },\n distance: {\n type: [Number, String],\n default: void 0\n },\n skidding: {\n type: [Number, String],\n default: void 0\n },\n triggers: {\n type: Array,\n default: void 0\n },\n showTriggers: {\n type: [Array, Function],\n default: void 0\n },\n hideTriggers: {\n type: [Array, Function],\n default: void 0\n },\n popperTriggers: {\n type: Array,\n default: void 0\n },\n popperShowTriggers: {\n type: [Array, Function],\n default: void 0\n },\n popperHideTriggers: {\n type: [Array, Function],\n default: void 0\n },\n container: {\n type: [String, Object, K, Boolean],\n default: void 0\n },\n boundary: {\n type: [String, K],\n default: void 0\n },\n strategy: {\n type: String,\n default: void 0\n },\n autoHide: {\n type: [Boolean, Function],\n default: void 0\n },\n handleResize: {\n type: Boolean,\n default: void 0\n },\n instantMove: {\n type: Boolean,\n default: void 0\n },\n eagerMount: {\n type: Boolean,\n default: void 0\n },\n popperClass: {\n type: [String, Array, Object],\n default: void 0\n },\n computeTransformOrigin: {\n type: Boolean,\n default: void 0\n },\n /**\n * @deprecated\n */\n autoMinSize: {\n type: Boolean,\n default: void 0\n },\n autoSize: {\n type: [Boolean, String],\n default: void 0\n },\n /**\n * @deprecated\n */\n autoMaxSize: {\n type: Boolean,\n default: void 0\n },\n autoBoundaryMaxSize: {\n type: Boolean,\n default: void 0\n },\n preventOverflow: {\n type: Boolean,\n default: void 0\n },\n overflowPadding: {\n type: [Number, String],\n default: void 0\n },\n arrowPadding: {\n type: [Number, String],\n default: void 0\n },\n arrowOverflow: {\n type: Boolean,\n default: void 0\n },\n flip: {\n type: Boolean,\n default: void 0\n },\n shift: {\n type: Boolean,\n default: void 0\n },\n shiftCrossAxis: {\n type: Boolean,\n default: void 0\n },\n noAutoFocus: {\n type: Boolean,\n default: void 0\n },\n disposeTimeout: {\n type: Number,\n default: void 0\n }\n },\n emits: {\n show: () => !0,\n hide: () => !0,\n \"update:shown\": (e) => !0,\n \"apply-show\": () => !0,\n \"apply-hide\": () => !0,\n \"close-group\": () => !0,\n \"close-directive\": () => !0,\n \"auto-hide\": () => !0,\n resize: () => !0\n },\n computed: {\n finalTheme() {\n return this.theme ?? this.$options.vPopperTheme;\n }\n },\n methods: {\n getTargetNodes() {\n return Array.from(this.$el.children).filter((e) => e !== this.$refs.popperContent.$el);\n }\n }\n});\nfunction wt(e, t, o, i, s, r) {\n const p = P(\"PopperContent\"), a = P(\"Popper\");\n return f(), M(a, $e({ ref: \"popper\" }, e.$props, {\n theme: e.finalTheme,\n \"target-nodes\": e.getTargetNodes,\n \"popper-node\": () => e.$refs.popperContent.$el,\n class: [\n e.themeClass\n ],\n onShow: t[0] || (t[0] = () => e.$emit(\"show\")),\n onHide: t[1] || (t[1] = () => e.$emit(\"hide\")),\n \"onUpdate:shown\": t[2] || (t[2] = (l) => e.$emit(\"update:shown\", l)),\n onApplyShow: t[3] || (t[3] = () => e.$emit(\"apply-show\")),\n onApplyHide: t[4] || (t[4] = () => e.$emit(\"apply-hide\")),\n onCloseGroup: t[5] || (t[5] = () => e.$emit(\"close-group\")),\n onCloseDirective: t[6] || (t[6] = () => e.$emit(\"close-directive\")),\n onAutoHide: t[7] || (t[7] = () => e.$emit(\"auto-hide\")),\n onResize: t[8] || (t[8] = () => e.$emit(\"resize\"))\n }), {\n default: N(({\n popperId: l,\n isShown: u,\n shouldMountContent: L,\n skipTransition: D,\n autoHide: I,\n show: F,\n hide: v,\n handleResize: R,\n onResize: j,\n classes: V,\n result: Ee\n }) => [\n A(e.$slots, \"default\", {\n shown: u,\n show: F,\n hide: v\n }),\n ve(p, {\n ref: \"popperContent\",\n \"popper-id\": l,\n theme: e.finalTheme,\n shown: u,\n mounted: L,\n \"skip-transition\": D,\n \"auto-hide\": I,\n \"handle-resize\": R,\n classes: V,\n result: Ee,\n onHide: v,\n onResize: j\n }, {\n default: N(() => [\n A(e.$slots, \"popper\", {\n shown: u,\n hide: v\n })\n ]),\n _: 2\n }, 1032, [\"popper-id\", \"theme\", \"shown\", \"mounted\", \"skip-transition\", \"auto-hide\", \"handle-resize\", \"classes\", \"result\", \"onHide\", \"onResize\"])\n ]),\n _: 3\n }, 16, [\"theme\", \"target-nodes\", \"popper-node\", \"class\"]);\n}\nconst k = /* @__PURE__ */ B(gt, [[\"render\", wt]]), Se = {\n ...k,\n name: \"VDropdown\",\n vPopperTheme: \"dropdown\"\n}, be = {\n ...k,\n name: \"VMenu\",\n vPopperTheme: \"menu\"\n}, Ce = {\n ...k,\n name: \"VTooltip\",\n vPopperTheme: \"tooltip\"\n}, $t = O({\n name: \"VTooltipDirective\",\n components: {\n Popper: Q(),\n PopperContent: ee\n },\n mixins: [\n te\n ],\n inheritAttrs: !1,\n props: {\n theme: {\n type: String,\n default: \"tooltip\"\n },\n html: {\n type: Boolean,\n default: (e) => S(e.theme, \"html\")\n },\n content: {\n type: [String, Number, Function],\n default: null\n },\n loadingContent: {\n type: String,\n default: (e) => S(e.theme, \"loadingContent\")\n },\n targetNodes: {\n type: Function,\n required: !0\n }\n },\n data() {\n return {\n asyncContent: null\n };\n },\n computed: {\n isContentAsync() {\n return typeof this.content == \"function\";\n },\n loading() {\n return this.isContentAsync && this.asyncContent == null;\n },\n finalContent() {\n return this.isContentAsync ? this.loading ? this.loadingContent : this.asyncContent : this.content;\n }\n },\n watch: {\n content: {\n handler() {\n this.fetchContent(!0);\n },\n immediate: !0\n },\n async finalContent() {\n await this.$nextTick(), this.$refs.popper.onResize();\n }\n },\n created() {\n this.$_fetchId = 0;\n },\n methods: {\n fetchContent(e) {\n if (typeof this.content == \"function\" && this.$_isShown && (e || !this.$_loading && this.asyncContent == null)) {\n this.asyncContent = null, this.$_loading = !0;\n const t = ++this.$_fetchId, o = this.content(this);\n o.then ? o.then((i) => this.onResult(t, i)) : this.onResult(t, o);\n }\n },\n onResult(e, t) {\n e === this.$_fetchId && (this.$_loading = !1, this.asyncContent = t);\n },\n onShow() {\n this.$_isShown = !0, this.fetchContent();\n },\n onHide() {\n this.$_isShown = !1;\n }\n }\n}), vt = [\"innerHTML\"], yt = [\"textContent\"];\nfunction _t(e, t, o, i, s, r) {\n const p = P(\"PopperContent\"), a = P(\"Popper\");\n return f(), M(a, $e({ ref: \"popper\" }, e.$attrs, {\n theme: e.theme,\n \"target-nodes\": e.targetNodes,\n \"popper-node\": () => e.$refs.popperContent.$el,\n onApplyShow: e.onShow,\n onApplyHide: e.onHide\n }), {\n default: N(({\n popperId: l,\n isShown: u,\n shouldMountContent: L,\n skipTransition: D,\n autoHide: I,\n hide: F,\n handleResize: v,\n onResize: R,\n classes: j,\n result: V\n }) => [\n ve(p, {\n ref: \"popperContent\",\n class: J({\n \"v-popper--tooltip-loading\": e.loading\n }),\n \"popper-id\": l,\n theme: e.theme,\n shown: u,\n mounted: L,\n \"skip-transition\": D,\n \"auto-hide\": I,\n \"handle-resize\": v,\n classes: j,\n result: V,\n onHide: F,\n onResize: R\n }, {\n default: N(() => [\n e.html ? (f(), T(\"div\", {\n key: 0,\n innerHTML: e.finalContent\n }, null, 8, vt)) : (f(), T(\"div\", {\n key: 1,\n textContent: We(e.finalContent)\n }, null, 8, yt))\n ]),\n _: 2\n }, 1032, [\"class\", \"popper-id\", \"theme\", \"shown\", \"mounted\", \"skip-transition\", \"auto-hide\", \"handle-resize\", \"classes\", \"result\", \"onHide\", \"onResize\"])\n ]),\n _: 1\n }, 16, [\"theme\", \"target-nodes\", \"popper-node\", \"onApplyShow\", \"onApplyHide\"]);\n}\nconst ze = /* @__PURE__ */ B($t, [[\"render\", _t]]), Ae = \"v-popper--has-tooltip\";\nfunction Tt(e, t) {\n let o = e.placement;\n if (!o && t)\n for (const i of Te)\n t[i] && (o = i);\n return o || (o = S(e.theme || \"tooltip\", \"placement\")), o;\n}\nfunction Ne(e, t, o) {\n let i;\n const s = typeof t;\n return s === \"string\" ? i = { content: t } : t && s === \"object\" ? i = t : i = { content: !1 }, i.placement = Tt(i, o), i.targetNodes = () => [e], i.referenceNode = () => e, i;\n}\nlet x, b, Pt = 0;\nfunction St() {\n if (x)\n return;\n b = U([]), x = Ge({\n name: \"VTooltipDirectiveApp\",\n setup() {\n return {\n directives: b\n };\n },\n render() {\n return this.directives.map((t) => qe(ze, {\n ...t.options,\n shown: t.shown || t.options.shown,\n key: t.id\n }));\n },\n devtools: {\n hide: !0\n }\n });\n const e = document.createElement(\"div\");\n document.body.appendChild(e), x.mount(e);\n}\nfunction bt(e, t, o) {\n St();\n const i = U(Ne(e, t, o)), s = U(!1), r = {\n id: Pt++,\n options: i,\n shown: s\n };\n return b.value.push(r), e.classList && e.classList.add(Ae), e.$_popper = {\n options: i,\n item: r,\n show() {\n s.value = !0;\n },\n hide() {\n s.value = !1;\n }\n };\n}\nfunction He(e) {\n if (e.$_popper) {\n const t = b.value.indexOf(e.$_popper.item);\n t !== -1 && b.value.splice(t, 1), delete e.$_popper, delete e.$_popperOldShown, delete e.$_popperMountTarget;\n }\n e.classList && e.classList.remove(Ae);\n}\nfunction me(e, { value: t, modifiers: o }) {\n const i = Ne(e, t, o);\n if (!i.content || S(i.theme || \"tooltip\", \"disabled\"))\n He(e);\n else {\n let s;\n e.$_popper ? (s = e.$_popper, s.options.value = i) : s = bt(e, t, o), typeof t.shown < \"u\" && t.shown !== e.$_popperOldShown && (e.$_popperOldShown = t.shown, t.shown ? s.show() : s.hide());\n }\n}\nconst oe = {\n beforeMount: me,\n updated: me,\n beforeUnmount(e) {\n He(e);\n }\n};\nfunction ge(e) {\n e.addEventListener(\"mousedown\", H), e.addEventListener(\"click\", H), e.addEventListener(\"touchstart\", Oe, $ ? {\n passive: !0\n } : !1);\n}\nfunction we(e) {\n e.removeEventListener(\"mousedown\", H), e.removeEventListener(\"click\", H), e.removeEventListener(\"touchstart\", Oe), e.removeEventListener(\"touchend\", Me), e.removeEventListener(\"touchcancel\", Be);\n}\nfunction H(e) {\n const t = e.currentTarget;\n e.closePopover = !t.$_vclosepopover_touch, e.closeAllPopover = t.$_closePopoverModifiers && !!t.$_closePopoverModifiers.all;\n}\nfunction Oe(e) {\n if (e.changedTouches.length === 1) {\n const t = e.currentTarget;\n t.$_vclosepopover_touch = !0;\n const o = e.changedTouches[0];\n t.$_vclosepopover_touchPoint = o, t.addEventListener(\"touchend\", Me), t.addEventListener(\"touchcancel\", Be);\n }\n}\nfunction Me(e) {\n const t = e.currentTarget;\n if (t.$_vclosepopover_touch = !1, e.changedTouches.length === 1) {\n const o = e.changedTouches[0], i = t.$_vclosepopover_touchPoint;\n e.closePopover = Math.abs(o.screenY - i.screenY) < 20 && Math.abs(o.screenX - i.screenX) < 20, e.closeAllPopover = t.$_closePopoverModifiers && !!t.$_closePopoverModifiers.all;\n }\n}\nfunction Be(e) {\n const t = e.currentTarget;\n t.$_vclosepopover_touch = !1;\n}\nconst ie = {\n beforeMount(e, { value: t, modifiers: o }) {\n e.$_closePopoverModifiers = o, (typeof t > \"u\" || t) && ge(e);\n },\n updated(e, { value: t, oldValue: o, modifiers: i }) {\n e.$_closePopoverModifiers = i, t !== o && (typeof t > \"u\" || t ? ge(e) : we(e));\n },\n beforeUnmount(e) {\n we(e);\n }\n}, Ht = h, Ot = oe, Mt = oe, Bt = ie, Et = ie, kt = Se, Lt = be, Dt = Q, It = ee, Ft = te, Rt = k, jt = Z, Vt = Ce, Wt = ze;\nfunction Ct(e, t = {}) {\n e.$_vTooltipInstalled || (e.$_vTooltipInstalled = !0, ye(h, t), e.directive(\"tooltip\", oe), e.directive(\"close-popper\", ie), e.component(\"VTooltip\", Ce), e.component(\"VDropdown\", Se), e.component(\"VMenu\", be));\n}\nconst Gt = {\n // eslint-disable-next-line no-undef\n version: \"5.2.2\",\n install: Ct,\n options: h\n};\nexport {\n kt as Dropdown,\n ae as HIDE_EVENT_MAP,\n Lt as Menu,\n Dt as Popper,\n It as PopperContent,\n Ft as PopperMethods,\n Rt as PopperWrapper,\n pe as SHOW_EVENT_MAP,\n jt as ThemeClass,\n Vt as Tooltip,\n Wt as TooltipDirective,\n Bt as VClosePopper,\n Ot as VTooltip,\n bt as createTooltip,\n Gt as default,\n He as destroyTooltip,\n Nt as hideAllPoppers,\n Ct as install,\n Ht as options,\n Te as placements,\n tt as recomputeAllPoppers,\n Et as vClosePopper,\n Mt as vTooltip\n};\n","import { getLoggerBuilder } from \"@nextcloud/logger\";\nconst logger = getLoggerBuilder().detectUser().setApp(\"@nextcloud/vue\").build();\nexport {\n logger as l\n};\n//# sourceMappingURL=logger-D3RVzcfQ.mjs.map\n","import { isRTL } from \"@nextcloud/l10n\";\nconst isRtl = isRTL();\nexport {\n isRtl as i\n};\n//# sourceMappingURL=rtl-v0UOPAM7.mjs.map\n","import '../assets/NcPopover-CZ3pMU6Y.css';\nimport { options, Dropdown } from \"floating-vue\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { defineComponent, warn, resolveComponent, createBlock, openBlock, withCtx, createVNode, renderSlot, normalizeProps, guardReactiveProps } from \"vue\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { i as isRtl } from \"./rtl-v0UOPAM7.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main$1 = defineComponent({\n name: \"NcPopoverTriggerProvider\",\n provide() {\n return {\n \"NcPopover:trigger:shown\": () => this.shown,\n \"NcPopover:trigger:attrs\": () => this.triggerAttrs\n };\n },\n props: {\n /**\n * Is the popover currently shown\n */\n shown: {\n type: Boolean,\n required: true\n },\n /**\n * ARIA Role of the popup\n */\n popupRole: {\n type: String,\n default: void 0\n }\n },\n computed: {\n triggerAttrs() {\n return {\n \"aria-haspopup\": this.popupRole,\n \"aria-expanded\": this.shown.toString()\n };\n }\n },\n render() {\n return this.$slots.default?.({\n attrs: this.triggerAttrs\n });\n }\n});\nconst ncPopover = \"_ncPopover_wpltc_20\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_wpltc_12\",\n ncPopover\n};\nconst theme = \"nc-popover-9\";\noptions.themes[theme] = structuredClone(options.themes.dropdown);\nconst _sfc_main = {\n name: \"NcPopover\",\n components: {\n Dropdown,\n NcPopoverTriggerProvider: _sfc_main$1\n },\n props: {\n /**\n * Element to use for calculating the popper boundary (size and position).\n * Either a query string or the actual HTMLElement.\n */\n boundary: {\n type: [String, Object],\n default: \"\"\n },\n /**\n * Automatically hide the popover on click outside.\n *\n * @deprecated Use `no-close-on-click-outside` instead (inverted value)\n */\n closeOnClickOutside: {\n type: Boolean,\n // eslint-disable-next-line vue/no-boolean-default\n default: true\n },\n /**\n * Disable the automatic popover hide on click outside.\n */\n noCloseOnClickOutside: {\n type: Boolean,\n default: false\n },\n /**\n * Container where to mount the popover.\n * Either a select query or `false` to mount to the parent node.\n */\n container: {\n type: [Boolean, String],\n default: \"body\"\n },\n /**\n * Delay for showing or hiding the popover.\n *\n * Can either be a number or an object to configure different delays (`{ show: number, hide: number }`).\n */\n delay: {\n type: [Number, Object],\n default: 0\n },\n /**\n * Disable the popover focus trap.\n */\n noFocusTrap: {\n type: Boolean,\n default: false\n },\n /**\n * Where to place the popover.\n *\n * This consists of the vertical placement and the horizontal placement.\n * E.g. `bottom` will place the popover on the bottom of the trigger (horizontally centered),\n * while `buttom-start` will horizontally align the popover on the logical start (e.g. for LTR layout on the left.).\n * The `start` or `end` placement will align the popover on the left or right side or the trigger element.\n *\n * @type {'auto'|'auto-start'|'auto-end'|'top'|'top-start'|'top-end'|'bottom'|'bottom-start'|'bottom-end'|'start'|'end'}\n */\n placement: {\n type: String,\n default: \"bottom\"\n },\n /**\n * Class to be applied to the popover base\n */\n popoverBaseClass: {\n type: String,\n default: \"\"\n },\n /**\n * Events that trigger the popover on the popover container itself.\n * This is useful if you set `triggers` to `hover` and also want the popover to stay open while hovering the popover itself.\n *\n * It is possible to also pass an object to define different triggers for hide and show `{ show: ['hover'], hide: ['click'] }`.\n */\n popoverTriggers: {\n type: [Array, Object],\n default: null\n },\n /**\n * Popup role\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-haspopup#values\n */\n popupRole: {\n type: String,\n default: void 0,\n validator: (value) => [\"menu\", \"listbox\", \"tree\", \"grid\", \"dialog\", \"true\"].includes(value)\n },\n /**\n * Set element to return focus to after focus trap deactivation\n *\n * @type {SetReturnFocus}\n */\n setReturnFocus: {\n default: void 0,\n type: [Boolean, HTMLElement, SVGElement, String, Function]\n },\n /**\n * Show or hide the popper\n */\n shown: {\n type: Boolean,\n default: false\n },\n /**\n * Events that trigger the popover.\n *\n * If you pass an empty array then only the `shown` prop can control the popover state.\n * Following events are available:\n * - `'hover'`\n * - `'click'`\n * - `'focus'`\n * - `'touch'`\n *\n * It is also possible to pass an object to have different events for show and hide:\n * `{ hide: ['click'], show: ['click', 'hover'] }`\n */\n triggers: {\n type: [Array, Object],\n default: () => [\"click\"]\n }\n },\n emits: [\n \"afterShow\",\n \"afterHide\",\n \"update:shown\"\n ],\n setup() {\n return {\n theme\n };\n },\n data() {\n return {\n internalShown: this.shown\n };\n },\n computed: {\n popperTriggers() {\n if (this.popoverTriggers && Array.isArray(this.popoverTriggers)) {\n return this.popoverTriggers;\n }\n return void 0;\n },\n popperHideTriggers() {\n if (this.popoverTriggers && typeof this.popoverTriggers === \"object\") {\n return this.popoverTriggers.hide;\n }\n return void 0;\n },\n popperShowTriggers() {\n if (this.popoverTriggers && typeof this.popoverTriggers === \"object\") {\n return this.popoverTriggers.show;\n }\n return void 0;\n },\n internalTriggers() {\n if (this.triggers && Array.isArray(this.triggers)) {\n return this.triggers;\n }\n return void 0;\n },\n hideTriggers() {\n if (this.triggers && typeof this.triggers === \"object\") {\n return this.triggers.hide;\n }\n return void 0;\n },\n showTriggers() {\n if (this.triggers && typeof this.triggers === \"object\") {\n return this.triggers.show;\n }\n return void 0;\n },\n internalPlacement() {\n if (this.placement === \"start\") {\n return isRtl ? \"right\" : \"left\";\n } else if (this.placement === \"end\") {\n return isRtl ? \"left\" : \"right\";\n }\n return this.placement;\n }\n },\n watch: {\n shown(value) {\n this.internalShown = value;\n },\n internalShown(value) {\n this.$emit(\"update:shown\", value);\n }\n },\n mounted() {\n this.checkTriggerA11y();\n },\n beforeUnmount() {\n this.clearFocusTrap();\n this.clearEscapeStopPropagation();\n },\n methods: {\n /**\n * Check if the trigger has all required a11y attributes.\n * Important to check custom trigger button.\n */\n checkTriggerA11y() {\n if (window.OC?.debug) {\n const triggerContainer = this.getPopoverTriggerContainerElement();\n const requiredTriggerButton = triggerContainer.querySelector(\"[aria-expanded]\");\n if (!requiredTriggerButton) {\n warn(\"It looks like you are using a custom button as a <NcPopover> or other popover #trigger. If you are not using <NcButton> as a trigger, you need to bind attrs from the #trigger slot props to your custom button. See <NcPopover> docs for an example.\");\n }\n }\n },\n /**\n * Remove incorrect aria-describedby attribute from the trigger.\n *\n * @see https://github.com/Akryum/floating-vue/blob/8d4f7125aae0e3ea00ba4093d6d2001ab15058f1/packages/floating-vue/src/components/Popper.ts#L734\n */\n removeFloatingVueAriaDescribedBy() {\n const triggerContainer = this.getPopoverTriggerContainerElement();\n const triggerElements = triggerContainer.querySelectorAll(\"[data-popper-shown]\");\n for (const el of triggerElements) {\n el.removeAttribute(\"aria-describedby\");\n }\n },\n /**\n * @return {HTMLElement|undefined}\n */\n getPopoverContentElement() {\n return this.$refs.popover?.$refs.popperContent?.$el;\n },\n /**\n * @return {HTMLElement|undefined}\n */\n getPopoverTriggerContainerElement() {\n return this.$refs.popover?.$refs.popper?.$refs.reference;\n },\n /**\n * Add focus trap for accessibility.\n */\n async useFocusTrap() {\n await this.$nextTick();\n if (this.noFocusTrap) {\n return;\n }\n const el = this.getPopoverContentElement();\n el.tabIndex = -1;\n if (!el) {\n return;\n }\n this.$focusTrap = createFocusTrap(el, {\n // Prevents to lose focus using esc key\n // Focus will be release when popover be hide\n escapeDeactivates: false,\n allowOutsideClick: true,\n setReturnFocus: this.setReturnFocus,\n trapStack: getTrapStack(),\n fallBackFocus: el\n });\n this.$focusTrap.activate();\n },\n /**\n * Remove focus trap\n *\n * @param {object} options The configuration options for focusTrap\n */\n clearFocusTrap(options2 = {}) {\n try {\n this.$focusTrap?.deactivate(options2);\n this.$focusTrap = null;\n } catch (error) {\n logger.warn(\"[NcPopover] Failed to clear focus trap\", { error });\n }\n },\n /**\n * Add stopPropagation for Escape.\n * It prevents global Escape handling after closing popover.\n *\n * Manual event handling is used here instead of v-on because there is no direct access to the node.\n * Alternative - wrap <template #popover> in a div wrapper.\n */\n addEscapeStopPropagation() {\n const el = this.getPopoverContentElement();\n el?.addEventListener(\"keydown\", this.stopKeydownEscapeHandler);\n },\n /**\n * Remove stop Escape handler\n */\n clearEscapeStopPropagation() {\n const el = this.getPopoverContentElement();\n el?.removeEventListener(\"keydown\", this.stopKeydownEscapeHandler);\n },\n /**\n * @param {KeyboardEvent} event - native keydown event\n */\n stopKeydownEscapeHandler(event) {\n if (event.type === \"keydown\" && event.key === \"Escape\") {\n event.stopPropagation();\n }\n },\n async afterShow() {\n this.getPopoverContentElement().addEventListener(\"transitionend\", () => {\n this.$emit(\"afterShow\");\n }, { once: true, passive: true });\n this.removeFloatingVueAriaDescribedBy();\n await this.$nextTick();\n await this.useFocusTrap();\n this.addEscapeStopPropagation();\n },\n afterHide() {\n this.getPopoverContentElement()?.addEventListener(\"transitionend\", () => {\n this.$emit(\"afterHide\");\n }, { once: true, passive: true });\n this.clearFocusTrap();\n this.clearEscapeStopPropagation();\n }\n }\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcPopoverTriggerProvider = resolveComponent(\"NcPopoverTriggerProvider\");\n const _component_Dropdown = resolveComponent(\"Dropdown\");\n return openBlock(), createBlock(_component_Dropdown, {\n ref: \"popover\",\n shown: $data.internalShown,\n \"onUpdate:shown\": [\n _cache[0] || (_cache[0] = ($event) => $data.internalShown = $event),\n _cache[1] || (_cache[1] = ($event) => $data.internalShown = $event)\n ],\n \"arrow-padding\": 10,\n \"auto-hide\": !$props.noCloseOnClickOutside && $props.closeOnClickOutside,\n boundary: $props.boundary || void 0,\n container: $props.container,\n delay: $props.delay,\n distance: 10,\n \"handle-resize\": \"\",\n \"no-auto-focus\": true,\n placement: $options.internalPlacement,\n \"popper-class\": [_ctx.$style.ncPopover, $props.popoverBaseClass],\n \"popper-triggers\": $options.popperTriggers,\n \"popper-hide-triggers\": $options.popperHideTriggers,\n \"popper-show-triggers\": $options.popperShowTriggers,\n theme: $setup.theme,\n triggers: $options.internalTriggers,\n \"hide-triggers\": $options.hideTriggers,\n \"show-triggers\": $options.showTriggers,\n onApplyShow: $options.afterShow,\n onApplyHide: $options.afterHide\n }, {\n popper: withCtx((slotProps) => [\n renderSlot(_ctx.$slots, \"default\", normalizeProps(guardReactiveProps(slotProps)))\n ]),\n default: withCtx(() => [\n createVNode(_component_NcPopoverTriggerProvider, {\n shown: $data.internalShown,\n \"popup-role\": $props.popupRole\n }, {\n default: withCtx((slotProps) => [\n renderSlot(_ctx.$slots, \"trigger\", normalizeProps(guardReactiveProps(slotProps)))\n ]),\n _: 3\n }, 8, [\"shown\", \"popup-role\"])\n ]),\n _: 3\n }, 8, [\"shown\", \"auto-hide\", \"boundary\", \"container\", \"delay\", \"placement\", \"popper-class\", \"popper-triggers\", \"popper-hide-triggers\", \"popper-show-triggers\", \"theme\", \"triggers\", \"hide-triggers\", \"show-triggers\", \"onApplyShow\", \"onApplyHide\"]);\n}\nconst cssModules = {\n \"$style\": style0\n};\nconst NcPopover = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__cssModules\", cssModules]]);\nexport {\n NcPopover as N\n};\n//# sourceMappingURL=NcPopover-C-MTaPCs.mjs.map\n","const NC_ACTIONS_IS_SEMANTIC_MENU = /* @__PURE__ */ Symbol.for(\"NcActions:isSemanticMenu\");\nconst NC_ACTIONS_CLOSE_MENU = /* @__PURE__ */ Symbol.for(\"NcActions:closeMenu\");\nexport {\n NC_ACTIONS_CLOSE_MENU as N,\n NC_ACTIONS_IS_SEMANTIC_MENU as a\n};\n//# sourceMappingURL=useNcActions-BzPO2c4h.mjs.map\n","import '../assets/NcActions-DOI7rRa0.css';\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, Comment, Fragment, Text, warn, h, computed } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { u as useTrapStackControl } from \"./useTrapStackControl-B6cEicto.mjs\";\nimport { r as register, F as t4, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { N as NcButton } from \"./NcButton-CzpKEx4V.mjs\";\nimport { N as NcPopover } from \"./NcPopover-C-MTaPCs.mjs\";\nimport { N as NC_ACTIONS_CLOSE_MENU, a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nconst _sfc_main$1 = {\n name: \"DotsHorizontalIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon dots-horizontal-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst IconDotsHorizontal = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render]]);\nregister(t4);\nfunction isSlotPopulated(vnodes) {\n return Array.isArray(vnodes) && vnodes.some((node) => {\n if (node === null) {\n return false;\n } else if (typeof node === \"object\") {\n const vnode = node;\n if (vnode.type === Comment) {\n return false;\n } else if (vnode.type === Fragment && !isSlotPopulated(vnode.children)) {\n return false;\n } else if (vnode.type === Text && !vnode.children.trim()) {\n return false;\n }\n }\n return true;\n });\n}\nconst focusableSelector = \".focusable\";\nconst _sfc_main = {\n name: \"NcActions\",\n components: {\n NcButton,\n NcPopover\n },\n provide() {\n return {\n /**\n * NcActions can be used as:\n * - Application menu (has menu role)\n * - Navigation (has no specific role, should be used an element with navigation role)\n * - Popover with plain text or text inputs (has no specific role)\n * Depending on the usage (used items), the menu and its items should have different roles for a11y.\n * Provide the role for NcAction* components in the NcActions content.\n *\n * @type {import('vue').ComputedRef<boolean>}\n */\n [NC_ACTIONS_IS_SEMANTIC_MENU]: computed(() => this.actionsMenuSemanticType === \"menu\"),\n [NC_ACTIONS_CLOSE_MENU]: this.closeMenu\n };\n },\n props: {\n /**\n * Specify the open state of the popover menu\n */\n open: {\n type: Boolean,\n default: false\n },\n /**\n * This disables the internal open management,\n * so the actions menu only respects the `open` prop.\n * This is e.g. necessary for the NcAvatar component\n * to only open the actions menu after loading it's entries has finished.\n */\n manualOpen: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Force the name to show for single actions\n */\n forceName: {\n type: Boolean,\n default: false\n },\n /**\n * Specify the menu name\n */\n menuName: {\n type: String,\n default: null\n },\n /**\n * Apply primary styling for this menu\n */\n primary: {\n type: Boolean,\n default: false\n },\n /**\n * Icon to show for the toggle menu button\n * when more than one action is inside the actions component.\n * Only replace the default three-dot icon if really necessary.\n */\n defaultIcon: {\n type: String,\n default: \"\"\n },\n /**\n * Aria label for the actions menu.\n *\n * If `menuName` is defined this will not be used to prevent\n * any accessible name conflicts. This ensures that the\n * element can be activated via voice input.\n */\n ariaLabel: {\n type: String,\n default: t(\"Actions\")\n },\n /**\n * Wanted direction of the menu\n */\n placement: {\n type: String,\n default: \"bottom\"\n },\n /**\n * DOM element for the actions' popover boundaries\n */\n boundariesElement: {\n type: Element,\n default: () => document.getElementById(\"content-vue\") ?? document.querySelector(\"body\")\n },\n /**\n * Selector for the actions' popover container\n */\n container: {\n type: [Boolean, String, Object, Element],\n default: \"body\"\n },\n /**\n * Disabled state of the main button (single action or menu toggle)\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Display x items inline out of the dropdown menu\n * Will be ignored if `forceMenu` is set\n */\n inline: {\n type: Number,\n default: 0\n },\n /**\n * Specifies the button variant used for trigger and single actions buttons.\n *\n * If left empty, the default button style will be applied.\n *\n * @since 8.23.0\n */\n variant: {\n type: String,\n validator(value) {\n return [\"primary\", \"secondary\", \"tertiary\", \"tertiary-no-background\", \"tertiary-on-primary\", \"error\", \"warning\", \"success\"].includes(value);\n },\n default: null\n },\n /**\n * Specify the size used for trigger and single actions buttons.\n *\n * If left empty, the default button size will be applied.\n */\n size: {\n type: String,\n default: \"normal\",\n validator(value) {\n return [\"small\", \"normal\", \"large\"].includes(value);\n }\n }\n },\n emits: [\n \"click\",\n \"blur\",\n \"focus\",\n \"close\",\n \"closed\",\n \"open\",\n \"opened\",\n \"update:open\"\n ],\n setup() {\n const randomId = createElementId();\n return {\n randomId\n };\n },\n data() {\n return {\n opened: this.open,\n focusIndex: 0,\n /**\n * @type {'menu'|'navigation'|'dialog'|'tooltip'|'unknown'}\n */\n actionsMenuSemanticType: \"unknown\"\n };\n },\n computed: {\n triggerButtonVariant() {\n return this.variant || (this.primary ? \"primary\" : this.menuName ? \"secondary\" : \"tertiary\");\n },\n /**\n * A11y roles and keyboard navigation configuration depending on the semantic type\n */\n config() {\n const configs = {\n menu: {\n popupRole: \"menu\",\n withArrowNavigation: true,\n withTabNavigation: false,\n withFocusTrap: false\n },\n navigation: {\n popupRole: void 0,\n withArrowNavigation: false,\n withTabNavigation: true,\n withFocusTrap: false\n },\n dialog: {\n popupRole: \"dialog\",\n withArrowNavigation: false,\n withTabNavigation: true,\n withFocusTrap: true\n },\n tooltip: {\n popupRole: void 0,\n withArrowNavigation: false,\n withTabNavigation: false,\n withFocusTrap: false\n },\n // Due to Vue limitations, we sometimes cannot determine the true type\n // As a fallback use both arrow navigation and focus trap\n unknown: {\n popupRole: void 0,\n role: void 0,\n withArrowNavigation: true,\n withTabNavigation: false,\n withFocusTrap: true\n }\n };\n return configs[this.actionsMenuSemanticType];\n },\n withFocusTrap() {\n return this.config.withFocusTrap;\n }\n },\n watch: {\n // Watch parent prop\n open(state) {\n if (state === this.opened) {\n return;\n }\n this.opened = state;\n },\n opened() {\n if (this.opened) {\n document.body.addEventListener(\"keydown\", this.handleEscapePressed);\n } else {\n document.body.removeEventListener(\"keydown\", this.handleEscapePressed);\n }\n }\n },\n created() {\n useTrapStackControl(() => this.opened, {\n disabled: () => this.config.withFocusTrap\n });\n if (\"ariaHidden\" in this.$attrs) {\n warn(\"[NcActions]: Do not set the ariaHidden attribute as the root element will inherit the incorrect aria-hidden.\");\n }\n },\n methods: {\n /**\n * Get the name of the action component\n *\n * @param {import('vue').VNode} action - a vnode with a NcAction* component instance\n * @return {string} the name of the action component\n */\n getActionName(action) {\n return action?.type?.name;\n },\n /**\n * Do we have exactly one Action and\n * is it allowed as a standalone element?\n *\n * @param {import('vue').VNode} action The action to check\n * @return {boolean}\n */\n isValidSingleAction(action) {\n return [\"NcActionButton\", \"NcActionLink\", \"NcActionRouter\"].includes(this.getActionName(action));\n },\n isAction(action) {\n return this.getActionName(action)?.startsWith?.(\"NcAction\");\n },\n /**\n * Check whether a icon prop value is an URL or not\n *\n * @param {string} url The icon prop value\n */\n isIconUrl(url) {\n try {\n return !!new URL(url, url.startsWith(\"/\") ? window.location.origin : void 0);\n } catch {\n return false;\n }\n },\n // MENU STATE MANAGEMENT\n toggleMenu(state) {\n if (state) {\n this.openMenu();\n } else {\n this.closeMenu();\n }\n },\n openMenu() {\n if (this.opened) {\n return;\n }\n this.opened = true;\n this.$emit(\"update:open\", true);\n this.$emit(\"open\");\n },\n async closeMenu(returnFocus = true) {\n if (!this.opened) {\n return;\n }\n await this.$nextTick();\n this.opened = false;\n this.$refs.popover?.clearFocusTrap({ returnFocus });\n this.$emit(\"update:open\", false);\n this.$emit(\"close\");\n this.focusIndex = 0;\n if (returnFocus) {\n this.$refs.triggerButton?.$el.focus();\n }\n },\n /**\n * Called when popover is shown after the show delay\n */\n onOpened() {\n this.$nextTick(() => {\n this.focusFirstAction(null);\n this.$emit(\"opened\");\n });\n },\n onClosed() {\n this.$emit(\"closed\");\n },\n // MENU KEYS & FOCUS MANAGEMENT\n /**\n * @return {HTMLElement|null}\n */\n getCurrentActiveMenuItemElement() {\n return this.$refs.menu.querySelector(\"li.active\");\n },\n /**\n * @return {NodeList<HTMLElement>}\n */\n getFocusableMenuItemElements() {\n return this.$refs.menu.querySelectorAll(focusableSelector);\n },\n /**\n * Dispatches the keydown listener to different handlers\n *\n * @param {object} event The keydown event\n */\n onKeydown(event) {\n if (event.key === \"Tab\") {\n if (this.config.withFocusTrap) {\n return;\n }\n if (!this.config.withTabNavigation) {\n this.closeMenu(true);\n return;\n }\n event.preventDefault();\n const focusList = this.getFocusableMenuItemElements();\n const focusIndex = [...focusList].indexOf(document.activeElement);\n if (focusIndex === -1) {\n return;\n }\n const newFocusIndex = event.shiftKey ? focusIndex - 1 : focusIndex + 1;\n if (newFocusIndex < 0 || newFocusIndex === focusList.length) {\n this.closeMenu(true);\n }\n this.focusIndex = newFocusIndex;\n this.focusAction();\n return;\n }\n if (this.config.withArrowNavigation) {\n if (event.key === \"ArrowUp\") {\n this.focusPreviousAction(event);\n }\n if (event.key === \"ArrowDown\") {\n this.focusNextAction(event);\n }\n if (event.key === \"PageUp\") {\n this.focusFirstAction(event);\n }\n if (event.key === \"PageDown\") {\n this.focusLastAction(event);\n }\n }\n this.handleEscapePressed(event);\n },\n onTriggerKeydown(event) {\n if (event.key === \"Escape\") {\n if (this.actionsMenuSemanticType === \"tooltip\") {\n this.closeMenu();\n }\n }\n },\n handleEscapePressed(event) {\n if (event.key === \"Escape\") {\n this.closeMenu();\n event.preventDefault();\n }\n },\n removeCurrentActive() {\n const currentActiveElement = this.$refs.menu.querySelector(\"li.active\");\n if (currentActiveElement) {\n currentActiveElement.classList.remove(\"active\");\n }\n },\n focusAction() {\n const focusElement = this.getFocusableMenuItemElements()[this.focusIndex];\n if (focusElement) {\n this.removeCurrentActive();\n const liMenuParent = focusElement.closest(\"li.action\");\n focusElement.focus();\n if (liMenuParent) {\n liMenuParent.classList.add(\"active\");\n }\n }\n },\n focusPreviousAction(event) {\n if (this.opened) {\n if (this.focusIndex === 0) {\n this.focusLastAction(event);\n } else {\n this.preventIfEvent(event);\n this.focusIndex = this.focusIndex - 1;\n }\n this.focusAction();\n }\n },\n focusNextAction(event) {\n if (this.opened) {\n const indexLength = this.getFocusableMenuItemElements().length - 1;\n if (this.focusIndex === indexLength) {\n this.focusFirstAction(event);\n } else {\n this.preventIfEvent(event);\n this.focusIndex = this.focusIndex + 1;\n }\n this.focusAction();\n }\n },\n focusFirstAction(event) {\n if (this.opened) {\n this.preventIfEvent(event);\n const firstCheckedIndex = [...this.getFocusableMenuItemElements()].findIndex((button) => {\n return button.getAttribute(\"aria-checked\") === \"true\" && button.getAttribute(\"role\") === \"menuitemradio\";\n });\n this.focusIndex = firstCheckedIndex > -1 ? firstCheckedIndex : 0;\n this.focusAction();\n }\n },\n focusLastAction(event) {\n if (this.opened) {\n this.preventIfEvent(event);\n this.focusIndex = this.getFocusableMenuItemElements().length - 1;\n this.focusAction();\n }\n },\n preventIfEvent(event) {\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n },\n onFocus(event) {\n this.$emit(\"focus\", event);\n },\n onBlur(event) {\n this.$emit(\"blur\", event);\n if (this.actionsMenuSemanticType === \"tooltip\") {\n if (this.$refs.menu && this.getFocusableMenuItemElements().length === 0) {\n this.closeMenu(false);\n }\n }\n },\n onClick(event) {\n this.$emit(\"click\", event);\n }\n },\n /**\n * The render function to display the component\n *\n * @return {object|undefined} The created VNode\n */\n render() {\n const actions = [];\n const findActions = (vnodes, actions2) => {\n vnodes.forEach((vnode) => {\n if (this.isAction(vnode)) {\n actions2.push(vnode);\n return;\n }\n if (vnode.type === Fragment) {\n findActions(vnode.children, actions2);\n }\n });\n };\n findActions(this.$slots.default?.(), actions);\n if (actions.length === 0) {\n return;\n }\n let validInlineActions = actions.filter(this.isValidSingleAction);\n if (this.forceMenu && validInlineActions.length > 0 && this.inline > 0) {\n warn(\"Specifying forceMenu will ignore any inline actions rendering.\");\n validInlineActions = [];\n }\n const inlineActions = validInlineActions.slice(0, this.inline);\n const menuActions = actions.filter((action) => !inlineActions.includes(action));\n const menuItemsActions = [\"NcActionButton\", \"NcActionButtonGroup\", \"NcActionCheckbox\", \"NcActionRadio\"];\n const textInputActions = [\"NcActionInput\", \"NcActionTextEditable\"];\n const linkActions = [\"NcActionLink\", \"NcActionRouter\"];\n const hasTextInputAction = menuActions.some((action) => textInputActions.includes(this.getActionName(action)));\n const hasMenuItemAction = menuActions.some((action) => menuItemsActions.includes(this.getActionName(action)));\n const hasLinkAction = menuActions.some((action) => linkActions.includes(this.getActionName(action)));\n if (hasTextInputAction) {\n this.actionsMenuSemanticType = \"dialog\";\n } else if (hasMenuItemAction) {\n this.actionsMenuSemanticType = \"menu\";\n } else if (hasLinkAction) {\n this.actionsMenuSemanticType = \"navigation\";\n } else {\n const ncActions = actions.filter((action) => this.getActionName(action).startsWith(\"NcAction\"));\n if (ncActions.length === actions.length) {\n this.actionsMenuSemanticType = \"tooltip\";\n } else {\n this.actionsMenuSemanticType = \"unknown\";\n }\n }\n const renderInlineAction = (action) => {\n const iconProp = action?.props?.icon;\n const icon = action?.children?.icon?.()?.[0] ?? (this.isIconUrl(iconProp) ? h(\"img\", { class: \"action-item__menutoggle__icon\", src: iconProp, alt: \"\" }) : h(\"span\", { class: [\"icon\", iconProp] }));\n const text = action?.children?.default?.()?.[0]?.children?.trim();\n const buttonText = this.forceName ? text : \"\";\n let title = action?.props?.title;\n if (!(this.forceName || title)) {\n title = text;\n }\n const propsToForward = { ...action?.props ?? {} };\n const type = [\"submit\", \"reset\"].includes(propsToForward.type) ? propsToForward.modelValue : \"button\";\n delete propsToForward.modelValue;\n delete propsToForward.type;\n return h(\n NcButton,\n mergeProps(\n propsToForward,\n {\n class: \"action-item action-item--single\",\n \"aria-label\": action?.props?.[\"aria-label\"] || text,\n title,\n disabled: this.disabled || action?.props?.disabled,\n pressed: action?.props?.modelValue,\n size: this.size,\n type,\n // If it has a menuName, we use a secondary button\n variant: this.variant || (buttonText ? \"secondary\" : \"tertiary\"),\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n // forward any pressed state from NcButton just like NcActionButton does\n \"onUpdate:pressed\": action?.props?.[\"onUpdate:modelValue\"] ?? (() => {\n })\n }\n ),\n {\n default: () => buttonText,\n icon: () => icon\n }\n );\n };\n const renderActionsPopover = (actions2) => {\n const triggerIcon = isSlotPopulated(this.$slots.icon?.()) ? this.$slots.icon?.() : this.defaultIcon ? h(\"span\", { class: [\"icon\", this.defaultIcon] }) : h(IconDotsHorizontal, { size: 20 });\n const triggerRandomId = `${this.randomId}-trigger`;\n return h(\n NcPopover,\n {\n ref: \"popover\",\n delay: 0,\n shown: this.opened,\n placement: this.placement,\n boundary: this.boundariesElement,\n autoBoundaryMaxSize: true,\n container: this.container,\n ...this.manualOpen && {\n triggers: []\n },\n noCloseOnClickOutside: this.manualOpen,\n popoverBaseClass: \"action-item__popper\",\n popupRole: this.config.popupRole,\n setReturnFocus: this.config.withFocusTrap ? this.$refs.triggerButton?.$el : void 0,\n noFocusTrap: !this.config.withFocusTrap,\n \"onUpdate:shown\": this.toggleMenu,\n onAfterShow: this.onOpened,\n onAfterClose: this.onClosed\n },\n {\n trigger: () => h(NcButton, {\n id: triggerRandomId,\n class: \"action-item__menutoggle\",\n disabled: this.disabled,\n size: this.size,\n variant: this.triggerButtonVariant,\n ref: \"triggerButton\",\n \"aria-label\": this.menuName ? null : this.ariaLabel,\n // 'aria-controls' should only present together with a valid aria-haspopup\n \"aria-controls\": this.opened && this.config.popupRole ? this.randomId : null,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onClick: this.onClick,\n onKeydown: this.onTriggerKeydown\n }, {\n icon: () => triggerIcon,\n default: () => this.menuName\n }),\n default: () => h(\"div\", {\n class: {\n open: this.opened\n },\n tabindex: \"-1\",\n onKeydown: this.onKeydown,\n ref: \"menu\"\n }, [\n h(\"ul\", {\n id: this.randomId,\n tabindex: \"-1\",\n ref: \"menuList\",\n role: this.config.popupRole,\n // For most roles a label is required (dialog, menu), but also in general nothing speaks against labelling a list.\n // It is even recommended to do so.\n \"aria-labelledby\": triggerRandomId,\n \"aria-modal\": this.actionsMenuSemanticType === \"dialog\" ? \"true\" : void 0\n }, [\n actions2\n ])\n ])\n }\n );\n };\n if (actions.length === 1 && validInlineActions.length === 1 && !this.forceMenu) {\n return renderInlineAction(actions[0]);\n }\n this.$nextTick(() => {\n if (this.opened && this.$refs.menu) {\n const isAnyActive = this.$refs.menu.querySelector(\"li.active\") || [];\n if (isAnyActive.length === 0) {\n this.focusFirstAction();\n }\n }\n });\n if (inlineActions.length > 0 && this.inline > 0) {\n return h(\n \"div\",\n {\n class: [\n \"action-items\",\n `action-item--${this.triggerButtonVariant}`\n ]\n },\n [\n // Render inline actions\n ...inlineActions.map(renderInlineAction),\n // render the rest within the popover menu\n menuActions.length > 0 ? h(\n \"div\",\n {\n class: [\n \"action-item\",\n {\n \"action-item--open\": this.opened\n }\n ]\n },\n [renderActionsPopover(menuActions)]\n ) : null\n ]\n );\n }\n return h(\n \"div\",\n {\n class: [\n \"action-item action-item--default-popover\",\n `action-item--${this.triggerButtonVariant}`,\n {\n \"action-item--open\": this.opened\n }\n ]\n },\n [\n renderActionsPopover(actions)\n ]\n );\n }\n};\nconst NcActions = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-5f7eed6b\"]]);\nexport {\n IconDotsHorizontal as I,\n NcActions as N,\n isSlotPopulated as i\n};\n//# sourceMappingURL=NcActions-4R7icatI.mjs.map\n","import { formatRelativeTime, getCanonicalLocale } from \"@nextcloud/l10n\";\nimport { computed, toValue, ref, watchEffect, onUnmounted, readonly } from \"vue\";\nimport { r as register, d as t2, a as t } from \"../../chunks/_l10n-CgsPi8nC.mjs\";\nregister(t2);\nconst FEW_SECONDS_AGO = {\n long: t(\"a few seconds ago\"),\n short: t(\"seconds ago\"),\n // FOR TRANSLATORS: Shorter version of 'a few seconds ago'\n narrow: t(\"sec. ago\")\n // FOR TRANSLATORS: If possible in your language an even shorter version of 'a few seconds ago'\n};\nfunction useFormatRelativeTime(timestamp = Date.now(), opts = {}) {\n let timeoutId;\n const date = computed(() => new Date(toValue(timestamp)));\n const options = computed(() => {\n const { language, relativeTime: relativeTime2, ignoreSeconds } = toValue(opts);\n return {\n ...language && { language },\n ...relativeTime2 && { relativeTime: relativeTime2 },\n ignoreSeconds: ignoreSeconds ? FEW_SECONDS_AGO[relativeTime2 || \"long\"] : false\n };\n });\n const relativeTime = ref(\"\");\n watchEffect(() => updateRelativeTime());\n function updateRelativeTime() {\n relativeTime.value = formatRelativeTime(date.value, options.value);\n if (toValue(opts).update !== false) {\n const diff = Math.abs(Date.now() - new Date(toValue(timestamp)).getTime());\n const interval = diff > 12e4 || options.value.ignoreSeconds ? Math.min(diff / 60, 18e5) : 1e3;\n timeoutId = window.setTimeout(updateRelativeTime, interval);\n }\n }\n onUnmounted(() => timeoutId && window.clearTimeout(timeoutId));\n return readonly(relativeTime);\n}\nfunction useFormatTime(timestamp, opts) {\n const options = computed(() => ({\n locale: getCanonicalLocale(),\n format: { dateStyle: \"short\", timeStyle: \"medium\" },\n ...toValue(opts)\n }));\n const formatter = computed(() => new Intl.DateTimeFormat(options.value.locale, options.value.format));\n return computed(() => formatter.value.format(toValue(timestamp)));\n}\nexport {\n useFormatRelativeTime,\n useFormatTime\n};\n//# sourceMappingURL=index.mjs.map\n","const isMac = /mac|ipad|iphone|darwin/i.test(navigator.userAgent);\nexport {\n isMac as i\n};\n//# sourceMappingURL=platform-CC2ecGvV.mjs.map\n","import { onKeyStroke } from \"@vueuse/core\";\nimport { i as isMac } from \"../../chunks/platform-CC2ecGvV.mjs\";\nconst disableKeyboardShortcuts = window.OCP?.Accessibility?.disableKeyboardShortcuts?.();\nconst derivedKeysRegex = /^[a-zA-Z0-9]$/;\nconst nonAsciiPrintableRegex = /^[^\\x20-\\x7F]$/;\nfunction shouldIgnoreEvent(event, options) {\n if (!(event.target instanceof HTMLElement) || event.target instanceof HTMLInputElement || event.target instanceof HTMLTextAreaElement || event.target instanceof HTMLSelectElement || event.target.isContentEditable) {\n return true;\n }\n if (options.allowInModal) {\n return false;\n }\n return Array.from(document.getElementsByClassName(\"modal-mask\")).filter((el) => el.checkVisibility()).length > 0;\n}\nfunction eventHandler(callback, options) {\n return (event) => {\n const ctrlKeyPressed = isMac ? event.metaKey : event.ctrlKey;\n if (ctrlKeyPressed !== Boolean(options.ctrl)) {\n return;\n } else if (event.altKey !== Boolean(options.alt)) {\n return;\n } else if (options.shift !== void 0 && event.shiftKey !== Boolean(options.shift)) {\n return;\n } else if (shouldIgnoreEvent(event, options)) {\n return;\n }\n if (options.prevent) {\n event.preventDefault();\n }\n if (options.stop) {\n event.stopPropagation();\n }\n callback(event);\n };\n}\nfunction useHotKey(keysOrFilter, callback = () => {\n}, options = {}) {\n if (disableKeyboardShortcuts) {\n return () => {\n };\n }\n const validateKeyEvent = (event, key) => {\n if (event.key === key) {\n return true;\n }\n if (options.caseSensitive) {\n const isKeyInLowerCase = key === key.toLowerCase();\n const isEventKeyInLowerCase = event.key === event.key.toLowerCase();\n if (isKeyInLowerCase !== isEventKeyInLowerCase) {\n return false;\n }\n }\n if (derivedKeysRegex.test(key) && nonAsciiPrintableRegex.test(event.key)) {\n return event.code.replace(/^(?:Key|Digit|Numpad)/, \"\") === key.toUpperCase();\n }\n return event.key.toLowerCase() === key.toLowerCase();\n };\n const keyFilter = (event) => {\n if (typeof keysOrFilter === \"function\") {\n return keysOrFilter(event);\n } else if (typeof keysOrFilter === \"string\") {\n return validateKeyEvent(event, keysOrFilter);\n } else if (Array.isArray(keysOrFilter)) {\n return keysOrFilter.some((key) => validateKeyEvent(event, key));\n } else {\n return true;\n }\n };\n const stopKeyDown = onKeyStroke(keyFilter, eventHandler(callback, options), {\n eventName: \"keydown\",\n dedupe: true,\n passive: !options.prevent\n });\n const stopKeyUp = options.push ? onKeyStroke(keyFilter, eventHandler(callback, options), {\n eventName: \"keyup\",\n passive: !options.prevent\n }) : () => {\n };\n return () => {\n stopKeyDown();\n stopKeyUp();\n };\n}\nexport {\n useHotKey\n};\n//# sourceMappingURL=index.mjs.map\n","function checkIfDarkTheme(el = document.body) {\n const backgroundInvertIfDark = window.getComputedStyle(el).getPropertyValue(\"--background-invert-if-dark\");\n if (backgroundInvertIfDark !== void 0) {\n return backgroundInvertIfDark === \"invert(100%)\";\n }\n return false;\n}\nconst isDarkTheme = checkIfDarkTheme();\nexport {\n checkIfDarkTheme,\n isDarkTheme\n};\n//# sourceMappingURL=index.mjs.map\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst INJECTION_KEY_THEME = /* @__PURE__ */ Symbol.for(\"nc:theme:enforced\");\nexport {\n INJECTION_KEY_THEME as I\n};\n//# sourceMappingURL=constants-wIEKSp2G.mjs.map\n","import { createSharedComposable, usePreferredDark, useMutationObserver } from \"@vueuse/core\";\nimport { computed, toValue, ref, watch, readonly, inject } from \"vue\";\nimport { checkIfDarkTheme } from \"../../functions/isDarkTheme/index.mjs\";\nimport { I as INJECTION_KEY_THEME } from \"../../chunks/constants-wIEKSp2G.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction useIsDarkThemeElement(el) {\n const element = computed(() => toValue(el) ?? document.body);\n const isDarkTheme = ref(checkIfDarkTheme(element.value));\n const isDarkSystemTheme = usePreferredDark();\n function updateIsDarkTheme() {\n isDarkTheme.value = checkIfDarkTheme(element.value);\n }\n useMutationObserver(element, updateIsDarkTheme, { attributes: true });\n watch(element, updateIsDarkTheme);\n watch(isDarkSystemTheme, updateIsDarkTheme, { immediate: true });\n return readonly(isDarkTheme);\n}\nconst useInternalIsDarkTheme = createSharedComposable(() => useIsDarkThemeElement());\nfunction useIsDarkTheme() {\n const isDarkTheme = useInternalIsDarkTheme();\n const enforcedTheme = inject(INJECTION_KEY_THEME, void 0);\n return computed(() => {\n if (enforcedTheme?.value) {\n return enforcedTheme.value === \"dark\";\n }\n return isDarkTheme.value;\n });\n}\nexport {\n useIsDarkTheme,\n useIsDarkThemeElement\n};\n//# sourceMappingURL=index.mjs.map\n","import { ref, readonly } from \"vue\";\nconst isFullscreen = ref(checkIfIsFullscreen());\nwindow.addEventListener(\"resize\", () => {\n isFullscreen.value = checkIfIsFullscreen();\n});\nfunction checkIfIsFullscreen() {\n return window.outerHeight === window.screen.height;\n}\nfunction useIsFullscreen() {\n return readonly(isFullscreen);\n}\nexport {\n useIsFullscreen\n};\n//# sourceMappingURL=index.mjs.map\n","import { ref, readonly } from \"vue\";\nconst MOBILE_BREAKPOINT = 1024;\nconst MOBILE_SMALL_BREAKPOINT = MOBILE_BREAKPOINT / 2;\nconst isLessThanBreakpoint = (breakpoint) => document.documentElement.clientWidth < breakpoint;\nconst isMobile = ref(isLessThanBreakpoint(MOBILE_BREAKPOINT));\nconst isSmallMobile = ref(isLessThanBreakpoint(MOBILE_SMALL_BREAKPOINT));\nwindow.addEventListener(\"resize\", () => {\n isMobile.value = isLessThanBreakpoint(MOBILE_BREAKPOINT);\n isSmallMobile.value = isLessThanBreakpoint(MOBILE_SMALL_BREAKPOINT);\n}, { passive: true });\nfunction useIsMobile() {\n return readonly(isMobile);\n}\nfunction useIsSmallMobile() {\n return readonly(isSmallMobile);\n}\nexport {\n MOBILE_BREAKPOINT,\n MOBILE_SMALL_BREAKPOINT,\n useIsMobile,\n useIsSmallMobile\n};\n//# sourceMappingURL=index.mjs.map\n","import '../assets/NcModal-Du-f0B7Y.css';\nimport { getCurrentInstance, warn, defineComponent, mergeModels, useCssVars, computed, useModel, useTemplateRef, onMounted, onUnmounted, watch, toRef, ref, watchEffect, nextTick, createBlock, openBlock, Teleport, createVNode, Transition, withCtx, withDirectives, createElementVNode, mergeProps, unref, createElementBlock, createCommentVNode, toDisplayString, normalizeClass, renderSlot, withModifiers, vShow } from \"vue\";\nimport { E as mdiPause, F as mdiPlay, b as mdiClose, z as mdiChevronLeft, c as mdiChevronRight } from \"./mdi-CpchYUUV.mjs\";\nimport { useIntervalFn, useSwipe } from \"@vueuse/core\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { N as NcActions } from \"./NcActions-4R7icatI.mjs\";\nimport { N as NcButton } from \"./NcButton-CzpKEx4V.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport \"../composables/useFormatDateTime/index.mjs\";\nimport { useHotKey } from \"../composables/useHotKey/index.mjs\";\nimport \"../composables/useIsDarkTheme/index.mjs\";\nimport \"../composables/useIsFullscreen/index.mjs\";\nimport \"../composables/useIsMobile/index.mjs\";\nimport { r as register, D as t36, A as t19, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { i as isRtl } from \"./rtl-v0UOPAM7.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction getSameNodeParent(instance) {\n if (!instance.parent) {\n return null;\n }\n if (\"vapor\" in instance || \"vapor\" in instance.parent) {\n warn(\"Vapor instances are not supported in useScopeIdAttrs :(\");\n return null;\n }\n if (instance.parent.subTree !== instance.vnode) {\n return null;\n }\n return instance.parent;\n}\nfunction getSameNodeAncestors(instance) {\n const ancestors = [instance];\n let parent = getSameNodeParent(instance);\n while (parent) {\n ancestors.push(parent);\n parent = getSameNodeParent(parent);\n }\n return ancestors;\n}\nfunction useScopeIdAttrs() {\n const instance = getCurrentInstance();\n if (!instance) {\n throw new Error(\"useScopeId must be called within a setup context\");\n }\n const sameNodeAncestors = getSameNodeAncestors(instance);\n const scopeIds = sameNodeAncestors.map((instance2) => instance2.vnode.scopeId).filter(Boolean);\n const scopeIdAttrs = Object.fromEntries(scopeIds.map((scopeId) => [scopeId, \"\"]));\n return scopeIdAttrs;\n}\nregister(t19, t36);\nconst _hoisted_1 = [\"aria-labelledby\", \"aria-describedby\"];\nconst _hoisted_2 = [\"data-theme-light\", \"data-theme-dark\"];\nconst _hoisted_3 = [\"id\"];\nconst _hoisted_4 = { class: \"icons-menu\" };\nconst _hoisted_5 = [\"title\"];\nconst _hoisted_6 = [\"id\"];\nconst _hoisted_7 = { class: \"modal-container__content\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcModal\",\n props: /* @__PURE__ */ mergeModels({\n name: { default: \"\" },\n hasPrevious: { type: Boolean },\n hasNext: { type: Boolean },\n outTransition: { type: Boolean },\n enableSlideshow: { type: Boolean },\n slideshowDelay: { default: 5e3 },\n slideshowPaused: { type: Boolean },\n disableSwipe: { type: Boolean },\n spreadNavigation: { type: Boolean },\n size: { default: \"normal\" },\n noClose: { type: Boolean },\n closeOnClickOutside: { type: Boolean },\n dark: { type: Boolean },\n lightBackdrop: { type: Boolean },\n container: { default: \"body\" },\n closeButtonOutside: { type: Boolean },\n additionalTrapElements: { default: () => [] },\n inlineActions: { default: 0 },\n labelId: { default: \"\" },\n setReturnFocus: { default: void 0 }\n }, {\n \"show\": { type: Boolean, ...{ default: true } },\n \"showModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"next\", \"previous\", \"close\", \"update:show\"], [\"update:show\"]),\n setup(__props, { emit: __emit }) {\n useCssVars((_ctx) => ({\n \"bf9ee90a\": cssSlideshowDelay.value\n }));\n const showModal = useModel(__props, \"show\");\n const props = __props;\n const emit = __emit;\n const scopeIdAttrs = useScopeIdAttrs();\n const modalId = createElementId();\n const maskElement = useTemplateRef(\"mask\");\n let focusTrap;\n onMounted(() => useFocusTrap());\n onUnmounted(() => clearFocusTrap());\n watch(() => props.additionalTrapElements, (elements) => {\n if (focusTrap) {\n focusTrap.updateContainerElements([maskElement.value, ...elements]);\n }\n });\n const {\n isActive: isPlaying,\n pause: stopSlideshow,\n resume: startSlideshow\n } = useIntervalFn(nextSlide, toRef(() => props.slideshowDelay), { immediate: false });\n const animationKey = ref(0);\n const runSlideshow = ref(false);\n watchEffect(() => {\n if (runSlideshow.value && !props.slideshowPaused) {\n startSlideshow();\n } else if (isPlaying.value) {\n stopSlideshow();\n }\n });\n const cssSlideshowDelay = computed(() => `${props.slideshowDelay}ms`);\n const { stop: stopSwipe } = useSwipe(maskElement, {\n onSwipeEnd: handleSwipe\n });\n onUnmounted(stopSwipe);\n useHotKey(\"Escape\", () => {\n const trapStack = getTrapStack();\n if (trapStack.at(-1) === focusTrap) {\n close();\n }\n }, { allowInModal: true });\n useHotKey([\"ArrowLeft\", \"ArrowRight\"], (event) => {\n if (document.activeElement && !maskElement.value.contains(document.activeElement)) {\n return;\n }\n if (event.key === \"ArrowLeft\" !== isRtl) {\n previousSlide();\n } else {\n nextSlide();\n }\n }, { allowInModal: true });\n onMounted(() => {\n if (!props.name && !props.labelId) {\n warn(\"[NcModal] You need either set the name or set a `labelId` for accessibility.\");\n }\n });\n function nextSlide(event) {\n if (!props.hasNext) {\n runSlideshow.value = false;\n return;\n }\n if (event && isPlaying.value) {\n restartSlideshow();\n }\n emit(\"next\", event);\n }\n function previousSlide(event) {\n if (!props.hasPrevious) {\n return;\n }\n if (event && isPlaying.value) {\n restartSlideshow();\n }\n emit(\"previous\", event);\n }\n function handleSwipe(e, direction) {\n if (!props.disableSwipe) {\n if (direction !== \"left\" && direction !== \"right\") {\n return;\n }\n if (direction === \"left\" !== isRtl) {\n nextSlide(e);\n } else {\n previousSlide(e);\n }\n }\n }\n function restartSlideshow() {\n stopSlideshow();\n startSlideshow();\n animationKey.value++;\n }\n function close(event) {\n if (props.noClose) {\n return;\n }\n showModal.value = false;\n setTimeout(() => {\n emit(\"close\", event);\n }, 300);\n }\n function handleClickModalWrapper(event) {\n if (props.closeOnClickOutside) {\n close(event);\n }\n }\n async function useFocusTrap() {\n if (!showModal.value || focusTrap) {\n return;\n }\n await nextTick();\n const options = {\n allowOutsideClick: true,\n fallbackFocus: maskElement.value,\n trapStack: getTrapStack(),\n // Esc can be used without stop in content or additionalTrapElements where it should not deactivate modal's focus trap.\n // Focus trap is deactivated on modal close anyway.\n escapeDeactivates: false,\n setReturnFocus: props.setReturnFocus\n };\n focusTrap = createFocusTrap([maskElement.value, ...props.additionalTrapElements], options);\n focusTrap.activate();\n }\n function clearFocusTrap() {\n if (!focusTrap) {\n return;\n }\n focusTrap?.deactivate();\n focusTrap = void 0;\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(Teleport, {\n disabled: _ctx.container === null,\n to: _ctx.container\n }, [\n createVNode(Transition, {\n name: \"fade\",\n appear: \"\",\n onAfterEnter: useFocusTrap,\n onBeforeLeave: clearFocusTrap\n }, {\n default: withCtx(() => [\n withDirectives(createElementVNode(\"div\", mergeProps({ ..._ctx.$attrs, ...unref(scopeIdAttrs) }, {\n ref: \"mask\",\n class: [\"modal-mask\", {\n \"modal-mask--opaque\": _ctx.dark || _ctx.closeButtonOutside || _ctx.hasPrevious || _ctx.hasNext,\n \"modal-mask--light\": _ctx.lightBackdrop\n }],\n role: \"dialog\",\n \"aria-modal\": \"true\",\n \"aria-labelledby\": _ctx.labelId || `modal-name-${unref(modalId)}`,\n \"aria-describedby\": \"modal-description-\" + unref(modalId),\n tabindex: \"-1\"\n }), [\n createVNode(Transition, {\n name: \"fade-visibility\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", {\n class: \"modal-header\",\n \"data-theme-light\": _ctx.lightBackdrop,\n \"data-theme-dark\": !_ctx.lightBackdrop\n }, [\n _ctx.name.trim() !== \"\" ? (openBlock(), createElementBlock(\"h2\", {\n key: 0,\n id: \"modal-name-\" + unref(modalId),\n class: \"modal-header__name\"\n }, toDisplayString(_ctx.name), 9, _hoisted_3)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_4, [\n _ctx.hasNext && _ctx.enableSlideshow ? (openBlock(), createElementBlock(\"button\", {\n key: 0,\n class: normalizeClass([\"play-pause-icons\", { \"play-pause-icons--paused\": _ctx.slideshowPaused }]),\n title: unref(isPlaying) ? unref(t)(\"Pause slideshow\") : unref(t)(\"Start slideshow\"),\n type: \"button\",\n onClick: _cache[0] || (_cache[0] = ($event) => runSlideshow.value = !runSlideshow.value)\n }, [\n createVNode(NcIconSvgWrapper, {\n class: \"play-pause-icons__icon\",\n inline: \"\",\n name: unref(isPlaying) ? unref(t)(\"Pause slideshow\") : unref(t)(\"Start slideshow\"),\n path: unref(isPlaying) ? unref(mdiPause) : unref(mdiPlay)\n }, null, 8, [\"name\", \"path\"]),\n unref(isPlaying) ? (openBlock(), createElementBlock(\"svg\", {\n key: `${unref(modalId)}-animation-${animationKey.value}`,\n class: \"progress-ring\",\n height: \"50\",\n width: \"50\"\n }, [..._cache[1] || (_cache[1] = [\n createElementVNode(\"circle\", {\n class: \"progress-ring__circle\",\n stroke: \"white\",\n \"stroke-width\": \"2\",\n fill: \"transparent\",\n r: \"15\",\n cx: \"25\",\n cy: \"25\"\n }, null, -1)\n ])])) : createCommentVNode(\"\", true)\n ], 10, _hoisted_5)) : createCommentVNode(\"\", true),\n createVNode(NcActions, {\n class: \"header-actions\",\n inline: _ctx.inlineActions\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"inline\"]),\n !_ctx.noClose && _ctx.closeButtonOutside ? (openBlock(), createBlock(NcButton, {\n key: 1,\n \"aria-label\": unref(t)(\"Close\"),\n class: \"header-close\",\n variant: \"tertiary\",\n onClick: close\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, { path: unref(mdiClose) }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\"])) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2)\n ]),\n _: 3\n }),\n createVNode(Transition, {\n name: `modal-${_ctx.outTransition ? \"out\" : \"in\"}`,\n appear: \"\"\n }, {\n default: withCtx(() => [\n withDirectives(createElementVNode(\"div\", {\n class: normalizeClass([\"modal-wrapper\", [\n `modal-wrapper--${_ctx.size}`,\n { \"modal-wrapper--spread-navigation\": _ctx.spreadNavigation }\n ]]),\n onMousedown: withModifiers(handleClickModalWrapper, [\"self\"])\n }, [\n createVNode(Transition, {\n name: \"fade-visibility\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n withDirectives(createVNode(NcButton, {\n \"aria-label\": unref(t)(\"Previous\"),\n class: \"prev\",\n variant: \"tertiary-no-background\",\n onClick: previousSlide\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n directional: \"\",\n path: unref(mdiChevronLeft),\n size: 40\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\"]), [\n [vShow, _ctx.hasPrevious]\n ])\n ]),\n _: 1\n }),\n createElementVNode(\"div\", {\n id: \"modal-description-\" + unref(modalId),\n class: \"modal-container\"\n }, [\n createElementVNode(\"div\", _hoisted_7, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n !_ctx.noClose && !_ctx.closeButtonOutside ? (openBlock(), createBlock(NcButton, {\n key: 0,\n \"aria-label\": unref(t)(\"Close\"),\n class: \"modal-container__close\",\n variant: \"tertiary\",\n onClick: close\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, { path: unref(mdiClose) }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\"])) : createCommentVNode(\"\", true)\n ], 8, _hoisted_6),\n createVNode(Transition, {\n name: \"fade-visibility\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n withDirectives(createVNode(NcButton, {\n \"aria-label\": unref(t)(\"Next\"),\n class: \"next\",\n variant: \"tertiary-no-background\",\n onClick: nextSlide\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n directional: \"\",\n path: unref(mdiChevronRight),\n size: 40\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\"]), [\n [vShow, _ctx.hasNext]\n ])\n ]),\n _: 1\n })\n ], 34), [\n [vShow, showModal.value]\n ])\n ]),\n _: 3\n }, 8, [\"name\"])\n ], 16, _hoisted_1), [\n [vShow, showModal.value]\n ])\n ]),\n _: 3\n })\n ], 8, [\"disabled\", \"to\"]);\n };\n }\n});\nconst NcModal = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-99ca734a\"]]);\nexport {\n NcModal as N\n};\n//# sourceMappingURL=NcModal-D00OJZV2.mjs.map\n","import '../assets/NcDialog-D3fAX1Fs.css';\nimport { defineComponent, mergeModels, useModel, useSlots, useTemplateRef, computed, ref, createBlock, createCommentVNode, openBlock, unref, mergeProps, withCtx, createElementVNode, toDisplayString, resolveDynamicComponent, toHandlers, normalizeClass, createElementBlock, renderSlot, Fragment, renderList } from \"vue\";\nimport { useElementSize } from \"@vueuse/core\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcDialogButton.vue_vue_type_script_setup_true_lang-CYpktNKA.mjs\";\nimport { N as NcModal } from \"./NcModal-D00OJZV2.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"id\", \"textContent\"];\nconst _hoisted_2 = [\"aria-label\", \"aria-labelledby\"];\nconst _hoisted_3 = { class: \"dialog__text\" };\nconst _hoisted_4 = { class: \"dialog__actions\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcDialog\",\n props: /* @__PURE__ */ mergeModels({\n name: {},\n message: { default: \"\" },\n additionalTrapElements: { default: () => [] },\n container: { default: \"body\" },\n size: { default: \"small\" },\n buttons: { default: () => [] },\n isForm: { type: Boolean },\n noClose: { type: Boolean },\n closeOnClickOutside: { type: Boolean },\n outTransition: { type: Boolean },\n navigationAriaLabel: { default: \"\" },\n navigationAriaLabelledby: { default: \"\" },\n contentClasses: { default: \"\" },\n dialogClasses: { default: \"\" },\n navigationClasses: { default: \"\" }\n }, {\n \"open\": { type: Boolean, ...{ default: true } },\n \"openModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"closing\", \"reset\", \"submit\"], [\"update:open\"]),\n setup(__props, { emit: __emit }) {\n const open = useModel(__props, \"open\");\n const props = __props;\n const emit = __emit;\n const slots = useSlots();\n const wrapperElement = useTemplateRef(\"wrapper\");\n const { width: dialogWidth } = useElementSize(wrapperElement, { width: 900, height: 0 });\n const isNavigationCollapsed = computed(() => dialogWidth.value < 876);\n const hasNavigation = computed(() => slots?.navigation !== void 0);\n const navigationId = createElementId();\n const navigationAriaLabelAttr = computed(() => props.navigationAriaLabel || void 0);\n const navigationAriaLabelledbyAttr = computed(() => {\n if (props.navigationAriaLabel) {\n return void 0;\n }\n return props.navigationAriaLabelledby || navigationId;\n });\n const dialogRootElement = useTemplateRef(\"dialogElement\");\n const dialogTagName = computed(() => props.isForm && !hasNavigation.value ? \"form\" : \"div\");\n const dialogListeners = computed(() => {\n if (dialogTagName.value !== \"form\") {\n return {};\n }\n return {\n /**\n * @param event - Form submit event\n */\n submit(event) {\n event.preventDefault();\n emit(\"submit\", event);\n },\n /**\n * @param event - Form submit event\n */\n reset(event) {\n event.preventDefault();\n emit(\"reset\", event);\n }\n };\n });\n const showModal = ref(true);\n function handleButtonClose(button, result) {\n if (button.type === \"submit\" && dialogTagName.value === \"form\" && \"reportValidity\" in dialogRootElement.value && !dialogRootElement.value.reportValidity()) {\n return;\n }\n handleClosing(result);\n window.setTimeout(() => handleClosed(), 300);\n }\n function handleClosing(result) {\n showModal.value = false;\n emit(\"closing\", result);\n }\n function handleClosed() {\n showModal.value = true;\n open.value = false;\n }\n const modalProps = computed(() => ({\n noClose: props.noClose,\n container: props.container === void 0 ? \"body\" : props.container,\n // we do not pass the name as we already have the name as the headline\n // name: props.name,\n // But we need to set the correct label id so the dialog is labelled\n labelId: navigationId,\n size: props.size,\n show: open.value && showModal.value,\n outTransition: props.outTransition,\n closeOnClickOutside: props.closeOnClickOutside,\n additionalTrapElements: props.additionalTrapElements\n }));\n return (_ctx, _cache) => {\n return open.value ? (openBlock(), createBlock(unref(NcModal), mergeProps({\n key: 0,\n class: \"dialog__modal\",\n \"enable-slideshow\": false,\n \"disable-swipe\": \"\"\n }, modalProps.value, {\n onClose: handleClosed,\n \"onUpdate:show\": _cache[0] || (_cache[0] = ($event) => handleClosing())\n }), {\n default: withCtx(() => [\n createElementVNode(\"h2\", {\n id: unref(navigationId),\n class: \"dialog__name\",\n textContent: toDisplayString(_ctx.name)\n }, null, 8, _hoisted_1),\n (openBlock(), createBlock(resolveDynamicComponent(dialogTagName.value), mergeProps({\n ref: \"dialogElement\",\n class: [\"dialog\", _ctx.dialogClasses]\n }, toHandlers(dialogListeners.value)), {\n default: withCtx(() => [\n createElementVNode(\"div\", {\n ref: \"wrapper\",\n class: normalizeClass([\"dialog__wrapper\", [{ \"dialog__wrapper--collapsed\": isNavigationCollapsed.value }]])\n }, [\n hasNavigation.value ? (openBlock(), createElementBlock(\"nav\", {\n key: 0,\n class: normalizeClass([\"dialog__navigation\", _ctx.navigationClasses]),\n \"aria-label\": navigationAriaLabelAttr.value,\n \"aria-labelledby\": navigationAriaLabelledbyAttr.value\n }, [\n renderSlot(_ctx.$slots, \"navigation\", { isCollapsed: isNavigationCollapsed.value }, void 0, true)\n ], 10, _hoisted_2)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([\"dialog__content\", _ctx.contentClasses])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createElementVNode(\"p\", _hoisted_3, toDisplayString(_ctx.message), 1)\n ], true)\n ], 2)\n ], 2),\n createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"actions\", {}, () => [\n (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.buttons, (button, idx) => {\n return openBlock(), createBlock(unref(_sfc_main$1), mergeProps({ key: idx }, { ref_for: true }, button, {\n onClick: (_, result) => handleButtonClose(button, result)\n }), null, 16, [\"onClick\"]);\n }), 128))\n ], true)\n ])\n ]),\n _: 3\n }, 16, [\"class\"]))\n ]),\n _: 3\n }, 16)) : createCommentVNode(\"\", true);\n };\n }\n});\nconst NcDialog = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-ca0b8eba\"]]);\nexport {\n NcDialog as N\n};\n//# sourceMappingURL=NcDialog-BHl_LOs_.mjs.map\n","const ActionGlobalMixin = {\n beforeUpdate() {\n this.text = this.getText();\n },\n data() {\n return {\n // $slots are not reactive.\n // We need to update the content manually\n text: this.getText()\n };\n },\n computed: {\n isLongText() {\n return this.text && this.text.trim().length > 20;\n }\n },\n methods: {\n getText() {\n return this.$slots.default?.()[0].children?.trim?.() || \"\";\n }\n }\n};\nexport {\n ActionGlobalMixin as A\n};\n//# sourceMappingURL=actionGlobal-BZFdtdJL.mjs.map\n","import { warn } from \"vue\";\nimport { N as NC_ACTIONS_CLOSE_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { A as ActionGlobalMixin } from \"./actionGlobal-BZFdtdJL.mjs\";\nconst ActionTextMixin = {\n mixins: [ActionGlobalMixin],\n props: {\n /**\n * Icon to show with the action, can be either a CSS class or an URL\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: \"\"\n },\n /**\n * Whether we close the Actions menu after the click\n */\n closeAfterClick: {\n type: Boolean,\n default: false\n },\n /**\n * Aria label for the button. Not needed if the button has text.\n */\n ariaLabel: {\n type: String,\n default: null\n }\n },\n inject: {\n closeMenu: {\n from: NC_ACTIONS_CLOSE_MENU\n }\n },\n emits: [\n \"click\"\n ],\n created() {\n if (\"ariaHidden\" in this.$attrs) {\n warn(\"[NcAction*]: Do not set the ariaHidden attribute as the root element will inherit the incorrect aria-hidden.\");\n }\n },\n computed: {\n /**\n * Check if icon prop is an URL\n *\n * @return {boolean} Whether the icon prop is an URL\n */\n isIconUrl() {\n try {\n return !!new URL(this.icon, this.icon.startsWith(\"/\") ? window.location.origin : void 0);\n } catch {\n return false;\n }\n }\n },\n methods: {\n onClick(event) {\n this.$emit(\"click\", event);\n if (this.closeAfterClick) {\n this.closeMenu(false);\n }\n }\n }\n};\nexport {\n ActionTextMixin as A\n};\n//# sourceMappingURL=actionText-BXR0sWNu.mjs.map\n","import '../assets/NcActionButton-Bb0ihLdt.css';\nimport { c as mdiChevronRight, d as mdiCheck } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { A as ActionTextMixin } from \"./actionText-BXR0sWNu.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { resolveComponent, createElementBlock, openBlock, normalizeClass, createElementVNode, mergeProps, renderSlot, createBlock, createCommentVNode, normalizeStyle, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionButton\",\n components: {\n NcIconSvgWrapper\n },\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * disabled state of the action button\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * If this is a menu, a chevron icon will\n * be added at the end of the line\n */\n isMenu: {\n type: Boolean,\n default: false\n },\n /**\n * The button's behavior, by default the button acts like a normal button with optional toggle button behavior if `modelValue` is `true` or `false`.\n * But you can also set to checkbox button behavior with tri-state or radio button like behavior.\n * This extends the native HTML button type attribute.\n */\n type: {\n type: String,\n default: \"button\",\n validator: (behavior) => [\"button\", \"checkbox\", \"radio\", \"reset\", \"submit\"].includes(behavior)\n },\n /**\n * The buttons state if `type` is 'checkbox' or 'radio' (meaning if it is pressed / selected).\n * For checkbox and toggle button behavior - boolean value.\n * For radio button behavior - could be a boolean checked or a string with the value of the button.\n * Note: Unlike native radio buttons, NcActionButton are not grouped by name, so you need to connect them by bind correct modelValue.\n *\n * **This is not availabe for `type='submit'` or `type='reset'`**\n *\n * If using `type='checkbox'` a `model-value` of `true` means checked, `false` means unchecked and `null` means indeterminate (tri-state)\n * For `type='radio'` `null` is equal to `false`\n */\n modelValue: {\n type: [Boolean, String],\n default: null\n },\n /**\n * The value used for the `modelValue` when this component is used with radio behavior\n * Similar to the `value` attribute of `<input type=\"radio\">`\n */\n value: {\n type: String,\n default: null\n },\n /**\n * Small underlying text content of the entry\n */\n description: {\n type: String,\n default: \"\"\n }\n },\n emits: [\"update:modelValue\"],\n setup() {\n return {\n mdiCheck,\n mdiChevronRight\n };\n },\n computed: {\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n },\n /**\n * The current \"checked\" or \"pressed\" state for the model behavior\n */\n isChecked() {\n if (this.type === \"radio\" && typeof this.modelValue !== \"boolean\") {\n return this.modelValue === this.value;\n }\n return this.modelValue;\n },\n /**\n * The native HTML type to set on the button\n */\n nativeType() {\n if (this.type === \"submit\" || this.type === \"reset\") {\n return this.type;\n }\n return \"button\";\n },\n /**\n * HTML attributes to bind to the <button>\n */\n buttonAttributes() {\n const attributes = {};\n if (this.isInSemanticMenu) {\n attributes.role = \"menuitem\";\n if (this.type === \"radio\") {\n attributes.role = \"menuitemradio\";\n attributes[\"aria-checked\"] = this.isChecked ? \"true\" : \"false\";\n } else if (this.type === \"checkbox\" || this.nativeType === \"button\" && this.modelValue !== null) {\n attributes.role = \"menuitemcheckbox\";\n attributes[\"aria-checked\"] = this.modelValue === null ? \"mixed\" : this.modelValue ? \"true\" : \"false\";\n }\n } else if (this.modelValue !== null && this.nativeType === \"button\") {\n attributes[\"aria-pressed\"] = this.modelValue ? \"true\" : \"false\";\n }\n return attributes;\n }\n },\n methods: {\n /**\n * Forward click event, let mixin handle the close-after-click and emit new modelValue if needed\n *\n * @param {MouseEvent} event - The click event\n */\n handleClick(event) {\n this.onClick(event);\n if (this.modelValue !== null || this.type !== \"button\") {\n if (this.type === \"radio\") {\n if (typeof this.modelValue !== \"boolean\") {\n if (!this.isChecked) {\n this.$emit(\"update:modelValue\", this.value);\n }\n } else {\n this.$emit(\"update:modelValue\", !this.isChecked);\n }\n } else {\n this.$emit(\"update:modelValue\", !this.isChecked);\n }\n }\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = [\"aria-label\", \"disabled\", \"title\", \"type\"];\nconst _hoisted_3 = { class: \"action-button__longtext-wrapper\" };\nconst _hoisted_4 = {\n key: 0,\n class: \"action-button__name\"\n};\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = {\n key: 2,\n class: \"action-button__text\"\n};\nconst _hoisted_7 = [\"textContent\"];\nconst _hoisted_8 = {\n key: 2,\n class: \"action-button__pressed-icon material-design-icon\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n return openBlock(), createElementBlock(\"li\", {\n class: normalizeClass([\"action\", { \"action--disabled\": $props.disabled }]),\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createElementVNode(\"button\", mergeProps({\n \"aria-label\": _ctx.ariaLabel,\n class: [\"action-button button-vue\", {\n \"action-button--active\": $options.isChecked,\n focusable: $options.isFocusable\n }],\n disabled: $props.disabled,\n title: _ctx.title,\n type: $options.nativeType\n }, $options.buttonAttributes, {\n onClick: _cache[0] || (_cache[0] = (...args) => $options.handleClick && $options.handleClick(...args))\n }), [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n class: normalizeClass([[_ctx.isIconUrl ? \"action-button__icon--url\" : _ctx.icon], \"action-button__icon\"]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null }),\n \"aria-hidden\": \"true\"\n }, null, 6)\n ], true),\n createElementVNode(\"span\", _hoisted_3, [\n _ctx.name ? (openBlock(), createElementBlock(\"strong\", _hoisted_4, toDisplayString(_ctx.name), 1)) : createCommentVNode(\"\", true),\n _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-button__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)) : (openBlock(), createElementBlock(\"span\", _hoisted_6, toDisplayString(_ctx.text), 1)),\n $props.description ? (openBlock(), createElementBlock(\"span\", {\n key: 3,\n class: \"action-button__description\",\n textContent: toDisplayString($props.description)\n }, null, 8, _hoisted_7)) : createCommentVNode(\"\", true)\n ]),\n $props.isMenu ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 0,\n class: \"action-button__menu-icon\",\n directional: \"\",\n path: $setup.mdiChevronRight\n }, null, 8, [\"path\"])) : $options.isChecked ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 1,\n path: $setup.mdiCheck,\n class: \"action-button__pressed-icon\"\n }, null, 8, [\"path\"])) : $options.isChecked === false ? (openBlock(), createElementBlock(\"span\", _hoisted_8)) : createCommentVNode(\"\", true),\n createCommentVNode(\"\", true)\n ], 16, _hoisted_2)\n ], 10, _hoisted_1);\n}\nconst NcActionButton = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-6c2daf4e\"]]);\nexport {\n NcActionButton as N\n};\n//# sourceMappingURL=NcActionButton-DNXoAooH.mjs.map\n","import '../assets/NcActionButtonGroup-Bt8kRk79.css';\nimport { defineComponent, createElementBlock, openBlock, createCommentVNode, createElementVNode, toDisplayString, renderSlot } from \"vue\";\nimport { r as register, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister();\nconst _sfc_main = defineComponent({\n name: \"NcActionButtonGroup\",\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * Optional text shown below the button group\n */\n name: {\n required: false,\n default: void 0,\n type: String\n }\n },\n setup() {\n return {\n labelId: createElementId()\n };\n },\n methods: {\n t\n }\n});\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = [\"id\"];\nconst _hoisted_3 = [\"aria-labelledby\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", {\n class: \"nc-button-group-base\",\n role: _ctx.isInSemanticMenu && \"presentation\"\n }, [\n _ctx.name ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n id: _ctx.labelId\n }, toDisplayString(_ctx.name), 9, _hoisted_2)) : createCommentVNode(\"\", true),\n createElementVNode(\"ul\", {\n class: \"nc-button-group-content\",\n role: \"group\",\n \"aria-labelledby\": _ctx.name ? _ctx.labelId : void 0\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 8, _hoisted_3)\n ], 8, _hoisted_1);\n}\nconst NcActionButtonGroup = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-6a2b8de0\"]]);\nexport {\n NcActionButtonGroup as N\n};\n//# sourceMappingURL=NcActionButtonGroup-B2MGnwK_.mjs.map\n","import '../assets/NcDateTimePickerNative-BP6eg8aU.css';\nimport { defineComponent, mergeModels, useModel, computed, createElementBlock, openBlock, normalizeClass, createElementVNode, toDisplayString, mergeProps } from \"vue\";\nimport { r as register, x as t39, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t39);\nconst _hoisted_1 = [\"for\"];\nconst _hoisted_2 = [\"id\", \"type\", \"value\", \"min\", \"max\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcDateTimePickerNative\",\n props: /* @__PURE__ */ mergeModels({\n class: { default: void 0 },\n id: { default: () => createElementId() },\n inputClass: { default: \"\" },\n type: { default: \"date\" },\n label: { default: () => t(\"Please choose a date\") },\n min: { default: null },\n max: { default: null },\n hideLabel: { type: Boolean }\n }, {\n \"modelValue\": { default: null },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const formattedValue = computed(() => modelValue.value ? formatValue(modelValue.value) : \"\");\n const formattedMax = computed(() => props.max ? formatValue(props.max) : void 0);\n const formattedMin = computed(() => props.min ? formatValue(props.min) : void 0);\n function getReadableDate(value) {\n const yyyy = value.getFullYear().toString().padStart(4, \"0\");\n const MM = (value.getMonth() + 1).toString().padStart(2, \"0\");\n const dd = value.getDate().toString().padStart(2, \"0\");\n const hh = value.getHours().toString().padStart(2, \"0\");\n const mm = value.getMinutes().toString().padStart(2, \"0\");\n return { yyyy, MM, dd, hh, mm };\n }\n function formatValue(value) {\n const { yyyy, MM, dd, hh, mm } = getReadableDate(value);\n if (props.type === \"datetime-local\") {\n return `${yyyy}-${MM}-${dd}T${hh}:${mm}`;\n } else if (props.type === \"date\") {\n return `${yyyy}-${MM}-${dd}`;\n } else if (props.type === \"month\") {\n return `${yyyy}-${MM}`;\n } else if (props.type === \"time\") {\n return `${hh}:${mm}`;\n } else if (props.type === \"week\") {\n const startDate = new Date(Number.parseInt(yyyy), 0, 1);\n const daysSinceBeginningOfYear = Math.floor((value.getTime() - startDate.getTime()) / (24 * 60 * 60 * 1e3));\n const weekNumber = Math.ceil(daysSinceBeginningOfYear / 7);\n return `${yyyy}-W${weekNumber}`;\n }\n return \"\";\n }\n function onInput(event) {\n const input = event.target;\n if (!input || isNaN(input.valueAsNumber)) {\n modelValue.value = null;\n } else if (props.type === \"time\") {\n const time = input.value;\n const { yyyy, MM, dd } = getReadableDate(modelValue.value || /* @__PURE__ */ new Date());\n modelValue.value = /* @__PURE__ */ new Date(`${yyyy}-${MM}-${dd}T${time}`);\n } else if (props.type === \"month\") {\n const MM = (new Date(input.value).getMonth() + 1).toString().padStart(2, \"0\");\n const { yyyy, dd, hh, mm } = getReadableDate(modelValue.value || /* @__PURE__ */ new Date());\n modelValue.value = /* @__PURE__ */ new Date(`${yyyy}-${MM}-${dd}T${hh}:${mm}`);\n } else {\n const timezoneOffsetSeconds = new Date(input.valueAsNumber).getTimezoneOffset() * 1e3 * 60;\n const inputDateWithTimezone = input.valueAsNumber + timezoneOffsetSeconds;\n modelValue.value = new Date(inputDateWithTimezone);\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"native-datetime-picker\", _ctx.$props.class])\n }, [\n createElementVNode(\"label\", {\n class: normalizeClass([\"native-datetime-picker__label\", { \"hidden-visually\": _ctx.hideLabel }]),\n for: _ctx.id\n }, toDisplayString(_ctx.label), 11, _hoisted_1),\n createElementVNode(\"input\", mergeProps({\n id: _ctx.id,\n class: [\"native-datetime-picker__input\", _ctx.inputClass],\n type: _ctx.type,\n value: formattedValue.value,\n min: formattedMin.value,\n max: formattedMax.value\n }, _ctx.$attrs, { onInput }), null, 16, _hoisted_2)\n ], 2);\n };\n }\n});\nconst NcDateTimePickerNative = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-b97e1f7a\"]]);\nexport {\n NcDateTimePickerNative as N\n};\n//# sourceMappingURL=NcDateTimePickerNative-Dr8_mGlQ.mjs.map\n","import { loadState } from \"@nextcloud/initial-state\";\nfunction getCapabilities() {\n try {\n return loadState(\"core\", \"capabilities\");\n } catch (error) {\n console.debug(\"Could not find capabilities initial state fall back to _oc_capabilities\");\n if (!(\"_oc_capabilities\" in window)) {\n return {};\n }\n return window[\"_oc_capabilities\"];\n }\n}\nexport {\n getCapabilities\n};\n//# sourceMappingURL=index.mjs.map\n","export default function debounce(function_, wait = 100, options = {}) {\n\tif (typeof function_ !== 'function') {\n\t\tthrow new TypeError(`Expected the first parameter to be a function, got \\`${typeof function_}\\`.`);\n\t}\n\n\tif (wait < 0) {\n\t\tthrow new RangeError('`wait` must not be negative.');\n\t}\n\n\tif (typeof options === 'boolean') {\n\t\tthrow new TypeError('The `options` parameter must be an object, not a boolean. Use `{immediate: true}` instead.');\n\t}\n\n\tconst {immediate} = options;\n\n\tlet storedContext;\n\tlet storedArguments;\n\tlet timeoutId;\n\tlet timestamp;\n\tlet result;\n\n\tfunction run() {\n\t\tconst callContext = storedContext;\n\t\tconst callArguments = storedArguments;\n\t\tstoredContext = undefined;\n\t\tstoredArguments = undefined;\n\t\tresult = function_.apply(callContext, callArguments);\n\t\treturn result;\n\t}\n\n\tfunction later() {\n\t\tconst last = Date.now() - timestamp;\n\n\t\tif (last < wait && last >= 0) {\n\t\t\ttimeoutId = setTimeout(later, wait - last);\n\t\t} else {\n\t\t\ttimeoutId = undefined;\n\n\t\t\tif (!immediate) {\n\t\t\t\tresult = run();\n\t\t\t}\n\t\t}\n\t}\n\n\tconst debounced = function (...arguments_) {\n\t\tif (\n\t\t\tstoredContext\n\t\t\t&& this !== storedContext\n\t\t\t&& Object.getPrototypeOf(this) === Object.getPrototypeOf(storedContext)\n\t\t) {\n\t\t\tthrow new Error('Debounced method called with different contexts of the same prototype.');\n\t\t}\n\n\t\tstoredContext = this; // eslint-disable-line unicorn/no-this-assignment\n\t\tstoredArguments = arguments_;\n\t\ttimestamp = Date.now();\n\n\t\tconst callNow = immediate && !timeoutId;\n\n\t\tif (!timeoutId) {\n\t\t\ttimeoutId = setTimeout(later, wait);\n\t\t}\n\n\t\tif (callNow) {\n\t\t\tresult = run();\n\t\t\treturn result;\n\t\t}\n\n\t\treturn undefined;\n\t};\n\n\tObject.defineProperty(debounced, 'isPending', {\n\t\tget() {\n\t\t\treturn timeoutId !== undefined;\n\t\t},\n\t});\n\n\tdebounced.clear = () => {\n\t\tif (!timeoutId) {\n\t\t\treturn;\n\t\t}\n\n\t\tclearTimeout(timeoutId);\n\t\ttimeoutId = undefined;\n\t\tstoredContext = undefined;\n\t\tstoredArguments = undefined;\n\t};\n\n\tdebounced.flush = () => {\n\t\tif (!timeoutId) {\n\t\t\treturn;\n\t\t}\n\n\t\tdebounced.trigger();\n\t};\n\n\tdebounced.trigger = () => {\n\t\tresult = run();\n\n\t\tdebounced.clear();\n\t};\n\n\treturn debounced;\n}\n","import '../assets/NcInputField-B9DSDOEd.css';\nimport { defineComponent, mergeModels, useModel, useAttrs, useTemplateRef, computed, warn, createElementBlock, openBlock, normalizeClass, unref, createElementVNode, createCommentVNode, withDirectives, createBlock, mergeProps, toDisplayString, renderSlot, vShow, withCtx, createTextVNode } from \"vue\";\nimport { d as mdiCheck, j as mdiAlertCircleOutline } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcButton } from \"./NcButton-CzpKEx4V.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { i as isLegacy } from \"./legacy-DcjXBL_t.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = { class: \"input-field__main-wrapper\" };\nconst _hoisted_2 = [\"id\", \"aria-describedby\", \"disabled\", \"placeholder\", \"type\", \"value\"];\nconst _hoisted_3 = [\"for\"];\nconst _hoisted_4 = { class: \"input-field__icon input-field__icon--leading\" };\nconst _hoisted_5 = {\n key: 2,\n class: \"input-field__icon input-field__icon--trailing\"\n};\nconst _hoisted_6 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{\n inheritAttrs: false\n },\n __name: \"NcInputField\",\n props: /* @__PURE__ */ mergeModels({\n class: { default: \"\" },\n inputClass: { default: \"\" },\n id: { default: () => createElementId() },\n label: { default: void 0 },\n labelOutside: { type: Boolean },\n type: { default: \"text\" },\n placeholder: { default: void 0 },\n showTrailingButton: { type: Boolean },\n trailingButtonLabel: { default: void 0 },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: { default: \"\" },\n disabled: { type: Boolean },\n pill: { type: Boolean }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"trailingButtonClick\"], [\"update:modelValue\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const emit = __emit;\n __expose({\n focus,\n select\n });\n const attrs = useAttrs();\n const inputElement = useTemplateRef(\"input\");\n const hasTrailingIcon = computed(() => props.showTrailingButton || props.success);\n const internalPlaceholder = computed(() => {\n if (props.placeholder) {\n return props.placeholder;\n }\n if (props.label) {\n return isLegacy ? props.label : \"\";\n }\n return void 0;\n });\n const isValidLabel = computed(() => {\n const isValidLabel2 = props.label || props.labelOutside;\n if (!isValidLabel2) {\n warn(\"You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation.\");\n }\n return isValidLabel2;\n });\n const ariaDescribedby = computed(() => {\n const ariaDescribedby2 = [];\n if (props.helperText) {\n ariaDescribedby2.push(`${props.id}-helper-text`);\n }\n if (attrs[\"aria-describedby\"]) {\n ariaDescribedby2.push(String(attrs[\"aria-describedby\"]));\n }\n return ariaDescribedby2.join(\" \") || void 0;\n });\n function focus(options) {\n inputElement.value.focus(options);\n }\n function select() {\n inputElement.value.select();\n }\n function handleInput(event) {\n const target = event.target;\n modelValue.value = props.type === \"number\" && typeof modelValue.value === \"number\" ? parseFloat(target.value) : target.value;\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"input-field\", [{\n \"input-field--disabled\": _ctx.disabled,\n \"input-field--error\": _ctx.error,\n \"input-field--label-outside\": _ctx.labelOutside || !isValidLabel.value,\n \"input-field--leading-icon\": !!_ctx.$slots.icon,\n \"input-field--trailing-icon\": hasTrailingIcon.value,\n \"input-field--pill\": _ctx.pill,\n \"input-field--success\": _ctx.success,\n \"input-field--legacy\": unref(isLegacy)\n }, _ctx.$props.class]])\n }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"input\", mergeProps(_ctx.$attrs, {\n id: _ctx.id,\n ref: \"input\",\n \"aria-describedby\": ariaDescribedby.value,\n \"aria-live\": \"polite\",\n class: [\"input-field__input\", _ctx.inputClass],\n disabled: _ctx.disabled,\n placeholder: internalPlaceholder.value,\n type: _ctx.type,\n value: modelValue.value.toString(),\n onInput: handleInput\n }), null, 16, _hoisted_2),\n !_ctx.labelOutside && isValidLabel.value ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"input-field__label\",\n for: _ctx.id\n }, toDisplayString(_ctx.label), 9, _hoisted_3)) : createCommentVNode(\"\", true),\n withDirectives(createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ], 512), [\n [vShow, !!_ctx.$slots.icon]\n ]),\n _ctx.showTrailingButton ? (openBlock(), createBlock(NcButton, {\n key: 1,\n class: \"input-field__trailing-button\",\n \"aria-label\": _ctx.trailingButtonLabel,\n disabled: _ctx.disabled,\n variant: \"tertiary-no-background\",\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"trailingButtonClick\", $event))\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"trailing-button-icon\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\"])) : _ctx.success || _ctx.error ? (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n _ctx.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n path: unref(mdiCheck)\n }, null, 8, [\"path\"])) : (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n path: unref(mdiAlertCircleOutline)\n }, null, 8, [\"path\"]))\n ])) : createCommentVNode(\"\", true)\n ]),\n _ctx.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${_ctx.id}-helper-text`,\n class: \"input-field__helper-text-message\"\n }, [\n _ctx.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n class: \"input-field__helper-text-message__icon\",\n path: unref(mdiCheck),\n inline: \"\"\n }, null, 8, [\"path\"])) : _ctx.error ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n class: \"input-field__helper-text-message__icon\",\n path: unref(mdiAlertCircleOutline),\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createTextVNode(\" \" + toDisplayString(_ctx.helperText), 1)\n ], 8, _hoisted_6)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcInputField = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-a0e80f48\"]]);\nexport {\n NcInputField as N\n};\n//# sourceMappingURL=NcInputField-Clm9jOGJ.mjs.map\n","import '../assets/NcPasswordField-BCJ0LHSS.css';\nimport { defineComponent, mergeModels, useModel, watch, useTemplateRef, ref, computed, createBlock, openBlock, mergeProps, unref, createSlots, withCtx, createVNode, renderSlot } from \"vue\";\nimport { q as mdiEyeOff, r as mdiEye } from \"./mdi-CpchYUUV.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport debounce from \"debounce\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { N as NcInputField } from \"./NcInputField-Clm9jOGJ.mjs\";\nimport { r as register, n as t29, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t29);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcPasswordField\",\n props: /* @__PURE__ */ mergeModels({\n class: {},\n inputClass: { default: \"\" },\n id: {},\n label: {},\n labelOutside: { type: Boolean },\n placeholder: {},\n showTrailingButton: { type: Boolean, default: true },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: {},\n disabled: { type: Boolean },\n pill: { type: Boolean },\n checkPasswordStrength: { type: Boolean },\n minlength: { default: void 0 },\n asText: { type: Boolean }\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {},\n \"visible\": { type: Boolean, ...{ default: false } },\n \"visibleModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"valid\", \"invalid\"], [\"update:modelValue\", \"update:visible\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const visible = useModel(__props, \"visible\");\n const props = __props;\n const emit = __emit;\n watch(modelValue, debounce(checkPassword, 500));\n __expose({\n focus,\n select\n });\n const { password_policy: passwordPolicy } = getCapabilities();\n const inputFieldInstance = useTemplateRef(\"inputField\");\n const internalHelpMessage = ref(\"\");\n const isValid = ref();\n const propsToForward = computed(() => {\n const all = { ...props };\n delete all.checkPasswordStrength;\n delete all.minlength;\n delete all.asText;\n delete all.error;\n delete all.helperText;\n delete all.inputClass;\n delete all.success;\n return all;\n });\n const minLengthWithPolicy = computed(() => {\n return props.minlength ?? (props.checkPasswordStrength ? passwordPolicy?.minLength : void 0) ?? void 0;\n });\n async function checkPassword() {\n if (!props.checkPasswordStrength) {\n return;\n }\n try {\n const { data } = await axios.post(generateOcsUrl(\"apps/password_policy/api/v1/validate\"), { password: modelValue.value });\n isValid.value = data.ocs.data.passed;\n if (data.ocs.data.passed) {\n internalHelpMessage.value = t(\"Password is secure\");\n emit(\"valid\");\n return;\n }\n internalHelpMessage.value = data.ocs.data.reason;\n emit(\"invalid\");\n } catch (error) {\n logger.error(\"Password policy returned an error\", { error });\n }\n }\n function toggleVisibility() {\n visible.value = !visible.value;\n }\n function focus(options) {\n inputFieldInstance.value.focus(options);\n }\n function select() {\n inputFieldInstance.value.select();\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcInputField, mergeProps(propsToForward.value, {\n ref: \"inputField\",\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),\n error: _ctx.error || isValid.value === false,\n \"helper-text\": _ctx.helperText || internalHelpMessage.value,\n \"input-class\": [_ctx.inputClass, { \"password-field__input--secure-text\": !visible.value && _ctx.asText }],\n minlength: minLengthWithPolicy.value,\n success: _ctx.success || isValid.value === true,\n \"trailing-button-label\": visible.value ? unref(t)(\"Hide password\") : unref(t)(\"Show password\"),\n type: visible.value || _ctx.asText ? \"text\" : \"password\",\n onTrailingButtonClick: toggleVisibility\n }), createSlots({\n \"trailing-button-icon\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: visible.value ? unref(mdiEyeOff) : unref(mdiEye)\n }, null, 8, [\"path\"])\n ]),\n _: 2\n }, [\n !!_ctx.$slots.icon ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ]),\n key: \"0\"\n } : void 0\n ]), 1040, [\"modelValue\", \"error\", \"helper-text\", \"input-class\", \"minlength\", \"success\", \"trailing-button-label\", \"type\"]);\n };\n }\n});\nconst NcPasswordField = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-b2684de6\"]]);\nexport {\n NcPasswordField as N\n};\n//# sourceMappingURL=NcPasswordField-BOZlUwhr.mjs.map\n","import { defineComponent, mergeModels, useModel, useTemplateRef, computed, createBlock, openBlock, unref, mergeProps, createSlots, withCtx, renderSlot } from \"vue\";\nimport { m as mdiArrowRight, a as mdiUndo, b as mdiClose } from \"./mdi-CpchYUUV.mjs\";\nimport { r as register, b as t50, c as t18, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { N as NcInputField } from \"./NcInputField-Clm9jOGJ.mjs\";\nregister(t18, t50);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcTextField\",\n props: /* @__PURE__ */ mergeModels({\n class: {},\n inputClass: {},\n id: {},\n label: {},\n labelOutside: { type: Boolean },\n type: {},\n placeholder: {},\n showTrailingButton: { type: Boolean },\n trailingButtonLabel: { default: void 0 },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: {},\n disabled: { type: Boolean },\n pill: { type: Boolean },\n trailingButtonIcon: { default: \"close\" }\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n __expose({\n focus,\n select\n });\n const inputFieldInstance = useTemplateRef(\"inputField\");\n const defaultTrailingButtonLabels = {\n arrowEnd: t(\"Save changes\"),\n close: t(\"Clear text\"),\n undo: t(\"Undo changes\")\n };\n const NcInputFieldPropNames = new Set(Object.keys(NcInputField.props));\n const propsToForward = computed(() => {\n const sharedProps = Object.fromEntries(Object.entries(props).filter(([key]) => NcInputFieldPropNames.has(key)));\n sharedProps.trailingButtonLabel ??= defaultTrailingButtonLabels[props.trailingButtonIcon];\n return sharedProps;\n });\n function focus(options) {\n inputFieldInstance.value.focus(options);\n }\n function select() {\n inputFieldInstance.value.select();\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcInputField), mergeProps(propsToForward.value, {\n ref: \"inputField\",\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event)\n }), createSlots({ _: 2 }, [\n !!_ctx.$slots.icon ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\")\n ]),\n key: \"0\"\n } : void 0,\n _ctx.type !== \"search\" ? {\n name: \"trailing-button-icon\",\n fn: withCtx(() => [\n _ctx.trailingButtonIcon === \"arrowEnd\" ? (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 0,\n directional: \"\",\n path: unref(mdiArrowRight)\n }, null, 8, [\"path\"])) : (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 1,\n path: _ctx.trailingButtonIcon === \"undo\" ? unref(mdiUndo) : unref(mdiClose)\n }, null, 8, [\"path\"]))\n ]),\n key: \"1\"\n } : void 0\n ]), 1040, [\"modelValue\"]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcTextField.vue_vue_type_script_setup_true_lang-CCsZqnkM.mjs.map\n","import '../assets/NcActionInput-BxRA_Skn.css';\nimport { defineAsyncComponent, resolveComponent, createElementBlock, openBlock, normalizeClass, createElementVNode, renderSlot, normalizeStyle, withModifiers, createCommentVNode, toDisplayString, createBlock, mergeProps, createVNode, withCtx } from \"vue\";\nimport { r as register, l as t48, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { A as ActionGlobalMixin } from \"./actionGlobal-BZFdtdJL.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { N as NcDateTimePickerNative } from \"./NcDateTimePickerNative-Dr8_mGlQ.mjs\";\nimport { N as NcPasswordField } from \"./NcPasswordField-BOZlUwhr.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcTextField.vue_vue_type_script_setup_true_lang-CCsZqnkM.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t48);\nconst _sfc_main = {\n name: \"NcActionInput\",\n components: {\n NcDateTimePickerNative,\n NcPasswordField,\n NcTextField: _sfc_main$1,\n // Lazy load components with more than 50kB bundle size impact\n NcColorPicker: defineAsyncComponent(() => import(\"../components/NcColorPicker/index.mjs\")),\n NcDateTimePicker: defineAsyncComponent(() => import(\"../components/NcDateTimePicker/index.mjs\")),\n NcSelect: defineAsyncComponent(() => import(\"../components/NcSelect/index.mjs\"))\n },\n mixins: [ActionGlobalMixin],\n inheritAttrs: false,\n props: {\n /**\n * id attribute of the checkbox element\n */\n id: {\n type: String,\n default: () => \"action-\" + createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * id attribute of the text input element\n */\n inputId: {\n type: String,\n default: () => \"action-input-\" + createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * Icon to show with the action, can be either a CSS class or an URL\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * type attribute of the input field\n */\n type: {\n type: String,\n default: \"text\",\n validator(type) {\n return [\n \"date\",\n \"datetime-local\",\n \"month\",\n \"multiselect\",\n \"number\",\n \"password\",\n \"search\",\n \"tel\",\n \"text\",\n \"time\",\n \"url\",\n \"week\",\n \"color\",\n \"email\"\n ].includes(type);\n }\n },\n /**\n * id attribute for the native date time picker\n */\n idNativeDateTimePicker: {\n type: String,\n default: \"date-time-picker_id\"\n },\n /**\n * Flag to use a native date time picker\n */\n isNativePicker: {\n type: Boolean,\n default: false\n },\n /**\n * The visible input label for accessibility purposes.\n */\n label: {\n type: String,\n default: null\n },\n /**\n * If you want to show the label just above the\n * input field, pass in `true` to this prop.\n */\n labelOutside: {\n type: Boolean,\n default: true\n },\n /**\n * value attribute of the input field\n */\n modelValue: {\n type: [String, Date, Number, Array],\n default: \"\"\n },\n /**\n * disabled state of the input field\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * aria-label attribute of the input field\n */\n ariaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Attribute forwarded to the underlying NcPasswordField and NcTextField\n */\n showTrailingButton: {\n type: Boolean,\n default: true\n },\n /**\n * Trailing button label forwarded to the underlying NcTextField\n */\n trailingButtonLabel: {\n type: String,\n default: t(\"Submit\")\n },\n /**\n * CSS class to apply to the root element.\n */\n class: {\n type: [String, Array, Object],\n default: \"\"\n }\n },\n emits: [\n \"submit\",\n \"update:modelValue\"\n ],\n computed: {\n isIconUrl() {\n try {\n return new URL(this.icon);\n } catch {\n return false;\n }\n },\n isMultiselectType() {\n return this.type === \"multiselect\";\n },\n nativeDatePickerType() {\n switch (this.type) {\n case \"date\":\n case \"month\":\n case \"time\":\n case \"week\":\n case \"datetime-local\":\n return this.type;\n }\n return false;\n },\n datePickerType() {\n if (!this.isNativePicker) {\n switch (this.type) {\n case \"date\":\n case \"month\":\n case \"time\":\n return this.type;\n case \"datetime-local\":\n return \"datetime\";\n }\n }\n return false;\n },\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n }\n },\n methods: {\n // closing datepicker popup on mouseleave = unfocus\n onLeave() {\n if (this.$refs.datetimepicker && this.$refs.datetimepicker.$refs.datepicker) {\n this.$refs.datetimepicker.$refs.datepicker.closePopup();\n }\n },\n onSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n if (!this.disabled) {\n this.$emit(\"submit\", event);\n } else {\n return false;\n }\n },\n onUpdateModelValue(event) {\n this.$emit(\"update:modelValue\", event);\n }\n }\n};\nconst _hoisted_1 = { class: \"action-input__icon-wrapper\" };\nconst _hoisted_2 = [\"disabled\"];\nconst _hoisted_3 = { class: \"action-input__container\" };\nconst _hoisted_4 = [\"for\"];\nconst _hoisted_5 = { class: \"action-input__input-container\" };\nconst _hoisted_6 = {\n key: 4,\n class: \"action-input__container\"\n};\nconst _hoisted_7 = [\"for\"];\nconst _hoisted_8 = { class: \"action-input__input-container\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcDateTimePicker = resolveComponent(\"NcDateTimePicker\");\n const _component_NcDateTimePickerNative = resolveComponent(\"NcDateTimePickerNative\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcPasswordField = resolveComponent(\"NcPasswordField\");\n const _component_NcColorPicker = resolveComponent(\"NcColorPicker\");\n const _component_NcTextField = resolveComponent(\"NcTextField\");\n return openBlock(), createElementBlock(\"li\", {\n class: normalizeClass([\"action\", [{ \"action--disabled\": $props.disabled }, _ctx.$props.class]])\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass([\"action-input\", {\n \"action-input-picker--disabled\": $props.disabled,\n \"action-input--visible-label\": $props.labelOutside && $props.label\n }]),\n onMouseleave: _cache[3] || (_cache[3] = (...args) => $options.onLeave && $options.onLeave(...args))\n }, [\n createElementVNode(\"span\", _hoisted_1, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-input__icon\", [$options.isIconUrl ? \"action-input__icon--url\" : $props.icon]]),\n style: normalizeStyle({ backgroundImage: $options.isIconUrl ? `url(${$props.icon})` : null })\n }, null, 6)\n ], true)\n ]),\n createElementVNode(\"form\", {\n ref: \"form\",\n class: \"action-input__form\",\n disabled: $props.disabled,\n onSubmit: _cache[2] || (_cache[2] = withModifiers((...args) => $options.onSubmit && $options.onSubmit(...args), [\"prevent\"]))\n }, [\n createElementVNode(\"div\", _hoisted_3, [\n $props.label && $props.labelOutside && !$props.isNativePicker ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: normalizeClass([\"action-input__text-label\", { \"action-input__text-label--hidden\": !$props.labelOutside }]),\n for: $props.inputId\n }, toDisplayString($props.label), 11, _hoisted_4)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_5, [\n $options.datePickerType ? (openBlock(), createBlock(_component_NcDateTimePicker, mergeProps({\n key: 0,\n ref: \"datetimepicker\",\n \"model-value\": $props.modelValue,\n style: { \"z-index\": \"99999999999\" },\n placeholder: _ctx.text,\n disabled: $props.disabled,\n type: $options.datePickerType,\n \"input-class\": [\"mx-input\", { focusable: $options.isFocusable }],\n class: \"action-input__datetimepicker\",\n \"append-to-body\": \"\"\n }, _ctx.$attrs, { \"onUpdate:modelValue\": $options.onUpdateModelValue }), null, 16, [\"model-value\", \"placeholder\", \"disabled\", \"type\", \"input-class\", \"onUpdate:modelValue\"])) : $props.isNativePicker ? (openBlock(), createBlock(_component_NcDateTimePickerNative, mergeProps({\n key: 1,\n id: $props.idNativeDateTimePicker,\n \"model-value\": $props.modelValue,\n label: $props.label,\n type: $options.nativeDatePickerType,\n \"input-class\": { focusable: $options.isFocusable },\n class: \"action-input__datetimepicker\"\n }, _ctx.$attrs, { \"onUpdate:modelValue\": $options.onUpdateModelValue }), null, 16, [\"id\", \"model-value\", \"label\", \"type\", \"input-class\", \"onUpdate:modelValue\"])) : $options.isMultiselectType ? (openBlock(), createBlock(_component_NcSelect, mergeProps({\n key: 2,\n \"model-value\": $props.modelValue,\n placeholder: _ctx.text,\n disabled: $props.disabled,\n \"append-to-body\": false,\n \"input-class\": { focusable: $options.isFocusable },\n class: \"action-input__multi\"\n }, _ctx.$attrs, { \"onUpdate:modelValue\": $options.onUpdateModelValue }), null, 16, [\"model-value\", \"placeholder\", \"disabled\", \"input-class\", \"onUpdate:modelValue\"])) : $props.type === \"password\" ? (openBlock(), createBlock(_component_NcPasswordField, mergeProps({\n key: 3,\n id: $props.inputId,\n \"model-value\": $props.modelValue,\n label: $props.label,\n \"label-outside\": !$props.label || $props.labelOutside,\n placeholder: _ctx.text,\n disabled: $props.disabled,\n \"input-class\": { focusable: $options.isFocusable },\n \"show-trailing-button\": $props.showTrailingButton && !$props.disabled\n }, _ctx.$attrs, { \"onUpdate:modelValue\": $options.onUpdateModelValue }), null, 16, [\"id\", \"model-value\", \"label\", \"label-outside\", \"placeholder\", \"disabled\", \"input-class\", \"show-trailing-button\", \"onUpdate:modelValue\"])) : $props.type === \"color\" ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n $props.label && $props.type === \"color\" ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: normalizeClass([\"action-input__text-label\", { \"action-input__text-label--hidden\": !$props.labelOutside }]),\n for: $props.inputId\n }, toDisplayString($props.label), 11, _hoisted_7)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_8, [\n createVNode(_component_NcColorPicker, mergeProps({\n id: \"inputId\",\n \"model-value\": $props.modelValue,\n class: \"colorpicker__trigger\"\n }, _ctx.$attrs, {\n \"onUpdate:modelValue\": $options.onUpdateModelValue,\n onSubmit: _cache[0] || (_cache[0] = ($event) => _ctx.$refs.form.requestSubmit())\n }), {\n default: withCtx(() => [\n createElementVNode(\"button\", {\n class: normalizeClass([\"colorpicker__preview\", { focusable: $options.isFocusable }]),\n style: normalizeStyle({ \"background-color\": $props.modelValue })\n }, null, 6)\n ]),\n _: 1\n }, 16, [\"model-value\", \"onUpdate:modelValue\"])\n ])\n ])) : (openBlock(), createBlock(_component_NcTextField, mergeProps({\n key: 5,\n id: $props.inputId,\n \"model-value\": $props.modelValue,\n label: $props.label,\n \"label-outside\": !$props.label || $props.labelOutside,\n placeholder: _ctx.text,\n disabled: $props.disabled,\n \"input-class\": { focusable: $options.isFocusable },\n type: $props.type,\n \"trailing-button-icon\": \"arrowRight\",\n \"trailing-button-label\": $props.trailingButtonLabel,\n \"show-trailing-button\": $props.showTrailingButton && !$props.disabled\n }, _ctx.$attrs, {\n onTrailingButtonClick: _cache[1] || (_cache[1] = ($event) => _ctx.$refs.form.requestSubmit()),\n \"onUpdate:modelValue\": $options.onUpdateModelValue\n }), null, 16, [\"id\", \"model-value\", \"label\", \"label-outside\", \"placeholder\", \"disabled\", \"input-class\", \"type\", \"trailing-button-label\", \"show-trailing-button\", \"onUpdate:modelValue\"]))\n ])\n ])\n ], 40, _hoisted_2)\n ], 34)\n ], 2);\n}\nconst NcActionInput = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-67b3d681\"]]);\nexport {\n NcActionInput as N\n};\n//# sourceMappingURL=NcActionInput-BemRG66_.mjs.map\n","import '../assets/NcActionLink-DAEr-vmd.css';\nimport { A as ActionTextMixin } from \"./actionText-BXR0sWNu.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { createElementBlock, openBlock, createElementVNode, renderSlot, createCommentVNode, normalizeStyle, normalizeClass, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionLink\",\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * destionation to link to\n */\n href: {\n type: String,\n required: true,\n validator: (value) => {\n try {\n return new URL(value);\n } catch {\n return value.startsWith(\"#\") || value.startsWith(\"/\");\n }\n }\n },\n /**\n * download the link instead of opening\n */\n download: {\n type: String,\n default: null\n },\n /**\n * target to open the link\n */\n target: {\n type: String,\n default: \"_self\",\n validator: (value) => {\n return value && (!value.startsWith(\"_\") || [\"_blank\", \"_self\", \"_parent\", \"_top\"].indexOf(value) > -1);\n }\n },\n /**\n * Declares a native tooltip when not null\n */\n title: {\n type: String,\n default: null\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = [\"download\", \"href\", \"aria-label\", \"target\", \"title\", \"role\"];\nconst _hoisted_3 = {\n key: 0,\n class: \"action-link__longtext-wrapper\"\n};\nconst _hoisted_4 = { class: \"action-link__name\" };\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = [\"textContent\"];\nconst _hoisted_7 = {\n key: 2,\n class: \"action-link__text\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", {\n class: \"action\",\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createElementVNode(\"a\", {\n download: $props.download,\n href: $props.href,\n \"aria-label\": _ctx.ariaLabel,\n target: $props.target,\n title: $props.title,\n class: \"action-link focusable\",\n rel: \"nofollow noreferrer noopener\",\n role: $options.isInSemanticMenu && \"menuitem\",\n onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args))\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-link__icon\", [_ctx.isIconUrl ? \"action-link__icon--url\" : _ctx.icon]]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null })\n }, null, 6)\n ], true),\n _ctx.name ? (openBlock(), createElementBlock(\"span\", _hoisted_3, [\n createElementVNode(\"strong\", _hoisted_4, toDisplayString(_ctx.name), 1),\n _cache[1] || (_cache[1] = createElementVNode(\"br\", null, null, -1)),\n createElementVNode(\"span\", {\n class: \"action-link__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)\n ])) : _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-link__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_6)) : (openBlock(), createElementBlock(\"span\", _hoisted_7, toDisplayString(_ctx.text), 1)),\n createCommentVNode(\"\", true)\n ], 8, _hoisted_2)\n ], 8, _hoisted_1);\n}\nconst NcActionLink = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-32f01b7a\"]]);\nexport {\n NcActionLink as N\n};\n//# sourceMappingURL=NcActionLink-Cd69py4e.mjs.map\n","import '../assets/NcActionRouter-DeYzeM5W.css';\nimport { A as ActionTextMixin } from \"./actionText-BXR0sWNu.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { resolveComponent, createElementBlock, openBlock, createVNode, withCtx, renderSlot, createCommentVNode, createElementVNode, normalizeStyle, normalizeClass, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionRouter\",\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * router-link to prop [https://router.vuejs.org/api/#to](https://router.vuejs.org/api/#to)\n */\n to: {\n type: [String, Object],\n required: true\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"action-router__longtext-wrapper\"\n};\nconst _hoisted_3 = { class: \"action-router__name\" };\nconst _hoisted_4 = [\"textContent\"];\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = {\n key: 2,\n class: \"action-router__text\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_RouterLink = resolveComponent(\"RouterLink\");\n return openBlock(), createElementBlock(\"li\", {\n class: \"action\",\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createVNode(_component_RouterLink, {\n \"aria-label\": _ctx.ariaLabel,\n class: \"action-router focusable\",\n rel: \"nofollow noreferrer noopener\",\n role: $options.isInSemanticMenu && \"menuitem\",\n title: _ctx.title,\n to: $props.to,\n onClick: _ctx.onClick\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-router__icon\", [_ctx.isIconUrl ? \"action-router__icon--url\" : _ctx.icon]]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null })\n }, null, 6)\n ], true),\n _ctx.name ? (openBlock(), createElementBlock(\"span\", _hoisted_2, [\n createElementVNode(\"strong\", _hoisted_3, toDisplayString(_ctx.name), 1),\n _cache[0] || (_cache[0] = createElementVNode(\"br\", null, null, -1)),\n createElementVNode(\"span\", {\n class: \"action-router__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_4)\n ])) : _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-router__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)) : (openBlock(), createElementBlock(\"span\", _hoisted_6, toDisplayString(_ctx.text), 1)),\n createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"aria-label\", \"role\", \"title\", \"to\", \"onClick\"])\n ], 8, _hoisted_1);\n}\nconst NcActionRouter = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-87267750\"]]);\nexport {\n NcActionRouter as N\n};\n//# sourceMappingURL=NcActionRouter-DtxPh20B.mjs.map\n","import '../assets/NcActionText-D9InmayH.css';\nimport { A as ActionTextMixin } from \"./actionText-BXR0sWNu.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { createElementBlock, openBlock, createElementVNode, renderSlot, createCommentVNode, normalizeStyle, normalizeClass, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionText\",\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"action-text__longtext-wrapper\"\n};\nconst _hoisted_3 = { class: \"action-text__name\" };\nconst _hoisted_4 = [\"textContent\"];\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = {\n key: 2,\n class: \"action-text__text\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", {\n class: \"action\",\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createElementVNode(\"span\", {\n class: \"action-text\",\n onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args))\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n _ctx.icon !== \"\" ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-text__icon\", [_ctx.isIconUrl ? \"action-text__icon--url\" : _ctx.icon]]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null })\n }, null, 6)) : createCommentVNode(\"\", true)\n ], true),\n _ctx.name ? (openBlock(), createElementBlock(\"span\", _hoisted_2, [\n createElementVNode(\"strong\", _hoisted_3, toDisplayString(_ctx.name), 1),\n createElementVNode(\"span\", {\n class: \"action-text__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_4)\n ])) : _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-text__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)) : (openBlock(), createElementBlock(\"span\", _hoisted_6, toDisplayString(_ctx.text), 1)),\n createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_1);\n}\nconst NcActionText = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-fa684b48\"]]);\nexport {\n NcActionText as N\n};\n//# sourceMappingURL=NcActionText-Bd1fgVqA.mjs.map\n","import { useSlots as ce, ref as k, computed as z, watch as B, onMounted as G, onBeforeUnmount as X, provide as g, createBlock as ve, openBlock as Y, resolveDynamicComponent as me, nextTick as T, h as fe, inject as w, getCurrentInstance as de, createElementBlock as pe, normalizeStyle as ze, unref as he, renderSlot as xe } from \"vue\";\nconst Pe = {\n __name: \"splitpanes\",\n props: {\n horizontal: { type: Boolean, default: !1 },\n pushOtherPanes: { type: Boolean, default: !0 },\n maximizePanes: { type: Boolean, default: !0 },\n // Maximize pane on splitter double click/tap.\n rtl: { type: Boolean, default: !1 },\n // Right to left direction.\n firstSplitter: { type: Boolean, default: !1 }\n },\n emits: [\n \"ready\",\n \"resize\",\n \"resized\",\n \"pane-click\",\n \"pane-maximize\",\n \"pane-add\",\n \"pane-remove\",\n \"splitter-click\",\n \"splitter-dblclick\"\n ],\n setup(D, { emit: h }) {\n const y = h, u = D, E = ce(), l = k([]), M = z(() => l.value.reduce((e, n) => (e[~~n.id] = n) && e, {})), m = z(() => l.value.length), x = k(null), S = k(!1), c = k({\n mouseDown: !1,\n dragging: !1,\n activeSplitter: null,\n cursorOffset: 0\n // Cursor offset within the splitter.\n }), f = k({\n // Used to detect double click on touch devices.\n splitter: null,\n timeoutId: null\n }), _ = z(() => ({\n [`splitpanes splitpanes--${u.horizontal ? \"horizontal\" : \"vertical\"}`]: !0,\n \"splitpanes--dragging\": c.value.dragging\n })), R = () => {\n document.addEventListener(\"mousemove\", r, { passive: !1 }), document.addEventListener(\"mouseup\", P), \"ontouchstart\" in window && (document.addEventListener(\"touchmove\", r, { passive: !1 }), document.addEventListener(\"touchend\", P));\n }, O = () => {\n document.removeEventListener(\"mousemove\", r, { passive: !1 }), document.removeEventListener(\"mouseup\", P), \"ontouchstart\" in window && (document.removeEventListener(\"touchmove\", r, { passive: !1 }), document.removeEventListener(\"touchend\", P));\n }, b = (e, n) => {\n const t = e.target.closest(\".splitpanes__splitter\");\n if (t) {\n const { left: i, top: a } = t.getBoundingClientRect(), { clientX: s, clientY: o } = \"ontouchstart\" in window && e.touches ? e.touches[0] : e;\n c.value.cursorOffset = u.horizontal ? o - a : s - i;\n }\n R(), c.value.mouseDown = !0, c.value.activeSplitter = n;\n }, r = (e) => {\n c.value.mouseDown && (e.preventDefault(), c.value.dragging = !0, requestAnimationFrame(() => {\n K(I(e)), d(\"resize\", { event: e }, !0);\n }));\n }, P = (e) => {\n c.value.dragging && (window.getSelection().removeAllRanges(), d(\"resized\", { event: e }, !0)), c.value.mouseDown = !1, c.value.activeSplitter = null, setTimeout(() => {\n c.value.dragging = !1, O();\n }, 100);\n }, A = (e, n) => {\n \"ontouchstart\" in window && (e.preventDefault(), f.value.splitter === n ? (clearTimeout(f.value.timeoutId), f.value.timeoutId = null, U(e, n), f.value.splitter = null) : (f.value.splitter = n, f.value.timeoutId = setTimeout(() => f.value.splitter = null, 500))), c.value.dragging || d(\"splitter-click\", { event: e, index: n }, !0);\n }, U = (e, n) => {\n if (d(\"splitter-dblclick\", { event: e, index: n }, !0), u.maximizePanes) {\n let t = 0;\n l.value = l.value.map((i, a) => (i.size = a === n ? i.max : i.min, a !== n && (t += i.min), i)), l.value[n].size -= t, d(\"pane-maximize\", { event: e, index: n, pane: l.value[n] }), d(\"resized\", { event: e, index: n }, !0);\n }\n }, W = (e, n) => {\n d(\"pane-click\", {\n event: e,\n index: M.value[n].index,\n pane: M.value[n]\n });\n }, I = (e) => {\n const n = x.value.getBoundingClientRect(), { clientX: t, clientY: i } = \"ontouchstart\" in window && e.touches ? e.touches[0] : e;\n return {\n x: t - (u.horizontal ? 0 : c.value.cursorOffset) - n.left,\n y: i - (u.horizontal ? c.value.cursorOffset : 0) - n.top\n };\n }, J = (e) => {\n e = e[u.horizontal ? \"y\" : \"x\"];\n const n = x.value[u.horizontal ? \"clientHeight\" : \"clientWidth\"];\n return u.rtl && !u.horizontal && (e = n - e), e * 100 / n;\n }, K = (e) => {\n const n = c.value.activeSplitter;\n let t = {\n prevPanesSize: $(n),\n nextPanesSize: N(n),\n prevReachedMinPanes: 0,\n nextReachedMinPanes: 0\n };\n const i = 0 + (u.pushOtherPanes ? 0 : t.prevPanesSize), a = 100 - (u.pushOtherPanes ? 0 : t.nextPanesSize), s = Math.max(Math.min(J(e), a), i);\n let o = [n, n + 1], v = l.value[o[0]] || null, p = l.value[o[1]] || null;\n const H = v.max < 100 && s >= v.max + t.prevPanesSize, ue = p.max < 100 && s <= 100 - (p.max + N(n + 1));\n if (H || ue) {\n H ? (v.size = v.max, p.size = Math.max(100 - v.max - t.prevPanesSize - t.nextPanesSize, 0)) : (v.size = Math.max(100 - p.max - t.prevPanesSize - N(n + 1), 0), p.size = p.max);\n return;\n }\n if (u.pushOtherPanes) {\n const j = Q(t, s);\n if (!j) return;\n ({ sums: t, panesToResize: o } = j), v = l.value[o[0]] || null, p = l.value[o[1]] || null;\n }\n v !== null && (v.size = Math.min(Math.max(s - t.prevPanesSize - t.prevReachedMinPanes, v.min), v.max)), p !== null && (p.size = Math.min(Math.max(100 - s - t.nextPanesSize - t.nextReachedMinPanes, p.min), p.max));\n }, Q = (e, n) => {\n const t = c.value.activeSplitter, i = [t, t + 1];\n return n < e.prevPanesSize + l.value[i[0]].min && (i[0] = V(t).index, e.prevReachedMinPanes = 0, i[0] < t && l.value.forEach((a, s) => {\n s > i[0] && s <= t && (a.size = a.min, e.prevReachedMinPanes += a.min);\n }), e.prevPanesSize = $(i[0]), i[0] === void 0) ? (e.prevReachedMinPanes = 0, l.value[0].size = l.value[0].min, l.value.forEach((a, s) => {\n s > 0 && s <= t && (a.size = a.min, e.prevReachedMinPanes += a.min);\n }), l.value[i[1]].size = 100 - e.prevReachedMinPanes - l.value[0].min - e.prevPanesSize - e.nextPanesSize, null) : n > 100 - e.nextPanesSize - l.value[i[1]].min && (i[1] = Z(t).index, e.nextReachedMinPanes = 0, i[1] > t + 1 && l.value.forEach((a, s) => {\n s > t && s < i[1] && (a.size = a.min, e.nextReachedMinPanes += a.min);\n }), e.nextPanesSize = N(i[1] - 1), i[1] === void 0) ? (e.nextReachedMinPanes = 0, l.value.forEach((a, s) => {\n s < m.value - 1 && s >= t + 1 && (a.size = a.min, e.nextReachedMinPanes += a.min);\n }), l.value[i[0]].size = 100 - e.prevPanesSize - N(i[0] - 1), null) : { sums: e, panesToResize: i };\n }, $ = (e) => l.value.reduce((n, t, i) => n + (i < e ? t.size : 0), 0), N = (e) => l.value.reduce((n, t, i) => n + (i > e + 1 ? t.size : 0), 0), V = (e) => [...l.value].reverse().find((t) => t.index < e && t.size > t.min) || {}, Z = (e) => l.value.find((t) => t.index > e + 1 && t.size > t.min) || {}, ee = () => {\n var n;\n const e = Array.from(((n = x.value) == null ? void 0 : n.children) || []);\n for (const t of e) {\n const i = t.classList.contains(\"splitpanes__pane\"), a = t.classList.contains(\"splitpanes__splitter\");\n !i && !a && (t.remove(), console.warn(\"Splitpanes: Only <pane> elements are allowed at the root of <splitpanes>. One of your DOM nodes was removed.\"));\n }\n }, F = (e, n, t = !1) => {\n const i = e - 1, a = document.createElement(\"div\");\n a.classList.add(\"splitpanes__splitter\"), t || (a.onmousedown = (s) => b(s, i), typeof window < \"u\" && \"ontouchstart\" in window && (a.ontouchstart = (s) => b(s, i)), a.onclick = (s) => A(s, i + 1)), a.ondblclick = (s) => U(s, i + 1), n.parentNode.insertBefore(a, n);\n }, ne = (e) => {\n e.onmousedown = void 0, e.onclick = void 0, e.ondblclick = void 0, e.remove();\n }, C = () => {\n var t;\n const e = Array.from(((t = x.value) == null ? void 0 : t.children) || []);\n for (const i of e)\n i.className.includes(\"splitpanes__splitter\") && ne(i);\n let n = 0;\n for (const i of e)\n i.className.includes(\"splitpanes__pane\") && (!n && u.firstSplitter ? F(n, i, !0) : n && F(n, i), n++);\n }, ie = ({ uid: e, ...n }) => {\n const t = M.value[e];\n for (const [i, a] of Object.entries(n)) t[i] = a;\n }, te = (e) => {\n var t;\n let n = -1;\n Array.from(((t = x.value) == null ? void 0 : t.children) || []).some((i) => (i.className.includes(\"splitpanes__pane\") && n++, i.isSameNode(e.el))), l.value.splice(n, 0, { ...e, index: n }), l.value.forEach((i, a) => i.index = a), S.value && T(() => {\n C(), L({ addedPane: l.value[n] }), d(\"pane-add\", { pane: l.value[n] });\n });\n }, ae = (e) => {\n const n = l.value.findIndex((i) => i.id === e);\n l.value[n].el = null;\n const t = l.value.splice(n, 1)[0];\n l.value.forEach((i, a) => i.index = a), T(() => {\n C(), d(\"pane-remove\", { pane: t }), L({ removedPane: { ...t } });\n });\n }, L = (e = {}) => {\n !e.addedPane && !e.removedPane ? le() : l.value.some((n) => n.givenSize !== null || n.min || n.max < 100) ? oe(e) : se(), S.value && d(\"resized\");\n }, se = () => {\n const e = 100 / m.value;\n let n = 0;\n const t = [], i = [];\n for (const a of l.value)\n a.size = Math.max(Math.min(e, a.max), a.min), n -= a.size, a.size >= a.max && t.push(a.id), a.size <= a.min && i.push(a.id);\n n > 0.1 && q(n, t, i);\n }, le = () => {\n let e = 100;\n const n = [], t = [];\n let i = 0;\n for (const s of l.value)\n e -= s.size, s.givenSize !== null && i++, s.size >= s.max && n.push(s.id), s.size <= s.min && t.push(s.id);\n let a = 100;\n if (e > 0.1) {\n for (const s of l.value)\n s.givenSize === null && (s.size = Math.max(Math.min(e / (m.value - i), s.max), s.min)), a -= s.size;\n a > 0.1 && q(a, n, t);\n }\n }, oe = ({ addedPane: e, removedPane: n } = {}) => {\n let t = 100 / m.value, i = 0;\n const a = [], s = [];\n ((e == null ? void 0 : e.givenSize) ?? null) !== null && (t = (100 - e.givenSize) / (m.value - 1));\n for (const o of l.value)\n i -= o.size, o.size >= o.max && a.push(o.id), o.size <= o.min && s.push(o.id);\n if (!(Math.abs(i) < 0.1)) {\n for (const o of l.value)\n (e == null ? void 0 : e.givenSize) !== null && (e == null ? void 0 : e.id) === o.id || (o.size = Math.max(Math.min(t, o.max), o.min)), i -= o.size, o.size >= o.max && a.push(o.id), o.size <= o.min && s.push(o.id);\n i > 0.1 && q(i, a, s);\n }\n }, q = (e, n, t) => {\n let i;\n e > 0 ? i = e / (m.value - n.length) : i = e / (m.value - t.length), l.value.forEach((a, s) => {\n if (e > 0 && !n.includes(a.id)) {\n const o = Math.max(Math.min(a.size + i, a.max), a.min), v = o - a.size;\n e -= v, a.size = o;\n } else if (!t.includes(a.id)) {\n const o = Math.max(Math.min(a.size + i, a.max), a.min), v = o - a.size;\n e -= v, a.size = o;\n }\n }), Math.abs(e) > 0.1 && T(() => {\n S.value && console.warn(\"Splitpanes: Could not resize panes correctly due to their constraints.\");\n });\n }, d = (e, n = void 0, t = !1) => {\n const i = (n == null ? void 0 : n.index) ?? c.value.activeSplitter ?? null;\n y(e, {\n ...n,\n ...i !== null && { index: i },\n ...t && i !== null && {\n prevPane: l.value[i - (u.firstSplitter ? 1 : 0)],\n nextPane: l.value[i + (u.firstSplitter ? 0 : 1)]\n },\n panes: l.value.map((a) => ({ min: a.min, max: a.max, size: a.size }))\n });\n };\n B(() => u.firstSplitter, () => C()), G(() => {\n ee(), C(), L(), d(\"ready\"), S.value = !0;\n }), X(() => S.value = !1);\n const re = () => {\n var e;\n return fe(\n \"div\",\n { ref: x, class: _.value },\n (e = E.default) == null ? void 0 : e.call(E)\n );\n };\n return g(\"panes\", l), g(\"indexedPanes\", M), g(\"horizontal\", z(() => u.horizontal)), g(\"requestUpdate\", ie), g(\"onPaneAdd\", te), g(\"onPaneRemove\", ae), g(\"onPaneClick\", W), (e, n) => (Y(), ve(me(re)));\n }\n}, ge = {\n __name: \"pane\",\n props: {\n size: { type: [Number, String] },\n minSize: { type: [Number, String], default: 0 },\n maxSize: { type: [Number, String], default: 100 }\n },\n setup(D) {\n var b;\n const h = D, y = w(\"requestUpdate\"), u = w(\"onPaneAdd\"), E = w(\"horizontal\"), l = w(\"onPaneRemove\"), M = w(\"onPaneClick\"), m = (b = de()) == null ? void 0 : b.uid, x = w(\"indexedPanes\"), S = z(() => x.value[m]), c = k(null), f = z(() => {\n const r = isNaN(h.size) || h.size === void 0 ? 0 : parseFloat(h.size);\n return Math.max(Math.min(r, R.value), _.value);\n }), _ = z(() => {\n const r = parseFloat(h.minSize);\n return isNaN(r) ? 0 : r;\n }), R = z(() => {\n const r = parseFloat(h.maxSize);\n return isNaN(r) ? 100 : r;\n }), O = z(() => {\n var r;\n return `${E.value ? \"height\" : \"width\"}: ${(r = S.value) == null ? void 0 : r.size}%`;\n });\n return B(() => f.value, (r) => y({ uid: m, size: r })), B(() => _.value, (r) => y({ uid: m, min: r })), B(() => R.value, (r) => y({ uid: m, max: r })), G(() => {\n u({\n id: m,\n el: c.value,\n min: _.value,\n max: R.value,\n // The given size (useful to know the user intention).\n givenSize: h.size === void 0 ? null : f.value,\n size: f.value\n // The computed current size at any time.\n });\n }), X(() => l(m)), (r, P) => (Y(), pe(\"div\", {\n ref_key: \"paneEl\",\n ref: c,\n class: \"splitpanes__pane\",\n onClick: P[0] || (P[0] = (A) => he(M)(A, r._.uid)),\n style: ze(O.value)\n }, [\n xe(r.$slots, \"default\")\n ], 4));\n }\n};\nexport {\n ge as Pane,\n Pe as Splitpanes\n};\n","import { loadState } from \"@nextcloud/initial-state\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction once(func) {\n let wasCalled = false;\n let result;\n return (...args) => {\n if (!wasCalled) {\n wasCalled = true;\n result = func(...args);\n }\n return result;\n };\n}\nlet realAppName = \"missing-app-name\";\ntry {\n realAppName = appName;\n} catch {\n logger.error(\"The `@nextcloud/vue` library was used without setting / replacing the `appName`.\");\n}\nconst APP_NAME = realAppName;\nlet realAppVersion = \"\";\ntry {\n realAppVersion = appVersion;\n} catch {\n logger.error(\"The `@nextcloud/vue` library was used without setting / replacing the `appVersion`.\");\n}\nconst APP_VERSION = realAppVersion;\nconst getLocalizedAppName = once(() => {\n const activeApp = loadState(\"core\", \"active-app\", APP_NAME);\n return loadState(\"core\", \"apps\", []).find(({ id }) => id === activeApp)?.name ?? APP_NAME;\n});\nexport {\n APP_NAME as A,\n APP_VERSION as a,\n getLocalizedAppName as g\n};\n//# sourceMappingURL=appName-DtnLUijR.mjs.map\n","import '../assets/NcAppContent-HF21N7dO.css';\nimport { getBuilder } from \"@nextcloud/browser-storage\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { useSwipe } from \"@vueuse/core\";\nimport { Splitpanes, Pane } from \"splitpanes\";\nimport { defineComponent, watch, onMounted, onBeforeUnmount, createBlock, openBlock, unref, normalizeClass, withCtx, createVNode, resolveComponent, createElementBlock, createCommentVNode, renderSlot, toDisplayString, Fragment, withDirectives, withModifiers, createElementVNode, vShow } from \"vue\";\nimport { m as mdiArrowRight } from \"./mdi-CpchYUUV.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { r as register, G as t27, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { N as NcButton } from \"./NcButton-CzpKEx4V.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { g as getLocalizedAppName, A as APP_NAME } from \"./appName-DtnLUijR.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { i as isRtl } from \"./rtl-v0UOPAM7.mjs\";\nimport \"splitpanes/dist/splitpanes.css\";\nregister(t27);\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppContentDetailsToggle\",\n setup(__props) {\n const isMobile = useIsMobile();\n watch(isMobile, toggleAppNavigationButton);\n onMounted(() => {\n toggleAppNavigationButton(isMobile.value);\n });\n onBeforeUnmount(() => {\n if (isMobile.value) {\n toggleAppNavigationButton(false);\n }\n });\n function toggleAppNavigationButton(hide = true) {\n const appNavigationToggle = document.querySelector(\".app-navigation .app-navigation-toggle\");\n if (appNavigationToggle) {\n appNavigationToggle.style.display = hide ? \"none\" : \"\";\n if (hide === true) {\n emit(\"toggle-navigation\", { open: false });\n }\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcButton), {\n \"aria-label\": unref(t)(\"Go back to the list\"),\n class: normalizeClass([\"app-details-toggle\", { \"app-details-toggle--mobile\": unref(isMobile) }]),\n title: unref(t)(\"Go back to the list\"),\n variant: \"tertiary\"\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), {\n directional: \"\",\n path: unref(mdiArrowRight)\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"class\", \"title\"]);\n };\n }\n});\nconst NcAppContentDetailsToggle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__scopeId\", \"data-v-a28923a1\"]]);\nconst browserStorage = getBuilder(\"nextcloud\").persist().build();\nconst instanceName = getCapabilities().theming?.name ?? \"Nextcloud\";\nconst _sfc_main = {\n name: \"NcAppContent\",\n components: {\n NcAppContentDetailsToggle,\n Pane,\n Splitpanes\n },\n props: {\n /**\n * Allows to disable the control by swipe of the app navigation open state.\n */\n disableSwipe: {\n type: Boolean,\n default: false\n },\n /**\n * Allows you to set the default width of the resizable list in % on vertical-split\n * or respectively the default height on horizontal-split.\n *\n * Must be between `listMinWidth` and `listMaxWidth`.\n */\n listSize: {\n type: Number,\n default: 20\n },\n /**\n * Allows you to set the minimum width of the list column in % on vertical-split\n * or respectively the minimum height on horizontal-split.\n */\n listMinWidth: {\n type: Number,\n default: 15\n },\n /**\n * Allows you to set the maximum width of the list column in % on vertical-split\n * or respectively the maximum height on horizontal-split.\n */\n listMaxWidth: {\n type: Number,\n default: 40\n },\n /**\n * Specify the config key for the pane config sizes\n * Default is the global var appName if you use the webpack-vue-config\n */\n paneConfigKey: {\n type: String,\n default: \"\"\n },\n /**\n * When in mobile view, only the list or the details are shown.\n *\n * If you provide a list, you need to provide a variable\n * that will be set to true by the user when an element of\n * the list gets selected. The details will then show a back\n * arrow to return to the list that will update this prop to false.\n */\n showDetails: {\n type: Boolean,\n default: true\n },\n /**\n * Content layout used when there is a list together with content:\n * - `vertical-split` - a 2-column layout with list and default content separated vertically\n * - `no-split` - a single column layout; List is shown when `showDetails` is `false`, otherwise the default slot content is shown with a back button to return to the list.\n * - 'horizontal-split' - a 2-column layout with list and default content separated horizontally\n * On mobile screen `no-split` layout is forced.\n */\n layout: {\n type: String,\n default: \"vertical-split\",\n validator(value) {\n return [\"no-split\", \"vertical-split\", \"horizontal-split\"].includes(value);\n }\n },\n /**\n * Specify the `<h1>` page heading\n */\n pageHeading: {\n type: String,\n default: null\n },\n /**\n * Allow setting the page's `<title>`\n *\n * If a page heading is set it defaults to `{pageHeading} - {appName} - {instanceName}` e.g. `Favorites - Files - MyPersonalCloud`.\n * When the page heading and the app name is the same only one is used, e.g. `Files - Files - MyPersonalCloud` is shown as `Files - MyPersonalCloud`.\n * When setting the prop then the following format will be used: `{pageTitle} - {instanceName}`\n */\n pageTitle: {\n type: String,\n default: null\n }\n },\n emits: [\n \"update:showDetails\",\n \"resizeList\"\n ],\n setup() {\n return {\n isMobile: useIsMobile(),\n isRtl\n };\n },\n data() {\n return {\n contentHeight: 0,\n swiping: {},\n listPaneSize: this.restorePaneConfig()\n };\n },\n computed: {\n paneConfigID() {\n if (this.paneConfigKey !== \"\") {\n return `pane-list-size-${this.paneConfigKey}`;\n }\n try {\n return `pane-list-size-${APP_NAME}`;\n } catch {\n logger.info(\"[NcAppContent]: falling back to global nextcloud pane config\");\n return \"pane-list-size-nextcloud\";\n }\n },\n detailsPaneSize() {\n if (this.listPaneSize) {\n return 100 - this.listPaneSize;\n }\n return this.paneDefaults.details.size;\n },\n paneDefaults() {\n return {\n list: {\n size: this.listSize,\n min: this.listMinWidth,\n max: this.listMaxWidth\n },\n // set the inverse values of the details column\n // based on the provided (or default) values of the list column\n details: {\n size: 100 - this.listSize,\n min: 100 - this.listMaxWidth,\n max: 100 - this.listMinWidth\n }\n };\n },\n realPageTitle() {\n const entries = /* @__PURE__ */ new Set();\n if (this.pageTitle) {\n for (const part of this.pageTitle.split(\" - \")) {\n entries.add(part);\n }\n } else if (this.pageHeading) {\n for (const part of this.pageHeading.split(\" - \")) {\n entries.add(part);\n }\n if (entries.size > 0) {\n entries.add(getLocalizedAppName());\n }\n } else {\n return null;\n }\n entries.add(instanceName);\n return [...entries.values()].join(\" - \");\n }\n },\n watch: {\n realPageTitle: {\n immediate: true,\n handler() {\n if (this.realPageTitle !== null) {\n document.title = this.realPageTitle;\n }\n }\n },\n paneConfigKey: {\n immediate: true,\n handler() {\n this.restorePaneConfig();\n }\n }\n },\n mounted() {\n if (!this.disableSwipe) {\n this.swiping = useSwipe(this.$el, {\n onSwipeEnd: this.handleSwipe\n });\n }\n this.restorePaneConfig();\n },\n methods: {\n /**\n * handle the swipe event\n *\n * @param {TouchEvent} e The touch event\n * @param {import('@vueuse/core').SwipeDirection} direction The swipe direction of the event\n */\n handleSwipe(e, direction) {\n const minSwipeX = 70;\n const touchZone = 300;\n if (Math.abs(this.swiping.lengthX) > minSwipeX) {\n if (this.swiping.coordsStart.x < touchZone / 2 && direction === \"right\") {\n emit(\"toggle-navigation\", {\n open: true\n });\n } else if (this.swiping.coordsStart.x < touchZone * 1.5 && direction === \"left\") {\n emit(\"toggle-navigation\", {\n open: false\n });\n }\n }\n },\n handlePaneResize(event) {\n const listPaneSize = parseInt(event.panes[0].size, 10);\n browserStorage.setItem(this.paneConfigID, JSON.stringify(listPaneSize));\n this.listPaneSize = listPaneSize;\n this.$emit(\"resizeList\", { size: listPaneSize });\n logger.debug(\"[NcAppContent] pane config\", { listPaneSize });\n },\n // browserStorage is not reactive, we need to update this manually\n restorePaneConfig() {\n const listPaneSize = parseInt(browserStorage.getItem(this.paneConfigID), 10);\n if (!isNaN(listPaneSize) && listPaneSize !== this.listPaneSize) {\n logger.debug(\"[NcAppContent] pane config\", { listPaneSize });\n this.listPaneSize = listPaneSize;\n return listPaneSize;\n }\n },\n /**\n * The user clicked the back arrow from the details view\n */\n hideDetails() {\n this.$emit(\"update:showDetails\", false);\n }\n }\n};\nconst _hoisted_1 = {\n key: 0,\n class: \"hidden-visually\"\n};\nconst _hoisted_2 = {\n key: 1,\n class: \"app-content-wrapper\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAppContentDetailsToggle = resolveComponent(\"NcAppContentDetailsToggle\");\n const _component_Pane = resolveComponent(\"Pane\");\n const _component_Splitpanes = resolveComponent(\"Splitpanes\");\n return openBlock(), createElementBlock(\"main\", {\n id: \"app-content-vue\",\n class: normalizeClass([\"app-content no-snapper\", { \"app-content--has-list\": !!_ctx.$slots.list }])\n }, [\n $props.pageHeading ? (openBlock(), createElementBlock(\"h1\", _hoisted_1, toDisplayString($props.pageHeading), 1)) : createCommentVNode(\"\", true),\n !!_ctx.$slots.list ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n $setup.isMobile || $props.layout === \"no-split\" ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"app-content-wrapper app-content-wrapper--no-split\", {\n \"app-content-wrapper--show-details\": $props.showDetails,\n \"app-content-wrapper--show-list\": !$props.showDetails,\n \"app-content-wrapper--mobile\": $setup.isMobile\n }])\n }, [\n $props.showDetails ? (openBlock(), createBlock(_component_NcAppContentDetailsToggle, {\n key: 0,\n onClick: withModifiers($options.hideDetails, [\"stop\", \"prevent\"])\n }, null, 8, [\"onClick\"])) : createCommentVNode(\"\", true),\n withDirectives(createElementVNode(\"div\", null, [\n renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n ], 512), [\n [vShow, !$props.showDetails]\n ]),\n $props.showDetails ? renderSlot(_ctx.$slots, \"default\", { key: 1 }, void 0, true) : createCommentVNode(\"\", true)\n ], 2)) : $props.layout === \"vertical-split\" || $props.layout === \"horizontal-split\" ? (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n createVNode(_component_Splitpanes, {\n horizontal: $props.layout === \"horizontal-split\",\n class: normalizeClass([\"default-theme\", {\n \"splitpanes--horizontal\": $props.layout === \"horizontal-split\",\n \"splitpanes--vertical\": $props.layout === \"vertical-split\"\n }]),\n rtl: $setup.isRtl,\n onResized: $options.handlePaneResize\n }, {\n default: withCtx(() => [\n createVNode(_component_Pane, {\n class: \"splitpanes__pane-list\",\n size: $data.listPaneSize || $options.paneDefaults.list.size,\n \"min-size\": $options.paneDefaults.list.min,\n \"max-size\": $options.paneDefaults.list.max\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"size\", \"min-size\", \"max-size\"]),\n createVNode(_component_Pane, {\n class: \"splitpanes__pane-details\",\n size: $options.detailsPaneSize,\n \"min-size\": $options.paneDefaults.details.min,\n \"max-size\": $options.paneDefaults.details.max\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"size\", \"min-size\", \"max-size\"])\n ]),\n _: 3\n }, 8, [\"horizontal\", \"class\", \"rtl\", \"onResized\"])\n ])) : createCommentVNode(\"\", true)\n ], 64)) : createCommentVNode(\"\", true),\n !_ctx.$slots.list ? renderSlot(_ctx.$slots, \"default\", { key: 2 }, void 0, true) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst NcAppContent = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-a2641cc2\"]]);\nexport {\n NcAppContent as N\n};\n//# sourceMappingURL=NcAppContent-BTNf1r8Z.mjs.map\n","import '../assets/NcAppNavigationList--36j6Acm.css';\nimport { createElementBlock, openBlock, renderSlot } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcAppNavigationList\"\n};\nconst _hoisted_1 = { class: \"app-navigation-list\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"ul\", _hoisted_1, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]);\n}\nconst NcAppNavigationList = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-d72957ed\"]]);\nexport {\n NcAppNavigationList as N\n};\n//# sourceMappingURL=NcAppNavigationList-BX0wE-dB.mjs.map\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst HAS_APP_NAVIGATION_KEY = /* @__PURE__ */ Symbol.for(\"NcContent:setHasAppNavigation\");\nconst CONTENT_SELECTOR_KEY = /* @__PURE__ */ Symbol.for(\"NcContent:selector\");\nexport {\n CONTENT_SELECTOR_KEY as C,\n HAS_APP_NAVIGATION_KEY as H\n};\n//# sourceMappingURL=constants-Ciwvl5xb.mjs.map\n","import '../assets/NcAppNavigation-f2zUqaiQ.css';\nimport { defineComponent, useModel, computed, createElementBlock, openBlock, createVNode, unref, withCtx, inject, warn, useTemplateRef, ref, watchEffect, watch, onMounted, onUnmounted, normalizeClass, createElementVNode, withKeys, createBlock, createCommentVNode, renderSlot } from \"vue\";\nimport { subscribe, emit, unsubscribe } from \"@nextcloud/event-bus\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { N as NcAppNavigationList } from \"./NcAppNavigationList-BX0wE-dB.mjs\";\nimport { G as mdiMenuOpen, H as mdiMenu } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { r as register, P as t20, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { N as NcButton } from \"./NcButton-CzpKEx4V.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { H as HAS_APP_NAVIGATION_KEY } from \"./constants-Ciwvl5xb.mjs\";\nregister(t20);\nconst _hoisted_1$1 = { class: \"app-navigation-toggle-wrapper\" };\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigationToggle\",\n props: {\n \"open\": { type: Boolean, ...{ required: true } },\n \"openModifiers\": {}\n },\n emits: [\"update:open\"],\n setup(__props) {\n const open = useModel(__props, \"open\");\n const title = computed(() => open.value ? t(\"Close navigation\") : t(\"Open navigation\"));\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createVNode(unref(NcButton), {\n class: \"app-navigation-toggle\",\n \"aria-controls\": \"app-navigation-vue\",\n \"aria-expanded\": open.value ? \"true\" : \"false\",\n \"aria-label\": title.value,\n title: title.value,\n variant: \"tertiary\",\n onClick: _cache[0] || (_cache[0] = ($event) => open.value = !open.value)\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: open.value ? unref(mdiMenuOpen) : unref(mdiMenu)\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-expanded\", \"aria-label\", \"title\"])\n ]);\n };\n }\n});\nconst NcAppNavigationToggle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__scopeId\", \"data-v-5a15295d\"]]);\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\", \"aria-labelledby\", \"inert\"];\nconst _hoisted_2 = { class: \"app-navigation__search\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigation\",\n props: {\n ariaLabel: {},\n ariaLabelledby: {}\n },\n setup(__props) {\n const props = __props;\n let focusTrap;\n const setHasAppNavigation = inject(\n HAS_APP_NAVIGATION_KEY,\n () => warn(\"NcAppNavigation is not mounted inside NcContent, this is probably an error.\"),\n false\n );\n const appNavigationContainerElement = useTemplateRef(\"appNavigationContainer\");\n const isMobile = useIsMobile();\n const open = ref(!isMobile.value);\n watchEffect(() => {\n if (!props.ariaLabel && !props.ariaLabelledby) {\n warn(\"NcAppNavigation requires either `ariaLabel` or `ariaLabelledby` to be set for accessibility.\");\n }\n });\n watch(isMobile, () => {\n open.value = !isMobile.value;\n });\n watch(open, () => {\n toggleFocusTrap();\n });\n onMounted(() => {\n setHasAppNavigation(true);\n subscribe(\"toggle-navigation\", toggleNavigationByEventBus);\n emit(\"navigation-toggled\", {\n open: open.value\n });\n focusTrap = createFocusTrap(appNavigationContainerElement.value, {\n allowOutsideClick: true,\n fallbackFocus: appNavigationContainerElement.value,\n trapStack: getTrapStack(),\n escapeDeactivates: false\n });\n toggleFocusTrap();\n });\n onUnmounted(() => {\n setHasAppNavigation(false);\n unsubscribe(\"toggle-navigation\", toggleNavigationByEventBus);\n focusTrap.deactivate();\n });\n function toggleNavigation(state) {\n if (open.value === state) {\n emit(\"navigation-toggled\", {\n open: open.value\n });\n return;\n }\n open.value = state === void 0 ? !open.value : state;\n const bodyStyles = getComputedStyle(document.body);\n const animationLength = parseInt(bodyStyles.getPropertyValue(\"--animation-quick\")) || 100;\n setTimeout(() => {\n emit(\"navigation-toggled\", {\n open: open.value\n });\n }, 1.5 * animationLength);\n }\n function toggleNavigationByEventBus({ open: open2 }) {\n return toggleNavigation(open2);\n }\n function toggleFocusTrap() {\n if (isMobile.value && open.value) {\n focusTrap.activate();\n } else {\n focusTrap.deactivate();\n }\n }\n function handleEsc() {\n if (isMobile.value) {\n toggleNavigation(false);\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref: \"appNavigationContainer\",\n class: normalizeClass([\"app-navigation\", { \"app-navigation--closed\": !open.value }])\n }, [\n createElementVNode(\"nav\", {\n id: \"app-navigation-vue\",\n \"aria-hidden\": open.value ? \"false\" : \"true\",\n \"aria-label\": _ctx.ariaLabel || void 0,\n \"aria-labelledby\": _ctx.ariaLabelledby || void 0,\n class: \"app-navigation__content\",\n inert: !open.value || void 0,\n onKeydown: withKeys(handleEsc, [\"esc\"])\n }, [\n createElementVNode(\"div\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"search\", {}, void 0, true)\n ]),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation__body\", { \"app-navigation__body--no-list\": !_ctx.$slots.list }])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2),\n _ctx.$slots.list ? (openBlock(), createBlock(NcAppNavigationList, {\n key: 0,\n class: \"app-navigation__list\"\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n ]),\n _: 3\n })) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"footer\", {}, void 0, true)\n ], 40, _hoisted_1),\n createVNode(NcAppNavigationToggle, {\n open: open.value,\n \"onUpdate:open\": toggleNavigation\n }, null, 8, [\"open\"])\n ], 2);\n };\n }\n});\nconst NcAppNavigation = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-d5ce90cd\"]]);\nexport {\n NcAppNavigation as N\n};\n//# sourceMappingURL=NcAppNavigation-DQB0KqoZ.mjs.map\n","import '../assets/NcAppNavigationCaption-HUg9fMCm.css';\nimport { N as NcActions } from \"./NcActions-4R7icatI.mjs\";\nimport { resolveComponent, createBlock, openBlock, resolveDynamicComponent, normalizeClass, withCtx, createElementBlock, createCommentVNode, createTextVNode, toDisplayString, createVNode, normalizeProps, guardReactiveProps, renderSlot } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcAppNavigationCaption\",\n components: {\n NcActions\n },\n props: {\n /**\n * The text of the caption\n */\n name: {\n type: String,\n required: true\n },\n /**\n * `id` to set on the inner caption\n * Can be used for connecting the `NcActionCaption` with `NcActionList` using `aria-labelledby`.\n */\n headingId: {\n type: String,\n default: null\n },\n /**\n * Enable when used as a heading\n * e.g. Before NcAppNavigationList\n */\n isHeading: {\n type: Boolean,\n default: false\n },\n /**\n * If `isHeading` is set, this defines the heading level that should be used\n */\n headingLevel: {\n type: Number,\n default: 2\n },\n /**\n * Any [NcActions](#/Components/NcActions?id=ncactions-1) prop\n */\n // Not an actual prop but needed to show in vue-styleguidist docs\n ...NcActions.props\n },\n computed: {\n actionsProps() {\n const actionProps = Object.keys(NcActions.props);\n const props = Object.entries(this.$props).filter(([key, _value]) => actionProps.includes(key));\n return Object.fromEntries(props);\n },\n wrapperTag() {\n return this.isHeading ? \"div\" : \"li\";\n },\n captionTag() {\n const headingLevel = Math.max(2, this.headingLevel);\n return this.isHeading ? `h${headingLevel}` : \"span\";\n }\n }\n};\nconst _hoisted_1 = {\n key: 0,\n class: \"app-navigation-caption__actions\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcActions = resolveComponent(\"NcActions\");\n return openBlock(), createBlock(resolveDynamicComponent($options.wrapperTag), {\n class: normalizeClass([\"app-navigation-caption\", { \"app-navigation-caption--heading\": $props.isHeading }])\n }, {\n default: withCtx(() => [\n (openBlock(), createBlock(resolveDynamicComponent($options.captionTag), {\n id: $props.headingId,\n class: \"app-navigation-caption__name\"\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString($props.name), 1)\n ]),\n _: 1\n }, 8, [\"id\"])),\n !!_ctx.$slots.actions ? (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createVNode(_component_NcActions, normalizeProps(guardReactiveProps($options.actionsProps)), {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"actionsTriggerIcon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 3\n }, 16)\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"class\"]);\n}\nconst NcAppNavigationCaption = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-21e6b451\"]]);\nexport {\n NcAppNavigationCaption as N\n};\n//# sourceMappingURL=NcAppNavigationCaption-DiLoiMN5.mjs.map\n","import { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"ChevronDownIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon chevron-down-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst ChevronDown = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n ChevronDown as C\n};\n//# sourceMappingURL=ChevronDown-FiGpp0KT.mjs.map\n","import { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"ChevronUpIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon chevron-up-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst ChevronUp = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n ChevronUp as C\n};\n//# sourceMappingURL=ChevronUp-DPXFp1ss.mjs.map\n","import { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"ArrowRightIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon arrow-right-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst IconArrowRight = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n IconArrowRight as I\n};\n//# sourceMappingURL=ArrowRight-DRKHUZMH.mjs.map\n","import { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"CloseIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon close-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst IconClose = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n IconClose as I\n};\n//# sourceMappingURL=Close-D6ngJ4t9.mjs.map\n","import '../assets/NcInputConfirmCancel-BrdZEfr2.css';\nimport { I as IconArrowRight } from \"./ArrowRight-DRKHUZMH.mjs\";\nimport { I as IconClose } from \"./Close-D6ngJ4t9.mjs\";\nimport { r as register, k as t14, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { N as NcButton } from \"./NcButton-CzpKEx4V.mjs\";\nimport { resolveComponent, createElementBlock, openBlock, createElementVNode, withModifiers, withKeys, withDirectives, createVNode, vModelText, withCtx } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t14);\nconst _sfc_main = {\n name: \"NcInputConfirmCancel\",\n components: {\n IconArrowRight,\n IconClose,\n NcButton\n },\n props: {\n /**\n * If this element is used on a primary element set to true for primary styling.\n */\n primary: {\n default: false,\n type: Boolean\n },\n /**\n * Placeholder of the edit field\n */\n placeholder: {\n default: \"\",\n type: String\n },\n /**\n * The current name (model value)\n */\n modelValue: {\n default: \"\",\n type: String\n }\n },\n emits: [\n \"cancel\",\n \"confirm\",\n \"update:modelValue\"\n ],\n data() {\n return {\n labelConfirm: t(\"Confirm changes\"),\n labelCancel: t(\"Cancel changes\")\n };\n },\n computed: {\n valueModel: {\n get() {\n return this.modelValue;\n },\n set(newValue) {\n this.$emit(\"update:modelValue\", newValue);\n }\n }\n },\n methods: {\n confirm() {\n this.$emit(\"confirm\");\n },\n cancel() {\n this.$emit(\"cancel\");\n },\n focusInput() {\n this.$refs.input.focus();\n }\n }\n};\nconst _hoisted_1 = { class: \"app-navigation-input-confirm\" };\nconst _hoisted_2 = [\"placeholder\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_IconArrowRight = resolveComponent(\"IconArrowRight\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_IconClose = resolveComponent(\"IconClose\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createElementVNode(\"form\", {\n onSubmit: _cache[1] || (_cache[1] = withModifiers((...args) => $options.confirm && $options.confirm(...args), [\"prevent\"])),\n onKeydown: _cache[2] || (_cache[2] = withKeys(withModifiers((...args) => $options.cancel && $options.cancel(...args), [\"exact\", \"stop\", \"prevent\"]), [\"esc\"])),\n onClick: _cache[3] || (_cache[3] = withModifiers(() => {\n }, [\"stop\", \"prevent\"]))\n }, [\n withDirectives(createElementVNode(\"input\", {\n ref: \"input\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $options.valueModel = $event),\n type: \"text\",\n class: \"app-navigation-input-confirm__input\",\n placeholder: $props.placeholder\n }, null, 8, _hoisted_2), [\n [vModelText, $options.valueModel]\n ]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.labelConfirm,\n type: \"submit\",\n variant: \"primary\",\n onClick: withModifiers($options.confirm, [\"stop\", \"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconArrowRight, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.labelCancel,\n type: \"reset\",\n variant: $props.primary ? \"primary\" : \"tertiary\",\n onClick: withModifiers($options.cancel, [\"stop\", \"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconClose, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"variant\", \"onClick\"])\n ], 32)\n ]);\n}\nconst NcInputConfirmCancel = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-dd457d48\"]]);\nexport {\n NcInputConfirmCancel as N\n};\n//# sourceMappingURL=NcInputConfirmCancel-DjMO3Xyv.mjs.map\n","import { defineComponent } from \"vue\";\nconst _sfc_main = defineComponent({\n name: \"NcVNodes\",\n props: {\n /**\n * The vnodes to render\n */\n vnodes: {\n type: [Array, Object],\n default: null\n }\n },\n /**\n * The render function to display the component\n */\n render() {\n return this.vnodes || this.$slots?.default?.({});\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs.map\n","import '../assets/NcAppNavigationItem-D97Onpd9.css';\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, createBlock, normalizeClass, withCtx, resolveDynamicComponent, normalizeProps, guardReactiveProps, renderSlot, withKeys, withModifiers, createVNode, createTextVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { C as ChevronDown } from \"./ChevronDown-FiGpp0KT.mjs\";\nimport { C as ChevronUp } from \"./ChevronUp-DPXFp1ss.mjs\";\nimport { r as register, N as t21, a as t, b as t50, O as t23 } from \"./_l10n-CgsPi8nC.mjs\";\nimport { N as NcButton } from \"./NcButton-CzpKEx4V.mjs\";\nimport { N as NcInputConfirmCancel } from \"./NcInputConfirmCancel-DjMO3Xyv.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-DNXoAooH.mjs\";\nimport { N as NcActions } from \"./NcActions-4R7icatI.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-b_ajZ_nQ.mjs\";\nimport { _ as _sfc_main$4 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nconst _sfc_main$3 = {\n name: \"PencilIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$2 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon pencil-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$2);\n}\nconst Pencil = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\n name: \"UndoIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon undo-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$1);\n}\nconst Undo = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nregister(t21);\nconst _sfc_main$1 = {\n name: \"NcAppNavigationIconCollapsible\",\n components: {\n NcButton,\n ChevronDown,\n ChevronUp\n },\n props: {\n /**\n * Is the list currently open (or collapsed)\n */\n open: {\n type: Boolean,\n required: true\n },\n /**\n * Is the navigation item currently active.\n */\n active: {\n type: Boolean,\n required: true\n }\n },\n emits: [\"click\"],\n computed: {\n labelButton() {\n return this.open ? t(\"Collapse menu\") : t(\"Open menu\");\n }\n },\n methods: {\n onClick(e) {\n this.$emit(\"click\", e);\n }\n }\n};\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ChevronUp = resolveComponent(\"ChevronUp\");\n const _component_ChevronDown = resolveComponent(\"ChevronDown\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n return openBlock(), createBlock(_component_NcButton, {\n class: normalizeClass([\"icon-collapse\", {\n \"icon-collapse--active\": $props.active,\n \"icon-collapse--open\": $props.open\n }]),\n \"aria-label\": $options.labelButton,\n variant: $props.active ? \"tertiary-on-primary\" : \"tertiary\",\n onClick: $options.onClick\n }, {\n icon: withCtx(() => [\n $props.open ? (openBlock(), createBlock(_component_ChevronUp, {\n key: 0,\n size: 20\n })) : (openBlock(), createBlock(_component_ChevronDown, {\n key: 1,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"class\", \"aria-label\", \"variant\", \"onClick\"]);\n}\nconst NcAppNavigationIconCollapsible = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-e6236e50\"]]);\nregister(t23, t50);\nconst _sfc_main = {\n name: \"NcAppNavigationItem\",\n components: {\n NcActions,\n NcActionButton,\n NcAppNavigationIconCollapsible,\n NcInputConfirmCancel,\n NcLoadingIcon,\n NcVNodes: _sfc_main$4,\n Pencil,\n Undo\n },\n props: {\n /**\n * If you are not using vue-router you can use the property to set this item as the active navigation entry.\n * When using vue-router and the `to` property this is set automatically.\n */\n active: {\n type: Boolean,\n default: false\n },\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n required: true\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: null\n },\n /**\n * id attribute of the list item element\n */\n id: {\n type: String,\n default: () => createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * Refers to the icon on the left, this prop accepts a class\n * like 'icon-category-enabled'.\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * Displays a loading animated icon on the left of the element\n * instead of the icon.\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Passing in a route will make the root element of this\n * component a `<router-link />` that points to that route.\n * By leaving this blank, the root element will be a `<li>`.\n */\n to: {\n type: [String, Object],\n default: null\n },\n /**\n * A direct link. This will be used as the `href` attribute.\n * This will ignore any `to` prop being defined.\n */\n href: {\n type: String,\n default: null\n },\n /**\n * Gives the possibility to collapse the children elements into the\n * parent element (true) or expands the children elements (false).\n */\n allowCollapse: {\n type: Boolean,\n default: false\n },\n /**\n * Makes the name of the item editable by providing an `ActionButton`\n * component that toggles a form\n */\n editable: {\n type: Boolean,\n default: false\n },\n /**\n * Only for 'editable' items, sets label for the edit action button.\n */\n editLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Only for items in 'editable' mode, sets the placeholder text for the editing form.\n */\n editPlaceholder: {\n type: String,\n default: \"\"\n },\n /**\n * Pins the item to the bottom left area, above the settings. Do not\n * place 'non-pinned' `AppnavigationItem` components below `pinned`\n * ones.\n */\n pinned: {\n type: Boolean,\n default: false\n },\n /**\n * Puts the item in the 'undo' state.\n */\n undo: {\n type: Boolean,\n default: false\n },\n /**\n * The navigation collapsible state (synced)\n */\n open: {\n type: Boolean,\n default: false\n },\n /**\n * The actions menu open state (synced)\n */\n menuOpen: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * The action's menu default icon\n */\n menuIcon: {\n type: String,\n default: void 0\n },\n /**\n * The action's menu direction\n */\n menuPlacement: {\n type: String,\n default: \"bottom\"\n },\n /**\n * Entry aria details\n */\n ariaDescription: {\n type: String,\n default: null\n },\n /**\n * To be used only when the elements in the actions menu are very important\n */\n forceDisplayActions: {\n type: Boolean,\n default: false\n },\n /**\n * Number of action items outside the menu\n */\n inlineActions: {\n type: Number,\n default: 0\n }\n },\n emits: [\n \"update:menuOpen\",\n \"update:open\",\n \"update:name\",\n \"click\",\n \"undo\"\n ],\n setup() {\n return {\n isMobile: useIsMobile()\n };\n },\n data() {\n return {\n actionsBoundariesElement: void 0,\n editingValue: \"\",\n opened: this.open,\n // Collapsible state\n editingActive: false,\n /**\n * Tracks the open state of the actions menu\n */\n menuOpenLocalValue: false,\n focused: false\n };\n },\n computed: {\n isRouterLink() {\n return this.to && !this.href;\n },\n // Checks if the component is already a children of another\n // instance of AppNavigationItem\n canHaveChildren() {\n if (this.$parent.$options._componentTag === \"AppNavigationItem\") {\n return false;\n } else {\n return true;\n }\n },\n editButtonAriaLabel() {\n return this.editLabel ? this.editLabel : t(\"Edit item\");\n },\n undoButtonAriaLabel() {\n return t(\"Undo changes\");\n }\n },\n watch: {\n open(newVal) {\n this.opened = newVal;\n }\n },\n mounted() {\n this.actionsBoundariesElement = document.querySelector(\"#content-vue\") || void 0;\n },\n methods: {\n // sync opened menu state with prop\n onMenuToggle(state) {\n this.$emit(\"update:menuOpen\", state);\n this.menuOpenLocalValue = state;\n },\n // toggle the collapsible state\n toggleCollapse() {\n this.opened = !this.opened;\n this.$emit(\"update:open\", this.opened);\n },\n /**\n * Handle link click\n *\n * @param {PointerEvent} event - Native click event\n * @param {Function} [navigate] - VueRouter link's navigate if any\n * @param {string} [routerLinkHref] - VueRouter link's href\n */\n onClick(event, navigate, routerLinkHref) {\n this.$emit(\"click\", event);\n if (event.metaKey || event.altKey || event.ctrlKey || event.shiftKey) {\n return;\n }\n if (routerLinkHref) {\n navigate?.(event);\n event.preventDefault();\n }\n },\n // Edition methods\n handleEdit() {\n this.editingValue = this.name;\n this.editingActive = true;\n this.onMenuToggle(false);\n this.$nextTick(() => {\n this.$refs.editingInput.focusInput();\n });\n },\n cancelEditing() {\n this.editingActive = false;\n },\n handleEditingDone() {\n this.$emit(\"update:name\", this.editingValue);\n this.editingValue = \"\";\n this.editingActive = false;\n },\n // Undo methods\n handleUndo() {\n this.$emit(\"undo\");\n },\n /**\n * Show actions upon focus\n */\n handleFocus() {\n this.focused = true;\n },\n handleBlur() {\n this.focused = false;\n },\n /**\n * This method checks if the root element of the component is focused and\n * if that's the case it focuses the actions button if available\n *\n * @param {Event} e the keydown event\n */\n handleTab(e) {\n if (!this.$refs.actions) {\n return;\n }\n if (this.focused) {\n e.preventDefault();\n this.$refs.actions.$refs.triggerButton.$el.focus();\n this.focused = false;\n } else {\n this.$refs.actions.$refs.triggerButton.$el.blur();\n }\n },\n /**\n * Is this an external link\n *\n * @param {string} href The link to check\n * @return {boolean} Whether it is external or not\n */\n isExternal(href) {\n return href && href.match(/[a-z]+:\\/\\//i);\n }\n }\n};\nconst _hoisted_1 = [\"id\"];\nconst _hoisted_2 = [\"aria-current\", \"aria-description\", \"aria-expanded\", \"href\", \"target\", \"title\", \"onClick\"];\nconst _hoisted_3 = {\n key: 0,\n class: \"editingContainer\"\n};\nconst _hoisted_4 = {\n key: 1,\n class: \"app-navigation-entry__deleted\"\n};\nconst _hoisted_5 = { class: \"app-navigation-entry__deleted-description\" };\nconst _hoisted_6 = {\n key: 0,\n class: \"app-navigation-entry__counter-wrapper\"\n};\nconst _hoisted_7 = {\n key: 0,\n class: \"app-navigation-entry__children\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_NcInputConfirmCancel = resolveComponent(\"NcInputConfirmCancel\");\n const _component_Pencil = resolveComponent(\"Pencil\");\n const _component_NcActionButton = resolveComponent(\"NcActionButton\");\n const _component_Undo = resolveComponent(\"Undo\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_NcAppNavigationIconCollapsible = resolveComponent(\"NcAppNavigationIconCollapsible\");\n return openBlock(), createElementBlock(\"li\", {\n id: $props.id,\n class: normalizeClass([{\n \"app-navigation-entry--opened\": $data.opened,\n \"app-navigation-entry--pinned\": $props.pinned,\n \"app-navigation-entry--collapsible\": $props.allowCollapse && !!_ctx.$slots.default\n }, \"app-navigation-entry-wrapper\"])\n }, [\n (openBlock(), createBlock(resolveDynamicComponent($options.isRouterLink ? \"router-link\" : \"NcVNodes\"), normalizeProps(guardReactiveProps({ ...$options.isRouterLink && { custom: true, to: $props.to } })), {\n default: withCtx(({ href: routerLinkHref, navigate, isActive }) => [\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation-entry\", {\n \"app-navigation-entry--editing\": $data.editingActive,\n \"app-navigation-entry--deleted\": $props.undo,\n active: $props.to && isActive || $props.active\n }])\n }, [\n !$props.undo ? (openBlock(), createElementBlock(\"a\", {\n key: 0,\n class: \"app-navigation-entry-link\",\n \"aria-current\": $props.active || $props.to && isActive ? \"page\" : void 0,\n \"aria-description\": $props.ariaDescription,\n \"aria-expanded\": !!_ctx.$slots.default ? $data.opened.toString() : void 0,\n href: $props.href || routerLinkHref || \"#\",\n target: $options.isExternal($props.href) ? \"_blank\" : void 0,\n title: $props.title || $props.name,\n onBlur: _cache[1] || (_cache[1] = (...args) => $options.handleBlur && $options.handleBlur(...args)),\n onClick: ($event) => $options.onClick($event, navigate, routerLinkHref),\n onFocus: _cache[2] || (_cache[2] = (...args) => $options.handleFocus && $options.handleFocus(...args)),\n onKeydown: _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.handleTab && $options.handleTab(...args), [\"exact\"]), [\"tab\"]))\n }, [\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation-entry-icon\", { [$props.icon]: $props.icon }])\n }, [\n $props.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : renderSlot(_ctx.$slots, \"icon\", {\n key: 1,\n active: $props.active || $props.to && isActive\n }, void 0, true)\n ], 2),\n createElementVNode(\"span\", {\n class: normalizeClass([\"app-navigation-entry__name\", { \"hidden-visually\": $data.editingActive }])\n }, toDisplayString($props.name), 3),\n $data.editingActive ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n createVNode(_component_NcInputConfirmCancel, {\n ref: \"editingInput\",\n modelValue: $data.editingValue,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $data.editingValue = $event),\n placeholder: $props.editPlaceholder !== \"\" ? $props.editPlaceholder : $props.name,\n primary: $props.to && isActive || $props.active,\n onCancel: $options.cancelEditing,\n onConfirm: $options.handleEditingDone\n }, null, 8, [\"modelValue\", \"placeholder\", \"primary\", \"onCancel\", \"onConfirm\"])\n ])) : createCommentVNode(\"\", true)\n ], 40, _hoisted_2)) : createCommentVNode(\"\", true),\n $props.undo ? (openBlock(), createElementBlock(\"div\", _hoisted_4, [\n createElementVNode(\"div\", _hoisted_5, toDisplayString($props.name), 1)\n ])) : createCommentVNode(\"\", true),\n (!!_ctx.$slots.actions || !!_ctx.$slots.counter || $props.editable || $props.undo) && !$data.editingActive ? (openBlock(), createElementBlock(\"div\", {\n key: 2,\n class: normalizeClass([\"app-navigation-entry__utils\", { \"app-navigation-entry__utils--display-actions\": $props.forceDisplayActions || $data.menuOpenLocalValue || $props.menuOpen }])\n }, [\n !!_ctx.$slots.counter ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n renderSlot(_ctx.$slots, \"counter\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n !!_ctx.$slots.actions || $props.editable && !$data.editingActive || $props.undo ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n ref: \"actions\",\n class: \"app-navigation-entry__actions\",\n container: \"#app-navigation-vue\",\n \"boundaries-element\": $data.actionsBoundariesElement,\n inline: $props.inlineActions,\n placement: $props.menuPlacement,\n open: $props.menuOpen,\n \"force-menu\": $props.forceMenu,\n \"default-icon\": $props.menuIcon,\n variant: $props.to && isActive || $props.active ? \"tertiary-on-primary\" : \"tertiary\",\n \"onUpdate:open\": $options.onMenuToggle\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"menu-icon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n $props.editable && !$data.editingActive ? (openBlock(), createBlock(_component_NcActionButton, {\n key: 0,\n \"aria-label\": $options.editButtonAriaLabel,\n onClick: $options.handleEdit\n }, {\n icon: withCtx(() => [\n createVNode(_component_Pencil, { size: 20 })\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString($props.editLabel), 1)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : createCommentVNode(\"\", true),\n $props.undo ? (openBlock(), createBlock(_component_NcActionButton, {\n key: 1,\n \"aria-label\": $options.undoButtonAriaLabel,\n onClick: $options.handleUndo\n }, {\n icon: withCtx(() => [\n createVNode(_component_Undo, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 2\n }, 1032, [\"boundaries-element\", \"inline\", \"placement\", \"open\", \"force-menu\", \"default-icon\", \"variant\", \"onUpdate:open\"])) : createCommentVNode(\"\", true)\n ], 2)) : createCommentVNode(\"\", true),\n $props.allowCollapse && !!_ctx.$slots.default ? (openBlock(), createBlock(_component_NcAppNavigationIconCollapsible, {\n key: 3,\n active: $props.to && isActive || $props.active,\n open: $data.opened,\n onClick: withModifiers($options.toggleCollapse, [\"prevent\", \"stop\"])\n }, null, 8, [\"active\", \"open\", \"onClick\"])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"extra\", {}, void 0, true)\n ], 2)\n ]),\n _: 3\n }, 16)),\n $options.canHaveChildren && !!_ctx.$slots.default ? (openBlock(), createElementBlock(\"ul\", _hoisted_7, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 10, _hoisted_1);\n}\nconst NcAppNavigationItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-d600f829\"]]);\nexport {\n NcAppNavigationItem as N\n};\n//# sourceMappingURL=NcAppNavigationItem-OrqBniiI.mjs.map\n","import '../assets/NcAppNavigationSearch-BH8hBjGe.css';\nimport { defineComponent, mergeModels, useModel, useSlots, ref, useTemplateRef, watch, createElementBlock, openBlock, normalizeClass, createVNode, createCommentVNode, unref, withCtx, renderSlot, nextTick } from \"vue\";\nimport { useFocusWithin } from \"@vueuse/core\";\nimport { I as IconClose } from \"./Close-D6ngJ4t9.mjs\";\nimport { N as NcInputField } from \"./NcInputField-Clm9jOGJ.mjs\";\nimport { r as register, C as t43, u as t16, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t16, t43);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigationSearch\",\n props: /* @__PURE__ */ mergeModels({\n /**\n * Text used to label the search input\n */\n label: {\n type: String,\n default: t(\"Search …\")\n },\n /**\n * Placeholder of the search input\n * By default the value of `label` is used.\n */\n placeholder: {\n type: String,\n default: null\n }\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const model = useModel(__props, \"modelValue\");\n const slots = useSlots();\n const inputElement = ref();\n const { focused: inputHasFocus } = useFocusWithin(inputElement);\n const transitionTimeout = Number.parseInt(window.getComputedStyle(window.document.body).getPropertyValue(\"--animation-quick\")) || 100;\n const actionsContainerElement = useTemplateRef(\"actionsContainer\");\n const hasActions = () => !!slots.actions?.({});\n const showActions = ref(true);\n const timeoutId = ref();\n const hideActions = ref(false);\n watch(inputHasFocus, () => {\n showActions.value = !inputHasFocus.value;\n window.clearTimeout(timeoutId.value);\n if (showActions.value) {\n hideActions.value = false;\n } else {\n window.setTimeout(() => {\n hideActions.value = !showActions.value;\n }, transitionTimeout);\n }\n });\n function onCloseSearch() {\n model.value = \"\";\n if (hasActions()) {\n showActions.value = true;\n nextTick(() => actionsContainerElement.value?.querySelector(\"button\")?.focus());\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"app-navigation-search\", {\n \"app-navigation-search--has-actions\": hasActions()\n }])\n }, [\n createVNode(NcInputField, {\n ref_key: \"inputElement\",\n ref: inputElement,\n modelValue: model.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => model.value = $event),\n \"aria-label\": __props.label,\n class: \"app-navigation-search__input\",\n \"label-outside\": \"\",\n placeholder: __props.placeholder ?? __props.label,\n \"show-trailing-button\": \"\",\n \"trailing-button-label\": unref(t)(\"Clear search\"),\n type: \"search\",\n onTrailingButtonClick: onCloseSearch\n }, {\n \"trailing-button-icon\": withCtx(() => [\n createVNode(IconClose, { size: 20 })\n ]),\n _: 1\n }, 8, [\"modelValue\", \"aria-label\", \"placeholder\", \"trailing-button-label\"]),\n hasActions() ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n ref: \"actionsContainer\",\n class: normalizeClass([\"app-navigation-search__actions\", {\n \"app-navigation-search__actions--hidden\": !showActions.value,\n \"hidden-visually\": hideActions.value\n }])\n }, [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ], 2)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcAppNavigationSearch = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-f37737bd\"]]);\nexport {\n NcAppNavigationSearch as N\n};\n//# sourceMappingURL=NcAppNavigationSearch-ByuV3q2c.mjs.map\n","import '../assets/NcAppNavigationSettings-Bt0dnsjR.css';\nimport { defineComponent, ref, useTemplateRef, computed, createElementBlock, openBlock, normalizeClass, createElementVNode, createVNode, unref, withCtx, createTextVNode, toDisplayString, Transition, withDirectives, renderSlot, vShow } from \"vue\";\nimport { C as mdiCog, D as mdiCogOutline } from \"./mdi-CpchYUUV.mjs\";\nimport { onClickOutside } from \"@vueuse/core\";\nimport { N as NcButton } from \"./NcButton-CzpKEx4V.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { r as register, B as t46, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { i as isLegacy } from \"./legacy-DcjXBL_t.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t46);\nconst _hoisted_1 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigationSettings\",\n props: {\n excludeClickOutsideSelectors: { default: () => [] },\n name: { default: () => t(\"Settings\") }\n },\n setup(__props) {\n const contentId = createElementId();\n const open = ref(false);\n const container2 = useTemplateRef(\"wrapperElement\");\n const ignore = computed(() => Array.isArray(__props.excludeClickOutsideSelectors) ? __props.excludeClickOutsideSelectors : __props.excludeClickOutsideSelectors.split(\" \"));\n onClickOutside(container2, () => {\n open.value = false;\n }, { ignore });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref: \"wrapperElement\",\n class: normalizeClass(_ctx.$style.container)\n }, [\n createElementVNode(\"div\", {\n class: normalizeClass(_ctx.$style.header)\n }, [\n createVNode(NcButton, {\n \"aria-controls\": unref(contentId),\n \"aria-expanded\": open.value ? \"true\" : \"false\",\n class: normalizeClass(_ctx.$style.button),\n alignment: \"start\",\n variant: \"tertiary\",\n wide: \"\",\n onClick: _cache[0] || (_cache[0] = ($event) => open.value = !open.value)\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: unref(isLegacy) ? unref(mdiCog) : unref(mdiCogOutline)\n }, null, 8, [\"path\"])\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(_ctx.name), 1)\n ]),\n _: 1\n }, 8, [\"aria-controls\", \"aria-expanded\", \"class\"])\n ], 2),\n createVNode(Transition, {\n \"enter-active-class\": _ctx.$style.animationActive,\n \"leave-active-class\": _ctx.$style.animationActive,\n \"enter-from-class\": _ctx.$style.animationStop,\n \"leave-to-class\": _ctx.$style.animationStop\n }, {\n default: withCtx(() => [\n withDirectives(createElementVNode(\"div\", {\n id: unref(contentId),\n class: normalizeClass(_ctx.$style.content)\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 10, _hoisted_1), [\n [vShow, open.value]\n ])\n ]),\n _: 3\n }, 8, [\"enter-active-class\", \"leave-active-class\", \"enter-from-class\", \"leave-to-class\"])\n ], 2);\n };\n }\n});\nconst container = \"_container_fpy51_2\";\nconst header = \"_header_fpy51_7\";\nconst button = \"_button_fpy51_13\";\nconst content = \"_content_fpy51_21\";\nconst animationActive = \"_animationActive_fpy51_33\";\nconst animationStop = \"_animationStop_fpy51_39\";\nconst style0 = {\n container,\n header,\n button,\n content,\n animationActive,\n animationStop\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcAppNavigationSettings = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcAppNavigationSettings as N\n};\n//# sourceMappingURL=NcAppNavigationSettings-A0DXzd5B.mjs.map\n","import { inject } from \"vue\";\nconst APP_SETTINGS_REGISTRATION_KEY = /* @__PURE__ */ Symbol.for(\"NcAppSettingsDialog:registration\");\nconst APP_SETTINGS_LEGACY_DESIGN_KEY = /* @__PURE__ */ Symbol.for(\"NcAppSettingsDialog:legacy\");\nfunction useAppSettingsDialog() {\n return inject(APP_SETTINGS_REGISTRATION_KEY);\n}\nexport {\n APP_SETTINGS_LEGACY_DESIGN_KEY as A,\n APP_SETTINGS_REGISTRATION_KEY as a,\n useAppSettingsDialog as u\n};\n//# sourceMappingURL=useAppSettingsDialog-C73Wx6iQ.mjs.map\n","import '../assets/NcAppSettingsDialog-CapZ_qNk.css';\nimport { defineComponent, inject, createElementBlock, openBlock, normalizeClass, unref, toDisplayString, mergeModels, useModel, provide, toRef, useTemplateRef, ref, computed, onBeforeUnmount, warn, createBlock, createCommentVNode, createSlots, withCtx, createElementVNode, renderSlot, Fragment, renderList, withKeys, withModifiers } from \"vue\";\nimport debounce from \"debounce\";\nimport { N as NcDialog } from \"./NcDialog-BHl_LOs_.mjs\";\nimport { _ as _sfc_main$2 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nimport { g as getLocalizedAppName, a as APP_VERSION } from \"./appName-DtnLUijR.mjs\";\nimport { A as APP_SETTINGS_LEGACY_DESIGN_KEY, a as APP_SETTINGS_REGISTRATION_KEY } from \"./useAppSettingsDialog-C73Wx6iQ.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { r as register, I as t47, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSettingsDialogVersion\",\n setup(__props) {\n const legacy = inject(APP_SETTINGS_LEGACY_DESIGN_KEY);\n const localizedAppName = getLocalizedAppName();\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([_ctx.$style.appSettingsDialogVersion, { [_ctx.$style.appSettingsDialogVersion__legacy]: unref(legacy) }])\n }, toDisplayString(unref(localizedAppName)) + \" \" + toDisplayString(unref(APP_VERSION)), 3);\n };\n }\n});\nconst appSettingsDialogVersion = \"_appSettingsDialogVersion_pq4io_20\";\nconst appSettingsDialogVersion__legacy = \"_appSettingsDialogVersion__legacy_pq4io_27\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_pq4io_12\",\n appSettingsDialogVersion,\n appSettingsDialogVersion__legacy\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcAppSettingsDialogVersion = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__cssModules\", cssModules]]);\nregister(t47);\nconst _hoisted_1 = {\n key: 0,\n class: \"navigation-list\"\n};\nconst _hoisted_2 = [\"aria-current\", \"href\", \"onClick\", \"onKeydown\"];\nconst _hoisted_3 = {\n key: 0,\n class: \"navigation-list__link-icon\"\n};\nconst _hoisted_4 = { class: \"navigation-list__link-text\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSettingsDialog\",\n props: /* @__PURE__ */ mergeModels({\n showNavigation: { type: Boolean },\n container: { default: \"body\" },\n name: { default: \"\" },\n additionalTrapElements: { default: () => [] },\n legacy: { type: Boolean, default: false },\n noVersion: { type: Boolean, default: false }\n }, {\n \"open\": { type: Boolean, ...{ required: true } },\n \"openModifiers\": {}\n }),\n emits: [\"update:open\"],\n setup(__props) {\n const open = useModel(__props, \"open\");\n const props = __props;\n provide(APP_SETTINGS_REGISTRATION_KEY, {\n registerSection,\n unregisterSection\n });\n provide(APP_SETTINGS_LEGACY_DESIGN_KEY, toRef(() => props.legacy));\n const settingsScrollerElement = useTemplateRef(\"settingsScroller\");\n const isMobile = useIsMobile();\n const selectedSection = ref(\"\");\n const linkClicked = ref(false);\n const registeredSections = ref([]);\n const hasNavigation = computed(() => !isMobile.value && props.showNavigation);\n const hasNavigationIcons = computed(() => registeredSections.value.some(({ icon }) => !!icon));\n const unfocusNavigationItem = debounce(() => {\n selectedSection.value = \"\";\n if (document.activeElement?.className.includes(\"navigation-list__link\")) {\n document.activeElement.blur();\n }\n }, 300);\n const sectionsOrderMap = /* @__PURE__ */ new Map();\n onBeforeUnmount(() => {\n sectionsOrderMap.clear();\n });\n function handleSettingsNavigationClick(item) {\n linkClicked.value = true;\n document.getElementById(\"settings-section_\" + item).scrollIntoView({\n behavior: \"smooth\",\n inline: \"nearest\"\n });\n selectedSection.value = item;\n setTimeout(() => {\n linkClicked.value = false;\n }, 1e3);\n }\n function handleCloseModal(isOpen) {\n if (isOpen) {\n return;\n }\n open.value = false;\n settingsScrollerElement.value.scrollTop = 0;\n }\n function handleScroll() {\n if (open.value && !linkClicked.value) {\n unfocusNavigationItem();\n }\n }\n function registerSection(id, name, order, icon) {\n if (registeredSections.value.some(({ id: otherId }) => id === otherId)) {\n throw new Error(`Duplicate section id found: ${id}. Settings navigation sections must have unique section ids.`);\n }\n if (registeredSections.value.some(({ name: otherName }) => name === otherName)) {\n warn(`Duplicate section name found: ${name}. Settings navigation sections must have unique section names.`);\n }\n if (order !== void 0) {\n sectionsOrderMap.set(id, order);\n } else if (sectionsOrderMap.has(id)) {\n order = sectionsOrderMap.get(id);\n } else {\n order = Math.max(0, ...sectionsOrderMap.values()) + 1;\n sectionsOrderMap.set(id, order);\n }\n registeredSections.value = [...registeredSections.value, { id, name, order, icon }].sort(({ order: orderA }, { order: orderB }) => {\n return orderA - orderB;\n });\n if (registeredSections.value.length === 1) {\n selectedSection.value = id;\n }\n }\n function unregisterSection(id) {\n registeredSections.value = registeredSections.value.filter(({ id: otherId }) => id !== otherId);\n if (selectedSection.value === id) {\n selectedSection.value = registeredSections.value[0]?.id ?? \"\";\n }\n }\n return (_ctx, _cache) => {\n return open.value ? (openBlock(), createBlock(NcDialog, {\n key: 0,\n class: \"app-settings\",\n \"content-classes\": \"app-settings__content\",\n \"navigation-classes\": \"app-settings__navigation\",\n \"additional-trap-elements\": _ctx.additionalTrapElements,\n container: _ctx.container,\n \"close-on-click-outside\": \"\",\n \"navigation-aria-label\": unref(t)(\"Settings navigation\"),\n size: \"large\",\n name: _ctx.name,\n \"onUpdate:open\": handleCloseModal\n }, createSlots({\n default: withCtx(() => [\n createElementVNode(\"div\", {\n ref: \"settingsScroller\",\n onScroll: handleScroll\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true),\n !_ctx.noVersion ? (openBlock(), createBlock(NcAppSettingsDialogVersion, { key: 0 })) : createCommentVNode(\"\", true)\n ], 544)\n ]),\n _: 2\n }, [\n hasNavigation.value ? {\n name: \"navigation\",\n fn: withCtx(({ isCollapsed }) => [\n !isCollapsed ? (openBlock(), createElementBlock(\"ul\", _hoisted_1, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(registeredSections.value, (section) => {\n return openBlock(), createElementBlock(\"li\", {\n key: section.id\n }, [\n createElementVNode(\"a\", {\n \"aria-current\": `${section.id === selectedSection.value}`,\n class: normalizeClass([\"navigation-list__link\", {\n \"navigation-list__link--active\": section.id === selectedSection.value,\n \"navigation-list__link--icon\": hasNavigationIcons.value\n }]),\n href: `#settings-section_${section.id}`,\n tabindex: \"0\",\n onClick: withModifiers(($event) => handleSettingsNavigationClick(section.id), [\"prevent\"]),\n onKeydown: withKeys(($event) => handleSettingsNavigationClick(section.id), [\"enter\"])\n }, [\n hasNavigationIcons.value ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n section.icon ? (openBlock(), createBlock(_sfc_main$2, {\n key: 0,\n vnodes: section.icon\n }, null, 8, [\"vnodes\"])) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_4, toDisplayString(section.name), 1)\n ], 42, _hoisted_2)\n ]);\n }), 128))\n ])) : createCommentVNode(\"\", true)\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"additional-trap-elements\", \"container\", \"navigation-aria-label\", \"name\"])) : createCommentVNode(\"\", true);\n };\n }\n});\nconst NcAppSettingsDialog = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-ca87a6fd\"]]);\nexport {\n NcAppSettingsDialog as N\n};\n//# sourceMappingURL=NcAppSettingsDialog-BaN30xl4.mjs.map\n","import '../assets/NcAppSettingsShortcutsSection-CRO4RakN.css';\nimport { defineComponent, createBlock, openBlock, unref, withCtx, createElementVNode, normalizeClass, renderSlot } from \"vue\";\nimport { N as NcAppSettingsSection } from \"./NcAppSettingsSection-B2pFK0UK.mjs\";\nimport { r as register, p as t31, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t31);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSettingsShortcutsSection\",\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcAppSettingsSection, {\n id: \"keyboard-shortcuts\",\n name: unref(t)(\"Keyboard shortcuts\")\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", {\n class: normalizeClass(_ctx.$style.appSettingsSectionShortcuts)\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 2)\n ]),\n _: 3\n }, 8, [\"name\"]);\n };\n }\n});\nconst appSettingsSectionShortcuts = \"_appSettingsSectionShortcuts_1trvh_2\";\nconst style0 = {\n appSettingsSectionShortcuts\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcAppSettingsShortcutsSection = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcAppSettingsShortcutsSection as N\n};\n//# sourceMappingURL=NcAppSettingsShortcutsSection-DDmDMMsF.mjs.map\n","import { defaultWindow, isClient, onClickOutside, onKeyStroke, onLongPress, useActiveElement, useBattery, useBrowserLocation, useClipboard, useColorMode, useDark, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDocumentVisibility, useDraggable, useElementBounding, useElementHover, useElementSize, useElementVisibility, useEyeDropper, useFullscreen, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useMouse, useMouseInElement, useMousePressed, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, usePointer, usePointerLock, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePreferredReducedTransparency, useResizeObserver, useScreenSafeArea, useScroll, useScrollLock, useStorage, useTimeAgo, useTimestamp, useVirtualList, useWindowFocus, useWindowSize } from \"@vueuse/core\";\nimport { computed, defineComponent, h, reactive, shallowRef, toRefs, toValue, watch } from \"vue\";\nimport { reactiveOmit, toRefs as toRefs$1, useToggle } from \"@vueuse/shared\";\n\n//#region ../core/onClickOutside/component.ts\nconst OnClickOutside = /* @__PURE__ */ defineComponent((props, { slots, emit }) => {\n\tconst target = shallowRef();\n\tonClickOutside(target, (e) => {\n\t\temit(\"trigger\", e);\n\t}, props.options);\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default());\n\t};\n}, {\n\tname: \"OnClickOutside\",\n\tprops: [\"as\", \"options\"],\n\temits: [\"trigger\"]\n});\n\n//#endregion\n//#region ../core/onClickOutside/directive.ts\nconst stopClickOutsideMap = /* @__PURE__ */ new WeakMap();\nconst vOnClickOutside = {\n\tmounted(el, binding) {\n\t\tconst capture = !binding.modifiers.bubble;\n\t\tlet stop;\n\t\tif (typeof binding.value === \"function\") stop = onClickOutside(el, binding.value, { capture });\n\t\telse {\n\t\t\tconst [handler, options] = binding.value;\n\t\t\tstop = onClickOutside(el, handler, Object.assign({ capture }, options));\n\t\t}\n\t\tstopClickOutsideMap.set(el, stop);\n\t},\n\tunmounted(el) {\n\t\tconst stop = stopClickOutsideMap.get(el);\n\t\tif (stop && typeof stop === \"function\") stop();\n\t\telse stop === null || stop === void 0 || stop.stop();\n\t\tstopClickOutsideMap.delete(el);\n\t}\n};\n/** @deprecated use `vOnClickOutside` instead */\nconst VOnClickOutside = vOnClickOutside;\n\n//#endregion\n//#region ../core/onKeyStroke/directive.ts\nconst vOnKeyStroke = { mounted(el, binding) {\n\tvar _binding$arg$split, _binding$arg;\n\tconst keys = (_binding$arg$split = (_binding$arg = binding.arg) === null || _binding$arg === void 0 ? void 0 : _binding$arg.split(\",\")) !== null && _binding$arg$split !== void 0 ? _binding$arg$split : true;\n\tif (typeof binding.value === \"function\") onKeyStroke(keys, binding.value, { target: el });\n\telse {\n\t\tconst [handler, options] = binding.value;\n\t\tonKeyStroke(keys, handler, {\n\t\t\ttarget: el,\n\t\t\t...options\n\t\t});\n\t}\n} };\n\n//#endregion\n//#region ../core/onLongPress/component.ts\nconst OnLongPress = /* @__PURE__ */ defineComponent((props, { slots, emit }) => {\n\tconst target = shallowRef();\n\tconst data = onLongPress(target, (e) => {\n\t\temit(\"trigger\", e);\n\t}, props.options);\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"OnLongPress\",\n\tprops: [\"as\", \"options\"],\n\temits: [\"trigger\"]\n});\n\n//#endregion\n//#region ../core/onLongPress/directive.ts\nconst vOnLongPress = { mounted(el, binding) {\n\tif (typeof binding.value === \"function\") onLongPress(el, binding.value, { modifiers: binding.modifiers });\n\telse onLongPress(el, ...binding.value);\n} };\n/** @deprecated use `vOnLongPress` instead */\nconst VOnLongPress = vOnLongPress;\n\n//#endregion\n//#region ../core/useActiveElement/component.ts\nconst UseActiveElement = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ element: useActiveElement(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseActiveElement\",\n\tprops: [\n\t\t\"deep\",\n\t\t\"triggerOnRemoval\",\n\t\t\"window\",\n\t\t\"document\"\n\t]\n});\n\n//#endregion\n//#region ../core/useBattery/component.ts\nconst UseBattery = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useBattery(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseBattery\",\n\tprops: [\"navigator\"]\n});\n\n//#endregion\n//#region ../core/useBrowserLocation/component.ts\nconst UseBrowserLocation = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useBrowserLocation(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseBrowserLocation\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/useClipboard/component.ts\nconst UseClipboard = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useClipboard(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseClipboard\",\n\tprops: [\n\t\t\"source\",\n\t\t\"read\",\n\t\t\"navigator\",\n\t\t\"copiedDuring\",\n\t\t\"legacy\"\n\t]\n});\n\n//#endregion\n//#region ../core/useColorMode/component.ts\nconst UseColorMode = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst mode = useColorMode(props);\n\tconst data = reactive({\n\t\tmode,\n\t\tsystem: mode.system,\n\t\tstore: mode.store\n\t});\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseColorMode\",\n\tprops: [\n\t\t\"attribute\",\n\t\t\"deep\",\n\t\t\"disableTransition\",\n\t\t\"emitAuto\",\n\t\t\"eventFilter\",\n\t\t\"flush\",\n\t\t\"initOnMounted\",\n\t\t\"initialValue\",\n\t\t\"listenToStorageChanges\",\n\t\t\"mergeDefaults\",\n\t\t\"modes\",\n\t\t\"onChanged\",\n\t\t\"onError\",\n\t\t\"selector\",\n\t\t\"serializer\",\n\t\t\"shallow\",\n\t\t\"storage\",\n\t\t\"storageKey\",\n\t\t\"storageRef\",\n\t\t\"window\",\n\t\t\"writeDefaults\"\n\t]\n});\n\n//#endregion\n//#region ../core/useDark/component.ts\nconst UseDark = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst isDark = useDark(props);\n\tconst data = reactive({\n\t\tisDark,\n\t\ttoggleDark: useToggle(isDark)\n\t});\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDark\",\n\tprops: [\n\t\t\"attribute\",\n\t\t\"deep\",\n\t\t\"disableTransition\",\n\t\t\"emitAuto\",\n\t\t\"eventFilter\",\n\t\t\"flush\",\n\t\t\"initOnMounted\",\n\t\t\"initialValue\",\n\t\t\"listenToStorageChanges\",\n\t\t\"mergeDefaults\",\n\t\t\"onChanged\",\n\t\t\"onError\",\n\t\t\"selector\",\n\t\t\"serializer\",\n\t\t\"shallow\",\n\t\t\"storage\",\n\t\t\"storageKey\",\n\t\t\"storageRef\",\n\t\t\"valueDark\",\n\t\t\"valueLight\",\n\t\t\"window\",\n\t\t\"writeDefaults\"\n\t]\n});\n\n//#endregion\n//#region ../core/useDeviceMotion/component.ts\nconst UseDeviceMotion = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = useDeviceMotion(props);\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDeviceMotion\",\n\tprops: [\n\t\t\"eventFilter\",\n\t\t\"requestPermissions\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\n//#region ../core/useDeviceOrientation/component.ts\nconst UseDeviceOrientation = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useDeviceOrientation(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDeviceOrientation\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/useDevicePixelRatio/component.ts\nconst UseDevicePixelRatio = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useDevicePixelRatio(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDevicePixelRatio\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/useDevicesList/component.ts\nconst UseDevicesList = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useDevicesList(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDevicesList\",\n\tprops: [\n\t\t\"constraints\",\n\t\t\"navigator\",\n\t\t\"onUpdated\",\n\t\t\"requestPermissions\"\n\t]\n});\n\n//#endregion\n//#region ../core/useDocumentVisibility/component.ts\nconst UseDocumentVisibility = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ visibility: useDocumentVisibility(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDocumentVisibility\",\n\tprops: [\"document\"]\n});\n\n//#endregion\n//#region ../core/useDraggable/component.ts\nconst UseDraggable = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst handle = computed(() => {\n\t\tvar _toValue;\n\t\treturn (_toValue = toValue(props.handle)) !== null && _toValue !== void 0 ? _toValue : target.value;\n\t});\n\tconst containerElement = computed(() => {\n\t\tvar _ref;\n\t\treturn (_ref = props.containerElement) !== null && _ref !== void 0 ? _ref : void 0;\n\t});\n\tconst disabled = computed(() => !!props.disabled);\n\tconst storageValue = props.storageKey && useStorage(props.storageKey, toValue(props.initialValue) || {\n\t\tx: 0,\n\t\ty: 0\n\t}, isClient ? props.storageType === \"session\" ? sessionStorage : localStorage : void 0);\n\tconst initialValue = storageValue || props.initialValue || {\n\t\tx: 0,\n\t\ty: 0\n\t};\n\tconst onEnd = (position, event) => {\n\t\tvar _props$onEnd;\n\t\t(_props$onEnd = props.onEnd) === null || _props$onEnd === void 0 || _props$onEnd.call(props, position, event);\n\t\tif (!storageValue) return;\n\t\tstorageValue.value.x = position.x;\n\t\tstorageValue.value.y = position.y;\n\t};\n\tconst data = reactive(useDraggable(target, {\n\t\t...props,\n\t\thandle,\n\t\tinitialValue,\n\t\tonEnd,\n\t\tdisabled,\n\t\tcontainerElement\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", {\n\t\t\tref: target,\n\t\t\tstyle: `touch-action:none;${data.style}`\n\t\t}, slots.default(data));\n\t};\n}, {\n\tname: \"UseDraggable\",\n\tprops: [\n\t\t\"storageKey\",\n\t\t\"storageType\",\n\t\t\"initialValue\",\n\t\t\"exact\",\n\t\t\"preventDefault\",\n\t\t\"stopPropagation\",\n\t\t\"pointerTypes\",\n\t\t\"as\",\n\t\t\"handle\",\n\t\t\"axis\",\n\t\t\"onStart\",\n\t\t\"onMove\",\n\t\t\"onEnd\",\n\t\t\"disabled\",\n\t\t\"buttons\",\n\t\t\"containerElement\",\n\t\t\"capture\",\n\t\t\"draggingElement\"\n\t]\n});\n\n//#endregion\n//#region ../core/useElementBounding/component.ts\nconst UseElementBounding = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useElementBounding(target, props));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseElementBounding\",\n\tprops: [\n\t\t\"as\",\n\t\t\"immediate\",\n\t\t\"reset\",\n\t\t\"updateTiming\",\n\t\t\"windowResize\",\n\t\t\"windowScroll\"\n\t]\n});\n\n//#endregion\n//#region ../core/useElementBounding/directive.ts\nconst vElementBounding = { mounted(el, binding) {\n\tconst [handler, options] = typeof binding.value === \"function\" ? [binding.value, {}] : binding.value;\n\tconst { height, bottom, left, right, top, width, x, y } = useElementBounding(el, options);\n\twatch([\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty\n\t], () => handler({\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty\n\t}));\n} };\n\n//#endregion\n//#region ../core/useElementHover/directive.ts\nconst vElementHover = { mounted(el, binding) {\n\tconst value = binding.value;\n\tif (typeof value === \"function\") watch(useElementHover(el), (v) => value(v));\n\telse {\n\t\tconst [handler, options] = value;\n\t\twatch(useElementHover(el, options), (v) => handler(v));\n\t}\n} };\n\n//#endregion\n//#region ../core/useElementSize/component.ts\nconst UseElementSize = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tvar _toValue, _toValue2;\n\tconst target = shallowRef();\n\tconst { width, height } = toRefs(props);\n\tconst data = reactive(useElementSize(target, {\n\t\twidth: (_toValue = toValue(width)) !== null && _toValue !== void 0 ? _toValue : 0,\n\t\theight: (_toValue2 = toValue(height)) !== null && _toValue2 !== void 0 ? _toValue2 : 0\n\t}, {\n\t\tbox: props.box,\n\t\twindow: props.window\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseElementSize\",\n\tprops: [\n\t\t\"as\",\n\t\t\"box\",\n\t\t\"height\",\n\t\t\"width\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\n//#region ../core/useElementSize/directive.ts\nconst vElementSize = { mounted(el, binding) {\n\tvar _binding$value;\n\tconst handler = typeof binding.value === \"function\" ? binding.value : (_binding$value = binding.value) === null || _binding$value === void 0 ? void 0 : _binding$value[0];\n\tconst { width, height } = useElementSize(el, ...typeof binding.value === \"function\" ? [] : binding.value.slice(1));\n\twatch([width, height], ([width$1, height$1]) => handler({\n\t\twidth: width$1,\n\t\theight: height$1\n\t}));\n} };\n\n//#endregion\n//#region ../core/useElementVisibility/component.ts\nconst UseElementVisibility = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive({ isVisible: useElementVisibility(target, props) });\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseElementVisibility\",\n\tprops: [\n\t\t\"as\",\n\t\t\"once\",\n\t\t\"rootMargin\",\n\t\t\"scrollTarget\",\n\t\t\"threshold\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\n//#region ../core/useElementVisibility/directive.ts\nconst vElementVisibility = { mounted(el, binding) {\n\tif (typeof binding.value === \"function\") {\n\t\tconst handler = binding.value;\n\t\twatch(useElementVisibility(el), (v) => handler(v), { immediate: true });\n\t} else {\n\t\tconst [handler, options] = binding.value;\n\t\twatch(useElementVisibility(el, options), (v) => handler(v), { immediate: true });\n\t}\n} };\n\n//#endregion\n//#region ../core/useEyeDropper/component.ts\nconst UseEyeDropper = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useEyeDropper(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseEyeDropper\",\n\tprops: [\"initialValue\"]\n});\n\n//#endregion\n//#region ../core/useFullscreen/component.ts\nconst UseFullscreen = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useFullscreen(target, props));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseFullscreen\",\n\tprops: [\n\t\t\"as\",\n\t\t\"autoExit\",\n\t\t\"document\"\n\t]\n});\n\n//#endregion\n//#region ../core/useGeolocation/component.ts\nconst UseGeolocation = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useGeolocation(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseGeolocation\",\n\tprops: [\n\t\t\"enableHighAccuracy\",\n\t\t\"immediate\",\n\t\t\"maximumAge\",\n\t\t\"navigator\",\n\t\t\"timeout\"\n\t]\n});\n\n//#endregion\n//#region ../core/useIdle/component.ts\nconst UseIdle = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useIdle(props.timeout, props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseIdle\",\n\tprops: [\n\t\t\"eventFilter\",\n\t\t\"events\",\n\t\t\"initialState\",\n\t\t\"listenForVisibilityChange\",\n\t\t\"timeout\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\n//#region ../core/useImage/component.ts\nconst UseImage = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useImage(props));\n\treturn () => {\n\t\tif (data.isLoading && slots.loading) return slots.loading(data);\n\t\telse if (data.error && slots.error) return slots.error(data.error);\n\t\tif (slots.default) return slots.default(data);\n\t\treturn h(props.as || \"img\", props);\n\t};\n}, {\n\tname: \"UseImage\",\n\tprops: [\n\t\t\"alt\",\n\t\t\"as\",\n\t\t\"class\",\n\t\t\"crossorigin\",\n\t\t\"decoding\",\n\t\t\"fetchPriority\",\n\t\t\"height\",\n\t\t\"ismap\",\n\t\t\"loading\",\n\t\t\"referrerPolicy\",\n\t\t\"sizes\",\n\t\t\"src\",\n\t\t\"srcset\",\n\t\t\"usemap\",\n\t\t\"width\"\n\t]\n});\n\n//#endregion\n//#region ../core/useInfiniteScroll/directive.ts\nconst vInfiniteScroll = { mounted(el, binding) {\n\tif (typeof binding.value === \"function\") useInfiniteScroll(el, binding.value);\n\telse useInfiniteScroll(el, ...binding.value);\n} };\n\n//#endregion\n//#region ../core/useIntersectionObserver/directive.ts\nconst vIntersectionObserver = { mounted(el, binding) {\n\tif (typeof binding.value === \"function\") useIntersectionObserver(el, binding.value);\n\telse useIntersectionObserver(el, ...binding.value);\n} };\n\n//#endregion\n//#region ../core/useMouse/component.ts\nconst UseMouse = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useMouse(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseMouse\",\n\tprops: [\n\t\t\"eventFilter\",\n\t\t\"initialValue\",\n\t\t\"resetOnTouchEnds\",\n\t\t\"scroll\",\n\t\t\"target\",\n\t\t\"touch\",\n\t\t\"type\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\n//#region ../core/useMouseInElement/component.ts\nconst UseMouseInElement = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useMouseInElement(target, props));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseMouseInElement\",\n\tprops: [\n\t\t\"as\",\n\t\t\"eventFilter\",\n\t\t\"handleOutside\",\n\t\t\"initialValue\",\n\t\t\"resetOnTouchEnds\",\n\t\t\"scroll\",\n\t\t\"target\",\n\t\t\"touch\",\n\t\t\"type\",\n\t\t\"window\",\n\t\t\"windowResize\",\n\t\t\"windowScroll\"\n\t]\n});\n\n//#endregion\n//#region ../core/useMouseInElement/directive.ts\nconst vMouseInElement = { mounted(el, binding) {\n\tconst [handler, options] = typeof binding.value === \"function\" ? [binding.value, {}] : binding.value;\n\twatch(reactiveOmit(reactive(useMouseInElement(el, options)), \"stop\"), (val) => handler(val));\n} };\n\n//#endregion\n//#region ../core/useMousePressed/component.ts\nconst UseMousePressed = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useMousePressed({\n\t\t...props,\n\t\ttarget\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseMousePressed\",\n\tprops: [\n\t\t\"as\",\n\t\t\"capture\",\n\t\t\"drag\",\n\t\t\"initialValue\",\n\t\t\"onPressed\",\n\t\t\"onReleased\",\n\t\t\"touch\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\n//#region ../core/useNetwork/component.ts\nconst UseNetwork = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useNetwork(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseNetwork\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/useNow/component.ts\nconst UseNow = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useNow({\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseNow\",\n\tprops: [\"immediate\", \"interval\"]\n});\n\n//#endregion\n//#region ../core/useObjectUrl/component.ts\nconst UseObjectUrl = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst { object } = toRefs$1(props);\n\tconst url = useObjectUrl(object);\n\treturn () => {\n\t\tif (slots.default && url.value) return slots.default(url.value);\n\t};\n}, {\n\tname: \"UseObjectUrl\",\n\tprops: [\"object\"]\n});\n\n//#endregion\n//#region ../core/useOffsetPagination/component.ts\nconst UseOffsetPagination = /* @__PURE__ */ defineComponent((props, { slots, emit }) => {\n\tconst data = reactive(useOffsetPagination({\n\t\t...props,\n\t\ttotal: toValue(props.total) || void 0,\n\t\tonPageChange(...args) {\n\t\t\tvar _props$onPageChange;\n\t\t\t(_props$onPageChange = props.onPageChange) === null || _props$onPageChange === void 0 || _props$onPageChange.call(props, ...args);\n\t\t\temit(\"page-change\", ...args);\n\t\t},\n\t\tonPageSizeChange(...args) {\n\t\t\tvar _props$onPageSizeChan;\n\t\t\t(_props$onPageSizeChan = props.onPageSizeChange) === null || _props$onPageSizeChan === void 0 || _props$onPageSizeChan.call(props, ...args);\n\t\t\temit(\"page-size-change\", ...args);\n\t\t},\n\t\tonPageCountChange(...args) {\n\t\t\tvar _props$onPageCountCha;\n\t\t\t(_props$onPageCountCha = props.onPageCountChange) === null || _props$onPageCountCha === void 0 || _props$onPageCountCha.call(props, ...args);\n\t\t\temit(\"page-count-change\", ...args);\n\t\t}\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseOffsetPagination\",\n\tprops: [\n\t\t\"onPageChange\",\n\t\t\"onPageCountChange\",\n\t\t\"onPageSizeChange\",\n\t\t\"page\",\n\t\t\"pageSize\",\n\t\t\"total\"\n\t]\n});\n\n//#endregion\n//#region ../core/useOnline/component.ts\nconst UseOnline = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ isOnline: useOnline(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseOnline\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/usePageLeave/component.ts\nconst UsePageLeave = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ isLeft: usePageLeave(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePageLeave\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/usePointer/component.ts\nconst UsePointer = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst el = shallowRef(null);\n\tconst data = reactive(usePointer({\n\t\t...props,\n\t\ttarget: props.target === \"self\" ? el : defaultWindow\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePointer\",\n\tprops: [\n\t\t\"initialValue\",\n\t\t\"pointerTypes\",\n\t\t\"target\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\n//#region ../core/usePointerLock/component.ts\nconst UsePointerLock = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(usePointerLock(target));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UsePointerLock\",\n\tprops: [\"as\", \"document\"]\n});\n\n//#endregion\n//#region ../core/usePreferredColorScheme/component.ts\nconst UsePreferredColorScheme = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ colorScheme: usePreferredColorScheme(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredColorScheme\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/usePreferredContrast/component.ts\nconst UsePreferredContrast = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ contrast: usePreferredContrast(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredContrast\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/usePreferredDark/component.ts\nconst UsePreferredDark = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ prefersDark: usePreferredDark(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredDark\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/usePreferredLanguages/component.ts\nconst UsePreferredLanguages = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ languages: usePreferredLanguages(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredLanguages\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/usePreferredReducedMotion/component.ts\nconst UsePreferredReducedMotion = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ motion: usePreferredReducedMotion(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredReducedMotion\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/usePreferredReducedTransparency/component.ts\nconst UsePreferredReducedTransparency = /* @__PURE__ */ defineComponent({\n\tname: \"UsePreferredReducedTransparency\",\n\tsetup(props, { slots }) {\n\t\tconst data = reactive({ transparency: usePreferredReducedTransparency() });\n\t\treturn () => {\n\t\t\tif (slots.default) return slots.default(data);\n\t\t};\n\t}\n});\n\n//#endregion\n//#region ../core/useResizeObserver/directive.ts\nconst vResizeObserver = { mounted(el, binding) {\n\tif (typeof binding.value === \"function\") useResizeObserver(el, binding.value);\n\telse useResizeObserver(el, ...binding.value);\n} };\n\n//#endregion\n//#region ../core/useScreenSafeArea/component.ts\nconst UseScreenSafeArea = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useScreenSafeArea());\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { style: {\n\t\t\tpaddingTop: props.top ? data.top : \"\",\n\t\t\tpaddingRight: props.right ? data.right : \"\",\n\t\t\tpaddingBottom: props.bottom ? data.bottom : \"\",\n\t\t\tpaddingLeft: props.left ? data.left : \"\",\n\t\t\tboxSizing: \"border-box\",\n\t\t\tmaxHeight: \"100vh\",\n\t\t\tmaxWidth: \"100vw\",\n\t\t\toverflow: \"auto\"\n\t\t} }, slots.default(data));\n\t};\n}, {\n\tname: \"UseScreenSafeArea\",\n\tprops: [\n\t\t\"top\",\n\t\t\"right\",\n\t\t\"bottom\",\n\t\t\"left\"\n\t]\n});\n\n//#endregion\n//#region ../core/useScroll/directive.ts\nconst vScroll = { mounted(el, binding) {\n\tif (typeof binding.value === \"function\") {\n\t\tconst handler = binding.value;\n\t\tconst state = useScroll(el, {\n\t\t\tonScroll() {\n\t\t\t\thandler(state);\n\t\t\t},\n\t\t\tonStop() {\n\t\t\t\thandler(state);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tconst [handler, options] = binding.value;\n\t\tconst state = useScroll(el, {\n\t\t\t...options,\n\t\t\tonScroll(e) {\n\t\t\t\tvar _options$onScroll;\n\t\t\t\t(_options$onScroll = options.onScroll) === null || _options$onScroll === void 0 || _options$onScroll.call(options, e);\n\t\t\t\thandler(state);\n\t\t\t},\n\t\t\tonStop(e) {\n\t\t\t\tvar _options$onStop;\n\t\t\t\t(_options$onStop = options.onStop) === null || _options$onStop === void 0 || _options$onStop.call(options, e);\n\t\t\t\thandler(state);\n\t\t\t}\n\t\t});\n\t}\n} };\n\n//#endregion\n//#region ../core/useScrollLock/directive.ts\nfunction onScrollLock() {\n\tlet isMounted = false;\n\tconst state = shallowRef(false);\n\treturn (el, binding) => {\n\t\tstate.value = binding.value;\n\t\tif (isMounted) return;\n\t\tisMounted = true;\n\t\tconst isLocked = useScrollLock(el, binding.value);\n\t\twatch(state, (v) => isLocked.value = v);\n\t};\n}\nconst vScrollLock = onScrollLock();\n\n//#endregion\n//#region ../core/useTimeAgo/component.ts\nconst UseTimeAgo = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useTimeAgo(() => props.time, {\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseTimeAgo\",\n\tprops: [\n\t\t\"fullDateFormatter\",\n\t\t\"max\",\n\t\t\"messages\",\n\t\t\"rounding\",\n\t\t\"showSecond\",\n\t\t\"time\",\n\t\t\"units\",\n\t\t\"updateInterval\"\n\t]\n});\n\n//#endregion\n//#region ../core/useTimestamp/component.ts\nconst UseTimestamp = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useTimestamp({\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseTimestamp\",\n\tprops: [\n\t\t\"callback\",\n\t\t\"immediate\",\n\t\t\"interval\",\n\t\t\"offset\"\n\t]\n});\n\n//#endregion\n//#region ../core/useVirtualList/component.ts\nconst UseVirtualList = /* @__PURE__ */ defineComponent((props, { slots, expose }) => {\n\tconst { list: listRef } = toRefs(props);\n\tconst { list, containerProps, wrapperProps, scrollTo } = useVirtualList(listRef, props.options);\n\texpose({ scrollTo });\n\tif (containerProps.style && typeof containerProps.style === \"object\" && !Array.isArray(containerProps.style)) containerProps.style.height = props.height || \"300px\";\n\treturn () => h(\"div\", { ...containerProps }, [h(\"div\", { ...wrapperProps.value }, list.value.map((item) => h(\"div\", { style: {\n\t\toverflow: \"hidden\",\n\t\theight: item.height\n\t} }, slots.default ? slots.default(item) : \"Please set content!\")))]);\n}, {\n\tname: \"UseVirtualList\",\n\tprops: [\n\t\t\"height\",\n\t\t\"list\",\n\t\t\"options\"\n\t]\n});\n\n//#endregion\n//#region ../core/useWindowFocus/component.ts\nconst UseWindowFocus = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ focused: useWindowFocus(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseWindowFocus\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/useWindowSize/component.ts\nconst UseWindowSize = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useWindowSize(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseWindowSize\",\n\tprops: [\n\t\t\"includeScrollbar\",\n\t\t\"initialHeight\",\n\t\t\"initialWidth\",\n\t\t\"listenOrientation\",\n\t\t\"type\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\nexport { OnClickOutside, OnLongPress, UseActiveElement, UseBattery, UseBrowserLocation, UseClipboard, UseColorMode, UseDark, UseDeviceMotion, UseDeviceOrientation, UseDevicePixelRatio, UseDevicesList, UseDocumentVisibility, UseDraggable, UseElementBounding, UseElementSize, UseElementVisibility, UseEyeDropper, UseFullscreen, UseGeolocation, UseIdle, UseImage, UseMouse, UseMouseInElement, UseMousePressed, UseNetwork, UseNow, UseObjectUrl, UseOffsetPagination, UseOnline, UsePageLeave, UsePointer, UsePointerLock, UsePreferredColorScheme, UsePreferredContrast, UsePreferredDark, UsePreferredLanguages, UsePreferredReducedMotion, UsePreferredReducedTransparency, UseScreenSafeArea, UseTimeAgo, UseTimestamp, UseVirtualList, UseWindowFocus, UseWindowSize, VOnClickOutside, VOnLongPress, vElementBounding, vElementHover, vElementSize, vElementVisibility, vInfiniteScroll, vIntersectionObserver, vMouseInElement, vOnClickOutside, vOnKeyStroke, vOnLongPress, vResizeObserver, vScroll, vScrollLock };","// THIS FILE IS AUTOMATICALLY GENERATED DO NOT EDIT DIRECTLY\n// See update-tlds.js for encoding/decoding format\n// https://data.iana.org/TLD/tlds-alpha-by-domain.txt\nconst encodedTlds = 'aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3nlop4pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2o0dyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rckmsd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0stone5umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2olterskluwer11odside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2';\n// Internationalized domain names containing non-ASCII\nconst encodedUtlds = 'ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2';\n\n/**\n * Finite State Machine generation utilities\n */\n\n/**\n * @template T\n * @typedef {{ [group: string]: T[] }} Collections\n */\n\n/**\n * @typedef {{ [group: string]: true }} Flags\n */\n\n// Keys in scanner Collections instances\nconst numeric = 'numeric';\nconst ascii = 'ascii';\nconst alpha = 'alpha';\nconst asciinumeric = 'asciinumeric';\nconst alphanumeric = 'alphanumeric';\nconst domain = 'domain';\nconst emoji = 'emoji';\nconst scheme = 'scheme';\nconst slashscheme = 'slashscheme';\nconst whitespace = 'whitespace';\n\n/**\n * @template T\n * @param {string} name\n * @param {Collections<T>} groups to register in\n * @returns {T[]} Current list of tokens in the given collection\n */\nfunction registerGroup(name, groups) {\n if (!(name in groups)) {\n groups[name] = [];\n }\n return groups[name];\n}\n\n/**\n * @template T\n * @param {T} t token to add\n * @param {Collections<T>} groups\n * @param {Flags} flags\n */\nfunction addToGroups(t, flags, groups) {\n if (flags[numeric]) {\n flags[asciinumeric] = true;\n flags[alphanumeric] = true;\n }\n if (flags[ascii]) {\n flags[asciinumeric] = true;\n flags[alpha] = true;\n }\n if (flags[asciinumeric]) {\n flags[alphanumeric] = true;\n }\n if (flags[alpha]) {\n flags[alphanumeric] = true;\n }\n if (flags[alphanumeric]) {\n flags[domain] = true;\n }\n if (flags[emoji]) {\n flags[domain] = true;\n }\n for (const k in flags) {\n const group = registerGroup(k, groups);\n if (group.indexOf(t) < 0) {\n group.push(t);\n }\n }\n}\n\n/**\n * @template T\n * @param {T} t token to check\n * @param {Collections<T>} groups\n * @returns {Flags} group flags that contain this token\n */\nfunction flagsForToken(t, groups) {\n const result = {};\n for (const c in groups) {\n if (groups[c].indexOf(t) >= 0) {\n result[c] = true;\n }\n }\n return result;\n}\n\n/**\n * @template T\n * @typedef {null | T } Transition\n */\n\n/**\n * Define a basic state machine state. j is the list of character transitions,\n * jr is the list of regex-match transitions, jd is the default state to\n * transition to t is the accepting token type, if any. If this is the terminal\n * state, then it does not emit a token.\n *\n * The template type T represents the type of the token this state accepts. This\n * should be a string (such as of the token exports in `text.js`) or a\n * MultiToken subclass (from `multi.js`)\n *\n * @template T\n * @param {T} [token] Token that this state emits\n */\nfunction State(token = null) {\n // this.n = null; // DEBUG: State name\n /** @type {{ [input: string]: State<T> }} j */\n this.j = {}; // IMPLEMENTATION 1\n // this.j = []; // IMPLEMENTATION 2\n /** @type {[RegExp, State<T>][]} jr */\n this.jr = [];\n /** @type {?State<T>} jd */\n this.jd = null;\n /** @type {?T} t */\n this.t = token;\n}\n\n/**\n * Scanner token groups\n * @type Collections<string>\n */\nState.groups = {};\nState.prototype = {\n accepts() {\n return !!this.t;\n },\n /**\n * Follow an existing transition from the given input to the next state.\n * Does not mutate.\n * @param {string} input character or token type to transition on\n * @returns {?State<T>} the next state, if any\n */\n go(input) {\n const state = this;\n const nextState = state.j[input];\n if (nextState) {\n return nextState;\n }\n for (let i = 0; i < state.jr.length; i++) {\n const regex = state.jr[i][0];\n const nextState = state.jr[i][1]; // note: might be empty to prevent default jump\n if (nextState && regex.test(input)) {\n return nextState;\n }\n }\n // Nowhere left to jump! Return default, if any\n return state.jd;\n },\n /**\n * Whether the state has a transition for the given input. Set the second\n * argument to true to only look for an exact match (and not a default or\n * regular-expression-based transition)\n * @param {string} input\n * @param {boolean} exactOnly\n */\n has(input, exactOnly = false) {\n return exactOnly ? input in this.j : !!this.go(input);\n },\n /**\n * Short for \"transition all\"; create a transition from the array of items\n * in the given list to the same final resulting state.\n * @param {string | string[]} inputs Group of inputs to transition on\n * @param {Transition<T> | State<T>} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections<T>} [groups] Master list of token groups\n */\n ta(inputs, next, flags, groups) {\n for (let i = 0; i < inputs.length; i++) {\n this.tt(inputs[i], next, flags, groups);\n }\n },\n /**\n * Short for \"take regexp transition\"; defines a transition for this state\n * when it encounters a token which matches the given regular expression\n * @param {RegExp} regexp Regular expression transition (populate first)\n * @param {T | State<T>} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections<T>} [groups] Master list of token groups\n * @returns {State<T>} taken after the given input\n */\n tr(regexp, next, flags, groups) {\n groups = groups || State.groups;\n let nextState;\n if (next && next.j) {\n nextState = next;\n } else {\n // Token with maybe token groups\n nextState = new State(next);\n if (flags && groups) {\n addToGroups(next, flags, groups);\n }\n }\n this.jr.push([regexp, nextState]);\n return nextState;\n },\n /**\n * Short for \"take transitions\", will take as many sequential transitions as\n * the length of the given input and returns the\n * resulting final state.\n * @param {string | string[]} input\n * @param {T | State<T>} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections<T>} [groups] Master list of token groups\n * @returns {State<T>} taken after the given input\n */\n ts(input, next, flags, groups) {\n let state = this;\n const len = input.length;\n if (!len) {\n return state;\n }\n for (let i = 0; i < len - 1; i++) {\n state = state.tt(input[i]);\n }\n return state.tt(input[len - 1], next, flags, groups);\n },\n /**\n * Short for \"take transition\", this is a method for building/working with\n * state machines.\n *\n * If a state already exists for the given input, returns it.\n *\n * If a token is specified, that state will emit that token when reached by\n * the linkify engine.\n *\n * If no state exists, it will be initialized with some default transitions\n * that resemble existing default transitions.\n *\n * If a state is given for the second argument, that state will be\n * transitioned to on the given input regardless of what that input\n * previously did.\n *\n * Specify a token group flags to define groups that this token belongs to.\n * The token will be added to corresponding entires in the given groups\n * object.\n *\n * @param {string} input character, token type to transition on\n * @param {T | State<T>} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections<T>} [groups] Master list of groups\n * @returns {State<T>} taken after the given input\n */\n tt(input, next, flags, groups) {\n groups = groups || State.groups;\n const state = this;\n\n // Check if existing state given, just a basic transition\n if (next && next.j) {\n state.j[input] = next;\n return next;\n }\n const t = next;\n\n // Take the transition with the usual default mechanisms and use that as\n // a template for creating the next state\n let nextState,\n templateState = state.go(input);\n if (templateState) {\n nextState = new State();\n Object.assign(nextState.j, templateState.j);\n nextState.jr.push.apply(nextState.jr, templateState.jr);\n nextState.jd = templateState.jd;\n nextState.t = templateState.t;\n } else {\n nextState = new State();\n }\n if (t) {\n // Ensure newly token is in the same groups as the old token\n if (groups) {\n if (nextState.t && typeof nextState.t === 'string') {\n const allFlags = Object.assign(flagsForToken(nextState.t, groups), flags);\n addToGroups(t, allFlags, groups);\n } else if (flags) {\n addToGroups(t, flags, groups);\n }\n }\n nextState.t = t; // overwrite anything that was previously there\n }\n state.j[input] = nextState;\n return nextState;\n }\n};\n\n// Helper functions to improve minification (not exported outside linkifyjs module)\n\n/**\n * @template T\n * @param {State<T>} state\n * @param {string | string[]} input\n * @param {Flags} [flags]\n * @param {Collections<T>} [groups]\n */\nconst ta = (state, input, next, flags, groups) => state.ta(input, next, flags, groups);\n\n/**\n * @template T\n * @param {State<T>} state\n * @param {RegExp} regexp\n * @param {T | State<T>} [next]\n * @param {Flags} [flags]\n * @param {Collections<T>} [groups]\n */\nconst tr = (state, regexp, next, flags, groups) => state.tr(regexp, next, flags, groups);\n\n/**\n * @template T\n * @param {State<T>} state\n * @param {string | string[]} input\n * @param {T | State<T>} [next]\n * @param {Flags} [flags]\n * @param {Collections<T>} [groups]\n */\nconst ts = (state, input, next, flags, groups) => state.ts(input, next, flags, groups);\n\n/**\n * @template T\n * @param {State<T>} state\n * @param {string} input\n * @param {T | State<T>} [next]\n * @param {Collections<T>} [groups]\n * @param {Flags} [flags]\n */\nconst tt = (state, input, next, flags, groups) => state.tt(input, next, flags, groups);\n\n/******************************************************************************\nText Tokens\nIdentifiers for token outputs from the regexp scanner\n******************************************************************************/\n\n// A valid web domain token\nconst WORD = 'WORD'; // only contains a-z\nconst UWORD = 'UWORD'; // contains letters other than a-z, used for IDN\nconst ASCIINUMERICAL = 'ASCIINUMERICAL'; // contains a-z, 0-9\nconst ALPHANUMERICAL = 'ALPHANUMERICAL'; // contains numbers and letters other than a-z, used for IDN\n\n// Special case of word\nconst LOCALHOST = 'LOCALHOST';\n\n// Valid top-level domain, special case of WORD (see tlds.js)\nconst TLD = 'TLD';\n\n// Valid IDN TLD, special case of UWORD (see tlds.js)\nconst UTLD = 'UTLD';\n\n// The scheme portion of a web URI protocol. Supported types include: `mailto`,\n// `file`, and user-defined custom protocols. Limited to schemes that contain\n// only letters\nconst SCHEME = 'SCHEME';\n\n// Similar to SCHEME, except makes distinction for schemes that must always be\n// followed by `://`, not just `:`. Supported types include `http`, `https`,\n// `ftp`, `ftps`\nconst SLASH_SCHEME = 'SLASH_SCHEME';\n\n// Any sequence of digits 0-9\nconst NUM = 'NUM';\n\n// Any number of consecutive whitespace characters that are not newline\nconst WS = 'WS';\n\n// New line (unix style)\nconst NL = 'NL'; // \\n\n\n// Opening/closing bracket classes\n// TODO: Rename OPEN -> LEFT and CLOSE -> RIGHT in v5 to fit with Unicode names\n// Also rename angle brackes to LESSTHAN and GREATER THAN\nconst OPENBRACE = 'OPENBRACE'; // {\nconst CLOSEBRACE = 'CLOSEBRACE'; // }\nconst OPENBRACKET = 'OPENBRACKET'; // [\nconst CLOSEBRACKET = 'CLOSEBRACKET'; // ]\nconst OPENPAREN = 'OPENPAREN'; // (\nconst CLOSEPAREN = 'CLOSEPAREN'; // )\nconst OPENANGLEBRACKET = 'OPENANGLEBRACKET'; // <\nconst CLOSEANGLEBRACKET = 'CLOSEANGLEBRACKET'; // >\nconst FULLWIDTHLEFTPAREN = 'FULLWIDTHLEFTPAREN'; // (\nconst FULLWIDTHRIGHTPAREN = 'FULLWIDTHRIGHTPAREN'; // )\nconst LEFTCORNERBRACKET = 'LEFTCORNERBRACKET'; // 「\nconst RIGHTCORNERBRACKET = 'RIGHTCORNERBRACKET'; // 」\nconst LEFTWHITECORNERBRACKET = 'LEFTWHITECORNERBRACKET'; // 『\nconst RIGHTWHITECORNERBRACKET = 'RIGHTWHITECORNERBRACKET'; // 』\nconst FULLWIDTHLESSTHAN = 'FULLWIDTHLESSTHAN'; // <\nconst FULLWIDTHGREATERTHAN = 'FULLWIDTHGREATERTHAN'; // >\n\n// Various symbols\nconst AMPERSAND = 'AMPERSAND'; // &\nconst APOSTROPHE = 'APOSTROPHE'; // '\nconst ASTERISK = 'ASTERISK'; // *\nconst AT = 'AT'; // @\nconst BACKSLASH = 'BACKSLASH'; // \\\nconst BACKTICK = 'BACKTICK'; // `\nconst CARET = 'CARET'; // ^\nconst COLON = 'COLON'; // :\nconst COMMA = 'COMMA'; // ,\nconst DOLLAR = 'DOLLAR'; // $\nconst DOT = 'DOT'; // .\nconst EQUALS = 'EQUALS'; // =\nconst EXCLAMATION = 'EXCLAMATION'; // !\nconst HYPHEN = 'HYPHEN'; // -\nconst PERCENT = 'PERCENT'; // %\nconst PIPE = 'PIPE'; // |\nconst PLUS = 'PLUS'; // +\nconst POUND = 'POUND'; // #\nconst QUERY = 'QUERY'; // ?\nconst QUOTE = 'QUOTE'; // \"\nconst FULLWIDTHMIDDLEDOT = 'FULLWIDTHMIDDLEDOT'; // ・\n\nconst SEMI = 'SEMI'; // ;\nconst SLASH = 'SLASH'; // /\nconst TILDE = 'TILDE'; // ~\nconst UNDERSCORE = 'UNDERSCORE'; // _\n\n// Emoji symbol\nconst EMOJI$1 = 'EMOJI';\n\n// Default token - anything that is not one of the above\nconst SYM = 'SYM';\n\nvar tk = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tALPHANUMERICAL: ALPHANUMERICAL,\n\tAMPERSAND: AMPERSAND,\n\tAPOSTROPHE: APOSTROPHE,\n\tASCIINUMERICAL: ASCIINUMERICAL,\n\tASTERISK: ASTERISK,\n\tAT: AT,\n\tBACKSLASH: BACKSLASH,\n\tBACKTICK: BACKTICK,\n\tCARET: CARET,\n\tCLOSEANGLEBRACKET: CLOSEANGLEBRACKET,\n\tCLOSEBRACE: CLOSEBRACE,\n\tCLOSEBRACKET: CLOSEBRACKET,\n\tCLOSEPAREN: CLOSEPAREN,\n\tCOLON: COLON,\n\tCOMMA: COMMA,\n\tDOLLAR: DOLLAR,\n\tDOT: DOT,\n\tEMOJI: EMOJI$1,\n\tEQUALS: EQUALS,\n\tEXCLAMATION: EXCLAMATION,\n\tFULLWIDTHGREATERTHAN: FULLWIDTHGREATERTHAN,\n\tFULLWIDTHLEFTPAREN: FULLWIDTHLEFTPAREN,\n\tFULLWIDTHLESSTHAN: FULLWIDTHLESSTHAN,\n\tFULLWIDTHMIDDLEDOT: FULLWIDTHMIDDLEDOT,\n\tFULLWIDTHRIGHTPAREN: FULLWIDTHRIGHTPAREN,\n\tHYPHEN: HYPHEN,\n\tLEFTCORNERBRACKET: LEFTCORNERBRACKET,\n\tLEFTWHITECORNERBRACKET: LEFTWHITECORNERBRACKET,\n\tLOCALHOST: LOCALHOST,\n\tNL: NL,\n\tNUM: NUM,\n\tOPENANGLEBRACKET: OPENANGLEBRACKET,\n\tOPENBRACE: OPENBRACE,\n\tOPENBRACKET: OPENBRACKET,\n\tOPENPAREN: OPENPAREN,\n\tPERCENT: PERCENT,\n\tPIPE: PIPE,\n\tPLUS: PLUS,\n\tPOUND: POUND,\n\tQUERY: QUERY,\n\tQUOTE: QUOTE,\n\tRIGHTCORNERBRACKET: RIGHTCORNERBRACKET,\n\tRIGHTWHITECORNERBRACKET: RIGHTWHITECORNERBRACKET,\n\tSCHEME: SCHEME,\n\tSEMI: SEMI,\n\tSLASH: SLASH,\n\tSLASH_SCHEME: SLASH_SCHEME,\n\tSYM: SYM,\n\tTILDE: TILDE,\n\tTLD: TLD,\n\tUNDERSCORE: UNDERSCORE,\n\tUTLD: UTLD,\n\tUWORD: UWORD,\n\tWORD: WORD,\n\tWS: WS\n});\n\n// Note that these two Unicode ones expand into a really big one with Babel\nconst ASCII_LETTER = /[a-z]/;\nconst LETTER = /\\p{L}/u; // Any Unicode character with letter data type\nconst EMOJI = /\\p{Emoji}/u; // Any Unicode emoji character\nconst EMOJI_VARIATION$1 = /\\ufe0f/;\nconst DIGIT = /\\d/;\nconst SPACE = /\\s/;\n\nvar regexp = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tASCII_LETTER: ASCII_LETTER,\n\tDIGIT: DIGIT,\n\tEMOJI: EMOJI,\n\tEMOJI_VARIATION: EMOJI_VARIATION$1,\n\tLETTER: LETTER,\n\tSPACE: SPACE\n});\n\n/**\n\tThe scanner provides an interface that takes a string of text as input, and\n\toutputs an array of tokens instances that can be used for easy URL parsing.\n*/\n\nconst CR = '\\r'; // carriage-return character\nconst LF = '\\n'; // line-feed character\nconst EMOJI_VARIATION = '\\ufe0f'; // Variation selector, follows heart and others\nconst EMOJI_JOINER = '\\u200d'; // zero-width joiner\nconst OBJECT_REPLACEMENT = '\\ufffc'; // whitespace placeholder that sometimes appears in rich text editors\n\nlet tlds = null,\n utlds = null; // don't change so only have to be computed once\n\n/**\n * Scanner output token:\n * - `t` is the token name (e.g., 'NUM', 'EMOJI', 'TLD')\n * - `v` is the value of the token (e.g., '123', '❤️', 'com')\n * - `s` is the start index of the token in the original string\n * - `e` is the end index of the token in the original string\n * @typedef {{t: string, v: string, s: number, e: number}} Token\n */\n\n/**\n * @template T\n * @typedef {{ [collection: string]: T[] }} Collections\n */\n\n/**\n * Initialize the scanner character-based state machine for the given start\n * state\n * @param {[string, boolean][]} customSchemes List of custom schemes, where each\n * item is a length-2 tuple with the first element set to the string scheme, and\n * the second element set to `true` if the `://` after the scheme is optional\n */\nfunction init$2(customSchemes = []) {\n // Frequently used states (name argument removed during minification)\n /** @type Collections<string> */\n const groups = {}; // of tokens\n State.groups = groups;\n /** @type State<string> */\n const Start = new State();\n if (tlds == null) {\n tlds = decodeTlds(encodedTlds);\n }\n if (utlds == null) {\n utlds = decodeTlds(encodedUtlds);\n }\n\n // States for special URL symbols that accept immediately after start\n tt(Start, \"'\", APOSTROPHE);\n tt(Start, '{', OPENBRACE);\n tt(Start, '}', CLOSEBRACE);\n tt(Start, '[', OPENBRACKET);\n tt(Start, ']', CLOSEBRACKET);\n tt(Start, '(', OPENPAREN);\n tt(Start, ')', CLOSEPAREN);\n tt(Start, '<', OPENANGLEBRACKET);\n tt(Start, '>', CLOSEANGLEBRACKET);\n tt(Start, '(', FULLWIDTHLEFTPAREN);\n tt(Start, ')', FULLWIDTHRIGHTPAREN);\n tt(Start, '「', LEFTCORNERBRACKET);\n tt(Start, '」', RIGHTCORNERBRACKET);\n tt(Start, '『', LEFTWHITECORNERBRACKET);\n tt(Start, '』', RIGHTWHITECORNERBRACKET);\n tt(Start, '<', FULLWIDTHLESSTHAN);\n tt(Start, '>', FULLWIDTHGREATERTHAN);\n tt(Start, '&', AMPERSAND);\n tt(Start, '*', ASTERISK);\n tt(Start, '@', AT);\n tt(Start, '`', BACKTICK);\n tt(Start, '^', CARET);\n tt(Start, ':', COLON);\n tt(Start, ',', COMMA);\n tt(Start, '$', DOLLAR);\n tt(Start, '.', DOT);\n tt(Start, '=', EQUALS);\n tt(Start, '!', EXCLAMATION);\n tt(Start, '-', HYPHEN);\n tt(Start, '%', PERCENT);\n tt(Start, '|', PIPE);\n tt(Start, '+', PLUS);\n tt(Start, '#', POUND);\n tt(Start, '?', QUERY);\n tt(Start, '\"', QUOTE);\n tt(Start, '/', SLASH);\n tt(Start, ';', SEMI);\n tt(Start, '~', TILDE);\n tt(Start, '_', UNDERSCORE);\n tt(Start, '\\\\', BACKSLASH);\n tt(Start, '・', FULLWIDTHMIDDLEDOT);\n const Num = tr(Start, DIGIT, NUM, {\n [numeric]: true\n });\n tr(Num, DIGIT, Num);\n const Asciinumeric = tr(Num, ASCII_LETTER, ASCIINUMERICAL, {\n [asciinumeric]: true\n });\n const Alphanumeric = tr(Num, LETTER, ALPHANUMERICAL, {\n [alphanumeric]: true\n });\n\n // State which emits a word token\n const Word = tr(Start, ASCII_LETTER, WORD, {\n [ascii]: true\n });\n tr(Word, DIGIT, Asciinumeric);\n tr(Word, ASCII_LETTER, Word);\n tr(Asciinumeric, DIGIT, Asciinumeric);\n tr(Asciinumeric, ASCII_LETTER, Asciinumeric);\n\n // Same as previous, but specific to non-fsm.ascii alphabet words\n const UWord = tr(Start, LETTER, UWORD, {\n [alpha]: true\n });\n tr(UWord, ASCII_LETTER); // Non-accepting\n tr(UWord, DIGIT, Alphanumeric);\n tr(UWord, LETTER, UWord);\n tr(Alphanumeric, DIGIT, Alphanumeric);\n tr(Alphanumeric, ASCII_LETTER); // Non-accepting\n tr(Alphanumeric, LETTER, Alphanumeric); // Non-accepting\n\n // Whitespace jumps\n // Tokens of only non-newline whitespace are arbitrarily long\n // If any whitespace except newline, more whitespace!\n const Nl = tt(Start, LF, NL, {\n [whitespace]: true\n });\n const Cr = tt(Start, CR, WS, {\n [whitespace]: true\n });\n const Ws = tr(Start, SPACE, WS, {\n [whitespace]: true\n });\n tt(Start, OBJECT_REPLACEMENT, Ws);\n tt(Cr, LF, Nl); // \\r\\n\n tt(Cr, OBJECT_REPLACEMENT, Ws);\n tr(Cr, SPACE, Ws);\n tt(Ws, CR); // non-accepting state to avoid mixing whitespaces\n tt(Ws, LF); // non-accepting state to avoid mixing whitespaces\n tr(Ws, SPACE, Ws);\n tt(Ws, OBJECT_REPLACEMENT, Ws);\n\n // Emoji tokens. They are not grouped by the scanner except in cases where a\n // zero-width joiner is present\n const Emoji = tr(Start, EMOJI, EMOJI$1, {\n [emoji]: true\n });\n tt(Emoji, '#'); // no transition, emoji regex seems to match #\n tr(Emoji, EMOJI, Emoji);\n tt(Emoji, EMOJI_VARIATION, Emoji);\n // tt(Start, EMOJI_VARIATION, Emoji); // This one is sketchy\n\n const EmojiJoiner = tt(Emoji, EMOJI_JOINER);\n tt(EmojiJoiner, '#');\n tr(EmojiJoiner, EMOJI, Emoji);\n // tt(EmojiJoiner, EMOJI_VARIATION, Emoji); // also sketchy\n\n // Generates states for top-level domains\n // Note that this is most accurate when tlds are in alphabetical order\n const wordjr = [[ASCII_LETTER, Word], [DIGIT, Asciinumeric]];\n const uwordjr = [[ASCII_LETTER, null], [LETTER, UWord], [DIGIT, Alphanumeric]];\n for (let i = 0; i < tlds.length; i++) {\n fastts(Start, tlds[i], TLD, WORD, wordjr);\n }\n for (let i = 0; i < utlds.length; i++) {\n fastts(Start, utlds[i], UTLD, UWORD, uwordjr);\n }\n addToGroups(TLD, {\n tld: true,\n ascii: true\n }, groups);\n addToGroups(UTLD, {\n utld: true,\n alpha: true\n }, groups);\n\n // Collect the states generated by different protocols. NOTE: If any new TLDs\n // get added that are also protocols, set the token to be the same as the\n // protocol to ensure parsing works as expected.\n fastts(Start, 'file', SCHEME, WORD, wordjr);\n fastts(Start, 'mailto', SCHEME, WORD, wordjr);\n fastts(Start, 'http', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'https', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftp', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftps', SLASH_SCHEME, WORD, wordjr);\n addToGroups(SCHEME, {\n scheme: true,\n ascii: true\n }, groups);\n addToGroups(SLASH_SCHEME, {\n slashscheme: true,\n ascii: true\n }, groups);\n\n // Register custom schemes. Assumes each scheme is asciinumeric with hyphens\n customSchemes = customSchemes.sort((a, b) => a[0] > b[0] ? 1 : -1);\n for (let i = 0; i < customSchemes.length; i++) {\n const sch = customSchemes[i][0];\n const optionalSlashSlash = customSchemes[i][1];\n const flags = optionalSlashSlash ? {\n [scheme]: true\n } : {\n [slashscheme]: true\n };\n if (sch.indexOf('-') >= 0) {\n flags[domain] = true;\n } else if (!ASCII_LETTER.test(sch)) {\n flags[numeric] = true; // numbers only\n } else if (DIGIT.test(sch)) {\n flags[asciinumeric] = true;\n } else {\n flags[ascii] = true;\n }\n ts(Start, sch, sch, flags);\n }\n\n // Localhost token\n ts(Start, 'localhost', LOCALHOST, {\n ascii: true\n });\n\n // Set default transition for start state (some symbol)\n Start.jd = new State(SYM);\n return {\n start: Start,\n tokens: Object.assign({\n groups\n }, tk)\n };\n}\n\n/**\n\tGiven a string, returns an array of TOKEN instances representing the\n\tcomposition of that string.\n\n\t@method run\n\t@param {State<string>} start scanner starting state\n\t@param {string} str input string to scan\n\t@return {Token[]} list of tokens, each with a type and value\n*/\nfunction run$1(start, str) {\n // State machine is not case sensitive, so input is tokenized in lowercased\n // form (still returns regular case). Uses selective `toLowerCase` because\n // lowercasing the entire string causes the length and character position to\n // vary in some non-English strings with V8-based runtimes.\n const iterable = stringToArray(str.replace(/[A-Z]/g, c => c.toLowerCase()));\n const charCount = iterable.length; // <= len if there are emojis, etc\n const tokens = []; // return value\n\n // cursor through the string itself, accounting for characters that have\n // width with length 2 such as emojis\n let cursor = 0;\n\n // Cursor through the array-representation of the string\n let charCursor = 0;\n\n // Tokenize the string\n while (charCursor < charCount) {\n let state = start;\n let nextState = null;\n let tokenLength = 0;\n let latestAccepting = null;\n let sinceAccepts = -1;\n let charsSinceAccepts = -1;\n while (charCursor < charCount && (nextState = state.go(iterable[charCursor]))) {\n state = nextState;\n\n // Keep track of the latest accepting state\n if (state.accepts()) {\n sinceAccepts = 0;\n charsSinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts += iterable[charCursor].length;\n charsSinceAccepts++;\n }\n tokenLength += iterable[charCursor].length;\n cursor += iterable[charCursor].length;\n charCursor++;\n }\n\n // Roll back to the latest accepting state\n cursor -= sinceAccepts;\n charCursor -= charsSinceAccepts;\n tokenLength -= sinceAccepts;\n\n // No more jumps, just make a new token from the last accepting one\n tokens.push({\n t: latestAccepting.t,\n // token type/name\n v: str.slice(cursor - tokenLength, cursor),\n // string value\n s: cursor - tokenLength,\n // start index\n e: cursor // end index (excluding)\n });\n }\n return tokens;\n}\n\n/**\n * Convert a String to an Array of characters, taking into account that some\n * characters like emojis take up two string indexes.\n *\n * Adapted from core-js (MIT license)\n * https://github.com/zloirock/core-js/blob/2d69cf5f99ab3ea3463c395df81e5a15b68f49d9/packages/core-js/internals/string-multibyte.js\n *\n * @function stringToArray\n * @param {string} str\n * @returns {string[]}\n */\nfunction stringToArray(str) {\n const result = [];\n const len = str.length;\n let index = 0;\n while (index < len) {\n let first = str.charCodeAt(index);\n let second;\n let char = first < 0xd800 || first > 0xdbff || index + 1 === len || (second = str.charCodeAt(index + 1)) < 0xdc00 || second > 0xdfff ? str[index] // single character\n : str.slice(index, index + 2); // two-index characters\n result.push(char);\n index += char.length;\n }\n return result;\n}\n\n/**\n * Fast version of ts function for when transition defaults are well known\n * @param {State<string>} state\n * @param {string} input\n * @param {string} t\n * @param {string} defaultt\n * @param {[RegExp, State<string>][]} jr\n * @returns {State<string>}\n */\nfunction fastts(state, input, t, defaultt, jr) {\n let next;\n const len = input.length;\n for (let i = 0; i < len - 1; i++) {\n const char = input[i];\n if (state.j[char]) {\n next = state.j[char];\n } else {\n next = new State(defaultt);\n next.jr = jr.slice();\n state.j[char] = next;\n }\n state = next;\n }\n next = new State(t);\n next.jr = jr.slice();\n state.j[input[len - 1]] = next;\n return next;\n}\n\n/**\n * Converts a string of Top-Level Domain names encoded in update-tlds.js back\n * into a list of strings.\n * @param {str} encoded encoded TLDs string\n * @returns {str[]} original TLDs list\n */\nfunction decodeTlds(encoded) {\n const words = [];\n const stack = [];\n let i = 0;\n let digits = '0123456789';\n while (i < encoded.length) {\n let popDigitCount = 0;\n while (digits.indexOf(encoded[i + popDigitCount]) >= 0) {\n popDigitCount++; // encountered some digits, have to pop to go one level up trie\n }\n if (popDigitCount > 0) {\n words.push(stack.join('')); // whatever preceded the pop digits must be a word\n for (let popCount = parseInt(encoded.substring(i, i + popDigitCount), 10); popCount > 0; popCount--) {\n stack.pop();\n }\n i += popDigitCount;\n } else {\n stack.push(encoded[i]); // drop down a level into the trie\n i++;\n }\n }\n return words;\n}\n\n/**\n * An object where each key is a valid DOM Event Name such as `click` or `focus`\n * and each value is an event handler function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/Element#events\n * @typedef {?{ [event: string]: Function }} EventListeners\n */\n\n/**\n * All formatted properties required to render a link, including `tagName`,\n * `attributes`, `content` and `eventListeners`.\n * @typedef {{ tagName: any, attributes: {[attr: string]: any}, content: string,\n * eventListeners: EventListeners }} IntermediateRepresentation\n */\n\n/**\n * Specify either an object described by the template type `O` or a function.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `O`\n * @template O\n * @typedef {O | ((value: string, type: string, token: MultiToken) => O)} OptObj\n */\n\n/**\n * Specify either a function described by template type `F` or an object.\n *\n * Each key in the object should be a link type (`'url'`, `'hashtag`', etc.). Each\n * value should be a function with template type `F` that is called when the\n * corresponding link type is encountered.\n * @template F\n * @typedef {F | { [type: string]: F}} OptFn\n */\n\n/**\n * Specify either a value with template type `V`, a function that returns `V` or\n * an object where each value resolves to `V`.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `V`\n *\n * For the object, each key should be a link type (`'url'`, `'hashtag`', etc.).\n * Each value should either have type `V` or a function that returns V. This\n * function similarly takes a string value and a token.\n *\n * Example valid types for `Opt<string>`:\n *\n * ```js\n * 'hello'\n * (value, type, token) => 'world'\n * { url: 'hello', email: (value, token) => 'world'}\n * ```\n * @template V\n * @typedef {V | ((value: string, type: string, token: MultiToken) => V) | { [type: string]: V | ((value: string, token: MultiToken) => V) }} Opt\n */\n\n/**\n * See available options: https://linkify.js.org/docs/options.html\n * @typedef {{\n * \tdefaultProtocol?: string,\n * events?: OptObj<EventListeners>,\n * \tformat?: Opt<string>,\n * \tformatHref?: Opt<string>,\n * \tnl2br?: boolean,\n * \ttagName?: Opt<any>,\n * \ttarget?: Opt<string>,\n * \trel?: Opt<string>,\n * \tvalidate?: Opt<boolean>,\n * \ttruncate?: Opt<number>,\n * \tclassName?: Opt<string>,\n * \tattributes?: OptObj<({ [attr: string]: any })>,\n * ignoreTags?: string[],\n * \trender?: OptFn<((ir: IntermediateRepresentation) => any)>\n * }} Opts\n */\n\n/**\n * @type Required<Opts>\n */\nconst defaults = {\n defaultProtocol: 'http',\n events: null,\n format: noop,\n formatHref: noop,\n nl2br: false,\n tagName: 'a',\n target: null,\n rel: null,\n validate: true,\n truncate: Infinity,\n className: null,\n attributes: null,\n ignoreTags: [],\n render: null\n};\n\n/**\n * Utility class for linkify interfaces to apply specified\n * {@link Opts formatting and rendering options}.\n *\n * @param {Opts | Options} [opts] Option value overrides.\n * @param {(ir: IntermediateRepresentation) => any} [defaultRender] (For\n * internal use) default render function that determines how to generate an\n * HTML element based on a link token's derived tagName, attributes and HTML.\n * Similar to render option\n */\nfunction Options(opts, defaultRender = null) {\n let o = Object.assign({}, defaults);\n if (opts) {\n o = Object.assign(o, opts instanceof Options ? opts.o : opts);\n }\n\n // Ensure all ignored tags are uppercase\n const ignoredTags = o.ignoreTags;\n const uppercaseIgnoredTags = [];\n for (let i = 0; i < ignoredTags.length; i++) {\n uppercaseIgnoredTags.push(ignoredTags[i].toUpperCase());\n }\n /** @protected */\n this.o = o;\n if (defaultRender) {\n this.defaultRender = defaultRender;\n }\n this.ignoreTags = uppercaseIgnoredTags;\n}\nOptions.prototype = {\n o: defaults,\n /**\n * @type string[]\n */\n ignoreTags: [],\n /**\n * @param {IntermediateRepresentation} ir\n * @returns {any}\n */\n defaultRender(ir) {\n return ir;\n },\n /**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options.\n * @param {MultiToken} token\n * @returns {boolean}\n */\n check(token) {\n return this.get('validate', token.toString(), token);\n },\n // Private methods\n\n /**\n * Resolve an option's value based on the value of the option and the given\n * params. If operator and token are specified and the target option is\n * callable, automatically calls the function with the given argument.\n * @template {keyof Opts} K\n * @param {K} key Name of option to use\n * @param {string} [operator] will be passed to the target option if it's a\n * function. If not specified, RAW function value gets returned\n * @param {MultiToken} [token] The token from linkify.tokenize\n * @returns {Opts[K] | any}\n */\n get(key, operator, token) {\n const isCallable = operator != null;\n let option = this.o[key];\n if (!option) {\n return option;\n }\n if (typeof option === 'object') {\n option = token.t in option ? option[token.t] : defaults[key];\n if (typeof option === 'function' && isCallable) {\n option = option(operator, token);\n }\n } else if (typeof option === 'function' && isCallable) {\n option = option(operator, token.t, token);\n }\n return option;\n },\n /**\n * @template {keyof Opts} L\n * @param {L} key Name of options object to use\n * @param {string} [operator]\n * @param {MultiToken} [token]\n * @returns {Opts[L] | any}\n */\n getObj(key, operator, token) {\n let obj = this.o[key];\n if (typeof obj === 'function' && operator != null) {\n obj = obj(operator, token.t, token);\n }\n return obj;\n },\n /**\n * Convert the given token to a rendered element that may be added to the\n * calling-interface's DOM\n * @param {MultiToken} token Token to render to an HTML element\n * @returns {any} Render result; e.g., HTML string, DOM element, React\n * Component, etc.\n */\n render(token) {\n const ir = token.render(this); // intermediate representation\n const renderFn = this.get('render', null, token) || this.defaultRender;\n return renderFn(ir, token.t, token);\n }\n};\nfunction noop(val) {\n return val;\n}\n\nvar options = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tOptions: Options,\n\tdefaults: defaults\n});\n\n/******************************************************************************\n\tMulti-Tokens\n\tTokens composed of arrays of TextTokens\n******************************************************************************/\n\n/**\n * @param {string} value\n * @param {Token[]} tokens\n */\nfunction MultiToken(value, tokens) {\n this.t = 'token';\n this.v = value;\n this.tk = tokens;\n}\n\n/**\n * Abstract class used for manufacturing tokens of text tokens. That is rather\n * than the value for a token being a small string of text, it's value an array\n * of text tokens.\n *\n * Used for grouping together URLs, emails, hashtags, and other potential\n * creations.\n * @class MultiToken\n * @property {string} t\n * @property {string} v\n * @property {Token[]} tk\n * @abstract\n */\nMultiToken.prototype = {\n isLink: false,\n /**\n * Return the string this token represents.\n * @return {string}\n */\n toString() {\n return this.v;\n },\n /**\n * What should the value for this token be in the `href` HTML attribute?\n * Returns the `.toString` value by default.\n * @param {string} [scheme]\n * @return {string}\n */\n toHref(scheme) {\n return this.toString();\n },\n /**\n * @param {Options} options Formatting options\n * @returns {string}\n */\n toFormattedString(options) {\n const val = this.toString();\n const truncate = options.get('truncate', val, this);\n const formatted = options.get('format', val, this);\n return truncate && formatted.length > truncate ? formatted.substring(0, truncate) + '…' : formatted;\n },\n /**\n *\n * @param {Options} options\n * @returns {string}\n */\n toFormattedHref(options) {\n return options.get('formatHref', this.toHref(options.get('defaultProtocol')), this);\n },\n /**\n * The start index of this token in the original input string\n * @returns {number}\n */\n startIndex() {\n return this.tk[0].s;\n },\n /**\n * The end index of this token in the original input string (up to this\n * index but not including it)\n * @returns {number}\n */\n endIndex() {\n return this.tk[this.tk.length - 1].e;\n },\n /**\n \tReturns an object of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {string} [protocol] `'http'` by default\n */\n toObject(protocol = defaults.defaultProtocol) {\n return {\n type: this.t,\n value: this.toString(),\n isLink: this.isLink,\n href: this.toHref(protocol),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n *\n * @param {Options} options Formatting option\n */\n toFormattedObject(options) {\n return {\n type: this.t,\n value: this.toFormattedString(options),\n isLink: this.isLink,\n href: this.toFormattedHref(options),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n * Whether this token should be rendered as a link according to the given options\n * @param {Options} options\n * @returns {boolean}\n */\n validate(options) {\n return options.get('validate', this.toString(), this);\n },\n /**\n * Return an object that represents how this link should be rendered.\n * @param {Options} options Formattinng options\n */\n render(options) {\n const token = this;\n const href = this.toHref(options.get('defaultProtocol'));\n const formattedHref = options.get('formatHref', href, this);\n const tagName = options.get('tagName', href, token);\n const content = this.toFormattedString(options);\n const attributes = {};\n const className = options.get('className', href, token);\n const target = options.get('target', href, token);\n const rel = options.get('rel', href, token);\n const attrs = options.getObj('attributes', href, token);\n const eventListeners = options.getObj('events', href, token);\n attributes.href = formattedHref;\n if (className) {\n attributes.class = className;\n }\n if (target) {\n attributes.target = target;\n }\n if (rel) {\n attributes.rel = rel;\n }\n if (attrs) {\n Object.assign(attributes, attrs);\n }\n return {\n tagName,\n attributes,\n content,\n eventListeners\n };\n }\n};\n\n/**\n * Create a new token that can be emitted by the parser state machine\n * @param {string} type readable type of the token\n * @param {object} props properties to assign or override, including isLink = true or false\n * @returns {new (value: string, tokens: Token[]) => MultiToken} new token class\n */\nfunction createTokenClass(type, props) {\n class Token extends MultiToken {\n constructor(value, tokens) {\n super(value, tokens);\n this.t = type;\n }\n }\n for (const p in props) {\n Token.prototype[p] = props[p];\n }\n Token.t = type;\n return Token;\n}\n\n/**\n\tRepresents a list of tokens making up a valid email address\n*/\nconst Email = createTokenClass('email', {\n isLink: true,\n toHref() {\n return 'mailto:' + this.toString();\n }\n});\n\n/**\n\tRepresents some plain text\n*/\nconst Text = createTokenClass('text');\n\n/**\n\tMulti-linebreak token - represents a line break\n\t@class Nl\n*/\nconst Nl = createTokenClass('nl');\n\n/**\n\tRepresents a list of text tokens making up a valid URL\n\t@class Url\n*/\nconst Url = createTokenClass('url', {\n isLink: true,\n /**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@param {string} [scheme] default scheme (e.g., 'https')\n \t@return {string} the full href\n */\n toHref(scheme = defaults.defaultProtocol) {\n // Check if already has a prefix scheme\n return this.hasProtocol() ? this.v : `${scheme}://${this.v}`;\n },\n /**\n * Check whether this URL token has a protocol\n * @return {boolean}\n */\n hasProtocol() {\n const tokens = this.tk;\n return tokens.length >= 2 && tokens[0].t !== LOCALHOST && tokens[1].t === COLON;\n }\n});\n\nvar multi = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tBase: MultiToken,\n\tEmail: Email,\n\tMultiToken: MultiToken,\n\tNl: Nl,\n\tText: Text,\n\tUrl: Url,\n\tcreateTokenClass: createTokenClass\n});\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/EmailAddress (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main run\n*/\n\nconst makeState = arg => new State(arg);\n\n/**\n * Generate the parser multi token-based state machine\n * @param {{ groups: Collections<string> }} tokens\n */\nfunction init$1({\n groups\n}) {\n // Types of characters the URL can definitely end in\n const qsAccepting = groups.domain.concat([AMPERSAND, ASTERISK, AT, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, NUM, PERCENT, PIPE, PLUS, POUND, SLASH, SYM, TILDE, UNDERSCORE]);\n\n // Types of tokens that can follow a URL and be part of the query string\n // but cannot be the very last characters\n // Characters that cannot appear in the URL at all should be excluded\n const qsNonAccepting = [APOSTROPHE, COLON, COMMA, DOT, EXCLAMATION, PERCENT, QUERY, QUOTE, SEMI, OPENANGLEBRACKET, CLOSEANGLEBRACKET, OPENBRACE, CLOSEBRACE, CLOSEBRACKET, OPENBRACKET, OPENPAREN, CLOSEPAREN, FULLWIDTHLEFTPAREN, FULLWIDTHRIGHTPAREN, LEFTCORNERBRACKET, RIGHTCORNERBRACKET, LEFTWHITECORNERBRACKET, RIGHTWHITECORNERBRACKET, FULLWIDTHLESSTHAN, FULLWIDTHGREATERTHAN];\n\n // For addresses without the mailto prefix\n // Tokens allowed in the localpart of the email\n const localpartAccepting = [AMPERSAND, APOSTROPHE, ASTERISK, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, OPENBRACE, CLOSEBRACE, PERCENT, PIPE, PLUS, POUND, QUERY, SLASH, SYM, TILDE, UNDERSCORE];\n\n // The universal starting state.\n /**\n * @type State<Token>\n */\n const Start = makeState();\n const Localpart = tt(Start, TILDE); // Local part of the email address\n ta(Localpart, localpartAccepting, Localpart);\n ta(Localpart, groups.domain, Localpart);\n const Domain = makeState(),\n Scheme = makeState(),\n SlashScheme = makeState();\n ta(Start, groups.domain, Domain); // parsed string ends with a potential domain name (A)\n ta(Start, groups.scheme, Scheme); // e.g., 'mailto'\n ta(Start, groups.slashscheme, SlashScheme); // e.g., 'http'\n\n ta(Domain, localpartAccepting, Localpart);\n ta(Domain, groups.domain, Domain);\n const LocalpartAt = tt(Domain, AT); // Local part of the email address plus @\n\n tt(Localpart, AT, LocalpartAt); // close to an email address now\n\n // Local part of an email address can be e.g. 'http' or 'mailto'\n tt(Scheme, AT, LocalpartAt);\n tt(SlashScheme, AT, LocalpartAt);\n const LocalpartDot = tt(Localpart, DOT); // Local part of the email address plus '.' (localpart cannot end in .)\n ta(LocalpartDot, localpartAccepting, Localpart);\n ta(LocalpartDot, groups.domain, Localpart);\n const EmailDomain = makeState();\n ta(LocalpartAt, groups.domain, EmailDomain); // parsed string starts with local email info + @ with a potential domain name\n ta(EmailDomain, groups.domain, EmailDomain);\n const EmailDomainDot = tt(EmailDomain, DOT); // domain followed by DOT\n ta(EmailDomainDot, groups.domain, EmailDomain);\n const Email$1 = makeState(Email); // Possible email address (could have more tlds)\n ta(EmailDomainDot, groups.tld, Email$1);\n ta(EmailDomainDot, groups.utld, Email$1);\n tt(LocalpartAt, LOCALHOST, Email$1);\n\n // Hyphen can jump back to a domain name\n const EmailDomainHyphen = tt(EmailDomain, HYPHEN); // parsed string starts with local email info + @ with a potential domain name\n tt(EmailDomainHyphen, HYPHEN, EmailDomainHyphen);\n ta(EmailDomainHyphen, groups.domain, EmailDomain);\n ta(Email$1, groups.domain, EmailDomain);\n tt(Email$1, DOT, EmailDomainDot);\n tt(Email$1, HYPHEN, EmailDomainHyphen);\n\n // Final possible email states\n const EmailColon = tt(Email$1, COLON); // URL followed by colon (potential port number here)\n /*const EmailColonPort = */\n ta(EmailColon, groups.numeric, Email); // URL followed by colon and port number\n\n // Account for dots and hyphens. Hyphens are usually parts of domain names\n // (but not TLDs)\n const DomainHyphen = tt(Domain, HYPHEN); // domain followed by hyphen\n const DomainDot = tt(Domain, DOT); // domain followed by DOT\n tt(DomainHyphen, HYPHEN, DomainHyphen);\n ta(DomainHyphen, groups.domain, Domain);\n ta(DomainDot, localpartAccepting, Localpart);\n ta(DomainDot, groups.domain, Domain);\n const DomainDotTld = makeState(Url); // Simplest possible URL with no query string\n ta(DomainDot, groups.tld, DomainDotTld);\n ta(DomainDot, groups.utld, DomainDotTld);\n ta(DomainDotTld, groups.domain, Domain);\n ta(DomainDotTld, localpartAccepting, Localpart);\n tt(DomainDotTld, DOT, DomainDot);\n tt(DomainDotTld, HYPHEN, DomainHyphen);\n tt(DomainDotTld, AT, LocalpartAt);\n const DomainDotTldColon = tt(DomainDotTld, COLON); // URL followed by colon (potential port number here)\n const DomainDotTldColonPort = makeState(Url); // TLD followed by a port number\n ta(DomainDotTldColon, groups.numeric, DomainDotTldColonPort);\n\n // Long URL with optional port and maybe query string\n const Url$1 = makeState(Url);\n\n // URL with extra symbols at the end, followed by an opening bracket\n const UrlNonaccept = makeState(); // URL followed by some symbols (will not be part of the final URL)\n\n // Query strings\n ta(Url$1, qsAccepting, Url$1);\n ta(Url$1, qsNonAccepting, UrlNonaccept);\n ta(UrlNonaccept, qsAccepting, Url$1);\n ta(UrlNonaccept, qsNonAccepting, UrlNonaccept);\n\n // Become real URLs after `SLASH` or `COLON NUM SLASH`\n // Here works with or without scheme:// prefix\n tt(DomainDotTld, SLASH, Url$1);\n tt(DomainDotTldColonPort, SLASH, Url$1);\n\n // Note that domains that begin with schemes are treated slighly differently\n const SchemeColon = tt(Scheme, COLON); // e.g., 'mailto:'\n const SlashSchemeColon = tt(SlashScheme, COLON); // e.g., 'http:'\n const SlashSchemeColonSlash = tt(SlashSchemeColon, SLASH); // e.g., 'http:/'\n\n const UriPrefix = tt(SlashSchemeColonSlash, SLASH); // e.g., 'http://'\n\n // Scheme states can transition to domain states\n ta(Scheme, groups.domain, Domain);\n tt(Scheme, DOT, DomainDot);\n tt(Scheme, HYPHEN, DomainHyphen);\n ta(SlashScheme, groups.domain, Domain);\n tt(SlashScheme, DOT, DomainDot);\n tt(SlashScheme, HYPHEN, DomainHyphen);\n\n // Force URL with scheme prefix followed by anything sane\n ta(SchemeColon, groups.domain, Url$1);\n tt(SchemeColon, SLASH, Url$1);\n tt(SchemeColon, QUERY, Url$1);\n ta(UriPrefix, groups.domain, Url$1);\n ta(UriPrefix, qsAccepting, Url$1);\n tt(UriPrefix, SLASH, Url$1);\n const bracketPairs = [[OPENBRACE, CLOSEBRACE],\n // {}\n [OPENBRACKET, CLOSEBRACKET],\n // []\n [OPENPAREN, CLOSEPAREN],\n // ()\n [OPENANGLEBRACKET, CLOSEANGLEBRACKET],\n // <>\n [FULLWIDTHLEFTPAREN, FULLWIDTHRIGHTPAREN],\n // ()\n [LEFTCORNERBRACKET, RIGHTCORNERBRACKET],\n // 「」\n [LEFTWHITECORNERBRACKET, RIGHTWHITECORNERBRACKET],\n // 『』\n [FULLWIDTHLESSTHAN, FULLWIDTHGREATERTHAN] // <>\n ];\n for (let i = 0; i < bracketPairs.length; i++) {\n const [OPEN, CLOSE] = bracketPairs[i];\n const UrlOpen = tt(Url$1, OPEN); // URL followed by open bracket\n\n // Continue not accepting for open brackets\n tt(UrlNonaccept, OPEN, UrlOpen);\n\n // Closing bracket component. This character WILL be included in the URL\n tt(UrlOpen, CLOSE, Url$1);\n\n // URL that beings with an opening bracket, followed by a symbols.\n // Note that the final state can still be `UrlOpen` (if the URL has a\n // single opening bracket for some reason).\n const UrlOpenQ = makeState(Url);\n ta(UrlOpen, qsAccepting, UrlOpenQ);\n const UrlOpenSyms = makeState(); // UrlOpen followed by some symbols it cannot end it\n ta(UrlOpen, qsNonAccepting);\n\n // URL that begins with an opening bracket, followed by some symbols\n ta(UrlOpenQ, qsAccepting, UrlOpenQ);\n ta(UrlOpenQ, qsNonAccepting, UrlOpenSyms);\n ta(UrlOpenSyms, qsAccepting, UrlOpenQ);\n ta(UrlOpenSyms, qsNonAccepting, UrlOpenSyms);\n\n // Close brace/bracket to become regular URL\n tt(UrlOpenQ, CLOSE, Url$1);\n tt(UrlOpenSyms, CLOSE, Url$1);\n }\n tt(Start, LOCALHOST, DomainDotTld); // localhost is a valid URL state\n tt(Start, NL, Nl); // single new line\n\n return {\n start: Start,\n tokens: tk\n };\n}\n\n/**\n * Run the parser state machine on a list of scanned string-based tokens to\n * create a list of multi tokens, each of which represents a URL, email address,\n * plain text, etc.\n *\n * @param {State<MultiToken>} start parser start state\n * @param {string} input the original input used to generate the given tokens\n * @param {Token[]} tokens list of scanned tokens\n * @returns {MultiToken[]}\n */\nfunction run(start, input, tokens) {\n let len = tokens.length;\n let cursor = 0;\n let multis = [];\n let textTokens = [];\n while (cursor < len) {\n let state = start;\n let secondState = null;\n let nextState = null;\n let multiLength = 0;\n let latestAccepting = null;\n let sinceAccepts = -1;\n while (cursor < len && !(secondState = state.go(tokens[cursor].t))) {\n // Starting tokens with nowhere to jump to.\n // Consider these to be just plain text\n textTokens.push(tokens[cursor++]);\n }\n while (cursor < len && (nextState = secondState || state.go(tokens[cursor].t))) {\n // Get the next state\n secondState = null;\n state = nextState;\n\n // Keep track of the latest accepting state\n if (state.accepts()) {\n sinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts++;\n }\n cursor++;\n multiLength++;\n }\n if (sinceAccepts < 0) {\n // No accepting state was found, part of a regular text token add\n // the first text token to the text tokens array and try again from\n // the next\n cursor -= multiLength;\n if (cursor < len) {\n textTokens.push(tokens[cursor]);\n cursor++;\n }\n } else {\n // Accepting state!\n // First close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n textTokens = [];\n }\n\n // Roll back to the latest accepting state\n cursor -= sinceAccepts;\n multiLength -= sinceAccepts;\n\n // Create a new multitoken\n const Multi = latestAccepting.t;\n const subtokens = tokens.slice(cursor - multiLength, cursor);\n multis.push(initMultiToken(Multi, input, subtokens));\n }\n }\n\n // Finally close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n }\n return multis;\n}\n\n/**\n * Utility function for instantiating a new multitoken with all the relevant\n * fields during parsing.\n * @param {new (value: string, tokens: Token[]) => MultiToken} Multi class to instantiate\n * @param {string} input original input string\n * @param {Token[]} tokens consecutive tokens scanned from input string\n * @returns {MultiToken}\n */\nfunction initMultiToken(Multi, input, tokens) {\n const startIdx = tokens[0].s;\n const endIdx = tokens[tokens.length - 1].e;\n const value = input.slice(startIdx, endIdx);\n return new Multi(value, tokens);\n}\n\nconst warn = typeof console !== 'undefined' && console && console.warn || (() => {});\nconst warnAdvice = 'until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.';\n\n// Side-effect initialization state\nconst INIT = {\n scanner: null,\n parser: null,\n tokenQueue: [],\n pluginQueue: [],\n customSchemes: [],\n initialized: false\n};\n\n/**\n * @typedef {{\n * \tstart: State<string>,\n * \ttokens: { groups: Collections<string> } & typeof tk\n * }} ScannerInit\n */\n\n/**\n * @typedef {{\n * \tstart: State<MultiToken>,\n * \ttokens: typeof multi\n * }} ParserInit\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit }) => void} TokenPlugin\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit, parser: ParserInit }) => void} Plugin\n */\n\n/**\n * De-register all plugins and reset the internal state-machine. Used for\n * testing; not required in practice.\n * @private\n */\nfunction reset() {\n State.groups = {};\n INIT.scanner = null;\n INIT.parser = null;\n INIT.tokenQueue = [];\n INIT.pluginQueue = [];\n INIT.customSchemes = [];\n INIT.initialized = false;\n return INIT;\n}\n\n/**\n * Register a token plugin to allow the scanner to recognize additional token\n * types before the parser state machine is constructed from the results.\n * @param {string} name of plugin to register\n * @param {TokenPlugin} plugin function that accepts the scanner state machine\n * and available scanner tokens and collections and extends the state machine to\n * recognize additional tokens or groups.\n */\nfunction registerTokenPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(`linkifyjs: Invalid token plugin ${plugin} (expects function)`);\n }\n for (let i = 0; i < INIT.tokenQueue.length; i++) {\n if (name === INIT.tokenQueue[i][0]) {\n warn(`linkifyjs: token plugin \"${name}\" already registered - will be overwritten`);\n INIT.tokenQueue[i] = [name, plugin];\n return;\n }\n }\n INIT.tokenQueue.push([name, plugin]);\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register token plugin \"${name}\" ${warnAdvice}`);\n }\n}\n\n/**\n * Register a linkify plugin\n * @param {string} name of plugin to register\n * @param {Plugin} plugin function that accepts the parser state machine and\n * extends the parser to recognize additional link types\n */\nfunction registerPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(`linkifyjs: Invalid plugin ${plugin} (expects function)`);\n }\n for (let i = 0; i < INIT.pluginQueue.length; i++) {\n if (name === INIT.pluginQueue[i][0]) {\n warn(`linkifyjs: plugin \"${name}\" already registered - will be overwritten`);\n INIT.pluginQueue[i] = [name, plugin];\n return;\n }\n }\n INIT.pluginQueue.push([name, plugin]);\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register plugin \"${name}\" ${warnAdvice}`);\n }\n}\n\n/**\n * Detect URLs with the following additional protocol. Anything with format\n * \"protocol://...\" will be considered a link. If `optionalSlashSlash` is set to\n * `true`, anything with format \"protocol:...\" will be considered a link.\n * @param {string} scheme\n * @param {boolean} [optionalSlashSlash]\n */\nfunction registerCustomProtocol(scheme, optionalSlashSlash = false) {\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register custom scheme \"${scheme}\" ${warnAdvice}`);\n }\n if (!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(scheme)) {\n throw new Error(`linkifyjs: incorrect scheme format.\n1. Must only contain digits, lowercase ASCII letters or \"-\"\n2. Cannot start or end with \"-\"\n3. \"-\" cannot repeat`);\n }\n INIT.customSchemes.push([scheme, optionalSlashSlash]);\n}\n\n/**\n * Initialize the linkify state machine. Called automatically the first time\n * linkify is called on a string, but may be called manually as well.\n */\nfunction init() {\n // Initialize scanner state machine and plugins\n INIT.scanner = init$2(INIT.customSchemes);\n for (let i = 0; i < INIT.tokenQueue.length; i++) {\n INIT.tokenQueue[i][1]({\n scanner: INIT.scanner\n });\n }\n\n // Initialize parser state machine and plugins\n INIT.parser = init$1(INIT.scanner.tokens);\n for (let i = 0; i < INIT.pluginQueue.length; i++) {\n INIT.pluginQueue[i][1]({\n scanner: INIT.scanner,\n parser: INIT.parser\n });\n }\n INIT.initialized = true;\n return INIT;\n}\n\n/**\n * Parse a string into tokens that represent linkable and non-linkable sub-components\n * @param {string} str\n * @return {MultiToken[]} tokens\n */\nfunction tokenize(str) {\n if (!INIT.initialized) {\n init();\n }\n return run(INIT.parser.start, str, run$1(INIT.scanner.start, str));\n}\ntokenize.scan = run$1; // for testing\n\n/**\n * Find a list of linkable items in the given string.\n * @param {string} str string to find links in\n * @param {string | Opts} [type] either formatting options or specific type of\n * links to find, e.g., 'url' or 'email'\n * @param {Opts} [opts] formatting options for final output. Cannot be specified\n * if opts already provided in `type` argument\n */\nfunction find(str, type = null, opts = null) {\n if (type && typeof type === 'object') {\n if (opts) {\n throw Error(`linkifyjs: Invalid link type ${type}; must be a string`);\n }\n opts = type;\n type = null;\n }\n const options = new Options(opts);\n const tokens = tokenize(str);\n const filtered = [];\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n if (token.isLink && (!type || token.t === type) && options.check(token)) {\n filtered.push(token.toFormattedObject(options));\n }\n }\n return filtered;\n}\n\n/**\n * Is the given string valid linkable text of some sort. Note that this does not\n * trim the text for you.\n *\n * Optionally pass in a second `type` param, which is the type of link to test\n * for.\n *\n * For example,\n *\n * linkify.test(str, 'email');\n *\n * Returns `true` if str is a valid email.\n * @param {string} str string to test for links\n * @param {string} [type] optional specific link type to look for\n * @returns boolean true/false\n */\nfunction test(str, type = null) {\n const tokens = tokenize(str);\n return tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].t === type);\n}\n\nexport { MultiToken, Options, State, createTokenClass, find, init, multi, options, regexp, registerCustomProtocol, registerPlugin, registerTokenPlugin, reset, stringToArray, test, multi as text, tokenize };\n","import '../assets/NcAppSidebar-krHtMwId.css';\nimport { vOnClickOutside } from \"@vueuse/components\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, defineComponent, mergeModels, useModel, normalizeClass, createVNode, withCtx, resolveComponent, withKeys, withModifiers, Fragment, renderList, createBlock, renderSlot, resolveDirective, Transition, withDirectives, Teleport, normalizeStyle, vShow, createTextVNode, warn, ref, provide } from \"vue\";\nimport { I as IconArrowRight } from \"./ArrowRight-DRKHUZMH.mjs\";\nimport { I as IconClose } from \"./Close-D6ngJ4t9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { getCanonicalLocale } from \"@nextcloud/l10n\";\nimport { _ as _sfc_main$6 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nimport { useIsSmallMobile } from \"../composables/useIsMobile/index.mjs\";\nimport directive from \"../directives/Focus/index.mjs\";\nimport { r as register, V as t15, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { i as isSlotPopulated, N as NcActions } from \"./NcActions-4R7icatI.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _sfc_main$7 } from \"./NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-0j0aFDeK.mjs\";\nimport { N as NcButton } from \"./NcButton-CzpKEx4V.mjs\";\nimport { C as CONTENT_SELECTOR_KEY } from \"./constants-Ciwvl5xb.mjs\";\nimport { N as NcEmptyContent } from \"./NcEmptyContent-B8-90BSI.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-b_ajZ_nQ.mjs\";\nconst _sfc_main$5 = {\n name: \"DockRightIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$5 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$3 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$3 = { d: \"M20 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V6A2 2 0 0 0 20 4M15 18H4V6H15Z\" };\nconst _hoisted_4$3 = { key: 0 };\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon dock-right-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$3, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$3))\n ], 16, _hoisted_1$5);\n}\nconst IconDockRight = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$4]]);\nconst _sfc_main$4 = {\n name: \"StarIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$4 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon star-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$4);\n}\nconst IconStar = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$3 = {\n name: \"StarOutlineIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$3 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon star-outline-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$3);\n}\nconst IconStarOutline = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$2]]);\nconst _hoisted_1$2 = [\"aria-selected\", \"tabindex\"];\nconst _sfc_main$2 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSidebarTabsButton\",\n props: /* @__PURE__ */ mergeModels({\n tab: {}\n }, {\n \"selected\": { type: Boolean, ...{ required: true } },\n \"selectedModifiers\": {}\n }),\n emits: [\"update:selected\"],\n setup(__props) {\n const selected = useModel(__props, \"selected\");\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"button\", {\n class: normalizeClass([\"button-vue\", [_ctx.$style.sidebarTabsButton, {\n [_ctx.$style.sidebarTabsButton_selected]: selected.value\n }]]),\n role: \"tab\",\n \"aria-selected\": selected.value,\n tabindex: selected.value ? 0 : -1,\n onClick: _cache[0] || (_cache[0] = ($event) => selected.value = true)\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.sidebarTabsButton__icon)\n }, [\n createVNode(_sfc_main$6, {\n vnodes: _ctx.tab.renderIcon()\n }, {\n default: withCtx(() => [\n createElementVNode(\"span\", {\n class: normalizeClass([_ctx.$style.sidebarTabsButton__legacyIcon, _ctx.tab.icon])\n }, null, 2)\n ]),\n _: 1\n }, 8, [\"vnodes\"])\n ], 2),\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.sidebarTabsButton__name)\n }, toDisplayString(_ctx.tab.name), 3)\n ], 10, _hoisted_1$2);\n };\n }\n});\nconst sidebarTabsButton = \"_sidebarTabsButton_1y2dv_20\";\nconst sidebarTabsButton_selected = \"_sidebarTabsButton_selected_1y2dv_45\";\nconst sidebarTabsButton__name = \"_sidebarTabsButton__name_1y2dv_59\";\nconst sidebarTabsButton__icon = \"_sidebarTabsButton__icon_1y2dv_70\";\nconst sidebarTabsButton__legacyIcon = \"_sidebarTabsButton__legacyIcon_1y2dv_76\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_1y2dv_12\",\n sidebarTabsButton,\n sidebarTabsButton_selected,\n sidebarTabsButton__name,\n sidebarTabsButton__icon,\n sidebarTabsButton__legacyIcon\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcAppSidebarTabsButton = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"__cssModules\", cssModules]]);\nconst _sfc_main$1 = {\n name: \"NcAppSidebarTabs\",\n components: {\n NcAppSidebarTabsButton\n },\n provide() {\n return {\n registerTab: this.registerTab,\n unregisterTab: this.unregisterTab,\n // Getter as an alternative to Vue 2.7 computed(() => this.activeTab)\n getActiveTab: () => this.activeTab,\n // Used to check whether the tab header is shown so the tabs can reference the tab header for `aria-labelledby` or not\n isTablistShown: () => this.hasMultipleTabs\n };\n },\n props: {\n /**\n * Id of the tab to activate\n */\n active: {\n type: String,\n default: \"\"\n },\n /**\n * Force the tab navigation to display even if there is only one tab\n */\n forceTabs: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"update:active\"],\n data(props) {\n return {\n /**\n * Tab descriptions from the passed NcSidebarTab components' props to build the tab navbar from.\n */\n tabs: [],\n /**\n * Local active (open) tab's ID. It allows to use component without v-model:active\n */\n activeTab: props.active\n };\n },\n computed: {\n /**\n * Has multiple tabs. If only one tab - its content is shown without navigation\n *\n * @return {boolean}\n */\n hasMultipleTabs() {\n return this.tabs.length > 1;\n },\n showForSingleTab() {\n return this.forceTabs && this.tabs.length === 1;\n },\n currentTabIndex() {\n return this.tabs.findIndex((tab) => tab.id === this.activeTab);\n }\n },\n watch: {\n tabs() {\n if (this.active) {\n this.updateActive();\n }\n },\n active(active) {\n if (active !== this.activeTab) {\n this.updateActive();\n }\n }\n },\n methods: {\n /**\n * Set the current active tab\n *\n * @param {string} id the id of the tab\n */\n setActive(id) {\n this.activeTab = id;\n this.$emit(\"update:active\", this.activeTab);\n },\n /**\n * Focus the previous tab\n * and emit to the parent component\n */\n focusPreviousTab() {\n if (this.currentTabIndex > 0) {\n this.setActive(this.tabs[this.currentTabIndex - 1].id);\n }\n this.focusActiveTab();\n },\n /**\n * Focus the next tab\n * and emit to the parent component\n */\n focusNextTab() {\n if (this.currentTabIndex < this.tabs.length - 1) {\n this.setActive(this.tabs[this.currentTabIndex + 1].id);\n }\n this.focusActiveTab();\n },\n /**\n * Focus the first tab\n * and emit to the parent component\n */\n focusFirstTab() {\n this.setActive(this.tabs[0].id);\n this.focusActiveTab();\n },\n /**\n * Focus the last tab\n * and emit to the parent component\n */\n focusLastTab() {\n this.setActive(this.tabs[this.tabs.length - 1].id);\n this.focusActiveTab();\n },\n /**\n * Focus the current active tab\n */\n focusActiveTab() {\n this.$el.querySelector(`#tab-button-${this.activeTab}`).focus();\n },\n /**\n * Focus the content on tab\n * see aria accessibility guidelines\n */\n focusActiveTabContent() {\n this.$el.querySelector(\"#tab-\" + this.activeTab).focus();\n },\n /**\n * Update the current active tab\n */\n updateActive() {\n this.activeTab = this.active && this.tabs.some(({ id }) => id === this.active) ? this.active : this.tabs[0]?.id ?? \"\";\n },\n /**\n * Register child tab in the tabs\n *\n * @param {object} tab child tab passed to slot\n */\n registerTab(tab) {\n this.tabs.push(tab);\n this.tabs.sort((a, b) => {\n if (a.order === b.order) {\n return a.name.localeCompare(b.name, [getCanonicalLocale()]);\n }\n return a.order - b.order;\n });\n this.updateActive();\n },\n /**\n * Unregister child tab from the tabs\n *\n * @param {string} id tab's id\n */\n unregisterTab(id) {\n const tabIndex = this.tabs.findIndex((tab) => tab.id === id);\n if (tabIndex !== -1) {\n this.tabs.splice(tabIndex, 1);\n }\n if (this.activeTab === id) {\n this.updateActive();\n }\n }\n }\n};\nconst _hoisted_1$1 = { class: \"app-sidebar-tabs\" };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAppSidebarTabsButton = resolveComponent(\"NcAppSidebarTabsButton\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n $options.hasMultipleTabs || $options.showForSingleTab ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n role: \"tablist\",\n class: \"app-sidebar-tabs__nav\",\n onKeydown: [\n _cache[0] || (_cache[0] = withKeys(withModifiers((...args) => $options.focusPreviousTab && $options.focusPreviousTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"left\"])),\n _cache[1] || (_cache[1] = withKeys(withModifiers((...args) => $options.focusNextTab && $options.focusNextTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"right\"])),\n _cache[2] || (_cache[2] = withKeys(withModifiers((...args) => $options.focusActiveTabContent && $options.focusActiveTabContent(...args), [\"exact\", \"prevent\", \"stop\"]), [\"tab\"])),\n _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.focusFirstTab && $options.focusFirstTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"home\"])),\n _cache[4] || (_cache[4] = withKeys(withModifiers((...args) => $options.focusLastTab && $options.focusLastTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"end\"])),\n _cache[5] || (_cache[5] = withKeys(withModifiers((...args) => $options.focusFirstTab && $options.focusFirstTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"page-up\"])),\n _cache[6] || (_cache[6] = withKeys(withModifiers((...args) => $options.focusLastTab && $options.focusLastTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"page-down\"]))\n ]\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($data.tabs, (tab) => {\n return openBlock(), createBlock(_component_NcAppSidebarTabsButton, {\n id: `tab-button-${tab.id}`,\n key: tab.id,\n class: \"app-sidebar-tabs__tab\",\n \"aria-controls\": `tab-${tab.id}`,\n selected: $data.activeTab === tab.id,\n tab,\n \"onUpdate:selected\": ($event) => $options.setActive(tab.id)\n }, null, 8, [\"id\", \"aria-controls\", \"selected\", \"tab\", \"onUpdate:selected\"]);\n }), 128))\n ], 32)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-sidebar-tabs__content\", { \"app-sidebar-tabs__content--multiple\": $options.hasMultipleTabs }])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2)\n ]);\n}\nconst NcAppSidebarTabs = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-1e2d5bfb\"]]);\nregister(t15);\nconst _sfc_main = {\n name: \"NcAppSidebar\",\n components: {\n NcActions,\n NcAppSidebarHeader: _sfc_main$7,\n NcAppSidebarTabs,\n NcButton,\n NcLoadingIcon,\n NcEmptyContent,\n IconArrowRight,\n IconClose,\n IconDockRight,\n IconStar,\n IconStarOutline\n },\n directives: {\n Focus: directive,\n /** @type {import('vue').ObjectDirective} */\n ClickOutside: vOnClickOutside\n },\n inject: {\n ncContentSelector: {\n from: CONTENT_SELECTOR_KEY,\n default: void 0\n }\n },\n props: {\n /**\n * The active tab\n */\n active: {\n type: String,\n default: \"\"\n },\n /**\n * Main text of the sidebar\n */\n name: {\n type: String,\n required: true\n },\n /**\n * Allow to edit the sidebar name.\n */\n nameEditable: {\n type: Boolean,\n default: false\n },\n /**\n * Placeholder in the edit field if the name is editable.\n */\n namePlaceholder: {\n type: String,\n default: \"\"\n },\n /**\n * Secondary name of the sidebar (subline)\n */\n subname: {\n type: String,\n default: \"\"\n },\n /**\n * Title to display for the subname.\n */\n subtitle: {\n type: String,\n default: \"\"\n },\n /**\n * Url to the top header background image\n * Applied with css\n */\n background: {\n type: String,\n default: \"\"\n },\n /**\n * Enable the favourite icon if not null\n * See fired events\n */\n starred: {\n type: Boolean,\n default: null\n },\n /**\n * Show loading spinner instead of the star icon\n */\n starLoading: {\n type: Boolean,\n default: false\n },\n /**\n * Show loading spinner instead of tabs\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Display the sidebar in compact mode\n */\n compact: {\n type: Boolean,\n default: false\n },\n /**\n * Only display close button and default slot content.\n * Don't display other header content and primary and secondary actions.\n * Useful when showing the EmptyContent component as content.\n */\n empty: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Force the tab navigation to display even if there is only one tab\n */\n forceTabs: {\n type: Boolean,\n default: false\n },\n /**\n * Linkify the name\n */\n linkifyName: {\n type: Boolean,\n default: false\n },\n /**\n * Title to display for the name.\n * Can be set to the same text in case it's too long.\n */\n title: {\n type: String,\n default: \"\"\n },\n /**\n * Allow to conditionally show the sidebar\n * You can also use `v-if` on the sidebar, but using the open prop allow to keep\n * the sidebar inside the DOM for performance if it is opened and closed multiple times.\n *\n * When using the `open` property to close the sidebar a built-in toggle button will be shown to reopen it,\n * similar to the app navigation. You can remove this button with the `no-toggle` prop.\n */\n open: {\n type: Boolean,\n default: true\n },\n /**\n * Custom classes to assign to the sidebar toggle button.\n * If needed this can be used to assign styles to the button using `:deep()` selector.\n */\n toggleClasses: {\n type: [String, Array, Object],\n default: \"\"\n },\n /**\n * Custom attrs to assign to the sidebar toggle button.\n */\n toggleAttrs: {\n type: Object,\n default: void 0\n },\n /**\n * Do not add the built-in toggle button with `open` prop.\n */\n noToggle: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"close\",\n \"closed\",\n \"opened\",\n // 'figureClick', not emitted on purpose to make \"hasFigureClickListener\" work\n \"update:active\",\n \"update:name\",\n \"update:nameEditable\",\n \"update:open\",\n \"update:starred\",\n \"submitName\",\n \"dismissEditing\"\n ],\n setup() {\n const headerRef = ref(null);\n provide(\"NcAppSidebar:header:ref\", headerRef);\n return {\n uid: createElementId(),\n isMobile: useIsSmallMobile(),\n headerRef\n };\n },\n data() {\n return {\n changeNameTranslated: t(\"Change name\"),\n closeTranslated: t(\"Close sidebar\"),\n favoriteTranslated: t(\"Favorite\"),\n isStarred: this.starred,\n focusTrap: null,\n elementToReturnFocus: null\n };\n },\n computed: {\n canStar() {\n return this.isStarred !== null;\n },\n hasFigureClickListener() {\n return !!this.$attrs.onFigureClick;\n }\n },\n watch: {\n starred() {\n this.isStarred = this.starred;\n },\n isMobile() {\n this.toggleFocusTrap();\n },\n open() {\n this.checkToggleButtonContainerAvailability();\n }\n },\n created() {\n this.preserveElementToReturnFocus();\n this.checkToggleButtonContainerAvailability();\n },\n beforeUnmount() {\n this.$emit(\"closed\");\n this.focusTrap?.deactivate();\n },\n methods: {\n isSlotPopulated,\n t,\n preserveElementToReturnFocus() {\n if (document.activeElement && document.activeElement !== document.body) {\n this.elementToReturnFocus = document.activeElement;\n if (this.elementToReturnFocus.getAttribute(\"role\") === \"menuitem\") {\n const menu = this.elementToReturnFocus.closest('[role=\"menu\"]');\n if (menu) {\n const menuTrigger = document.querySelector(`[aria-controls=\"${menu.id}\"]`);\n this.elementToReturnFocus = menuTrigger;\n }\n }\n }\n },\n initFocusTrap() {\n if (this.focusTrap) {\n return;\n }\n this.focusTrap = createFocusTrap([\n // The sidebar itself\n this.$refs.sidebar,\n // Nextcloud Server header navigation\n document.querySelector(\"#header\")\n ], {\n allowOutsideClick: true,\n fallbackFocus: this.$refs.closeButton.$el,\n trapStack: getTrapStack(),\n escapeDeactivates: false\n });\n },\n /**\n * Activate focus trap if it is currently needed, otherwise deactivate\n */\n toggleFocusTrap() {\n if (this.open && this.isMobile) {\n this.initFocusTrap();\n this.focusTrap.activate();\n } else {\n this.focusTrap?.deactivate();\n }\n },\n /**\n * Close the sidebar on pressing the escape key on mobile\n *\n * @param {KeyboardEvent} event key down event\n */\n onKeydownEsc(event) {\n if (this.isMobile) {\n event.stopPropagation();\n this.closeSidebar();\n }\n },\n onAfterEnter(element) {\n if (this.elementToReturnFocus) {\n this.focus();\n }\n this.toggleFocusTrap();\n this.$emit(\"opened\", element);\n },\n onAfterLeave(element) {\n this.$emit(\"closed\", element);\n this.toggleFocusTrap();\n this.elementToReturnFocus?.focus({ focusVisible: true });\n this.elementToReturnFocus = null;\n },\n /**\n * Used to tell parent component the user asked to close the sidebar\n *\n * @param {Event} e close icon click event\n */\n closeSidebar(e) {\n this.$emit(\"close\", e);\n this.$emit(\"update:open\", false);\n },\n /**\n * Emit figure click event to parent component\n *\n * @param {Event} e click event\n */\n onFigureClick(e) {\n this.$emit(\"figureClick\", e);\n },\n /**\n * Toggle the favourite state\n * and emit to the parent component\n */\n toggleStarred() {\n this.isStarred = !this.isStarred;\n this.$emit(\"update:starred\", this.isStarred);\n },\n async editName() {\n this.$emit(\"update:nameEditable\", true);\n if (this.nameEditable) {\n await this.$nextTick();\n this.$refs.nameInput.focus();\n }\n },\n /**\n * Focus the sidebar\n *\n * @public\n */\n focus() {\n if (!this.open && !this.noToggle) {\n this.$refs.toggle.$el.focus();\n return;\n }\n try {\n this.headerRef.focus();\n } catch {\n warn(\"NcAppSidebar should have focusable header for accessibility reasons. Use NcAppSidebarHeader component.\");\n }\n },\n /**\n * Focus the active tab\n *\n * @public\n */\n focusActiveTabContent() {\n this.preserveElementToReturnFocus();\n this.$refs.tabs.focusActiveTabContent();\n },\n /**\n * Check if the toggle button container is available\n */\n checkToggleButtonContainerAvailability() {\n if (this.open === false && !this.noToggle && !this.ncContentSelector) {\n logger.warn(\"[NcAppSidebar] It looks like you want to use NcAppSidebar with the built-in toggle button. This feature is only available when NcAppSidebar is used in NcContent.\");\n }\n },\n /**\n * Emit name change event to parent component\n *\n * @param {Event} event input event\n */\n onNameInput(event) {\n this.$emit(\"update:name\", event.target.value);\n },\n /**\n * Emit when the name form edit confirm button is pressed in order\n * to change the name.\n *\n * @param {Event} event submit event\n */\n onSubmitName(event) {\n this.$emit(\"update:nameEditable\", false);\n this.$emit(\"submitName\", event);\n },\n onDismissEditing() {\n this.$emit(\"update:nameEditable\", false);\n this.$emit(\"dismissEditing\");\n },\n onUpdateActive(activeTab) {\n this.$emit(\"update:active\", activeTab);\n }\n }\n};\nconst _hoisted_1 = [\"aria-labelledby\"];\nconst _hoisted_2 = { class: \"app-sidebar-header__info\" };\nconst _hoisted_3 = {\n key: 0,\n class: \"app-sidebar-header__tertiary-actions\"\n};\nconst _hoisted_4 = { class: \"app-sidebar-header__name-container\" };\nconst _hoisted_5 = { class: \"app-sidebar-header__mainname-container\" };\nconst _hoisted_6 = [\"placeholder\", \"value\"];\nconst _hoisted_7 = [\"title\"];\nconst _hoisted_8 = {\n key: 2,\n class: \"app-sidebar-header__description\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_IconDockRight = resolveComponent(\"IconDockRight\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_IconStar = resolveComponent(\"IconStar\");\n const _component_IconStarOutline = resolveComponent(\"IconStarOutline\");\n const _component_NcAppSidebarHeader = resolveComponent(\"NcAppSidebarHeader\");\n const _component_IconArrowRight = resolveComponent(\"IconArrowRight\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_IconClose = resolveComponent(\"IconClose\");\n const _component_NcAppSidebarTabs = resolveComponent(\"NcAppSidebarTabs\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n const _directive_focus = resolveDirective(\"focus\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return openBlock(), createBlock(Transition, {\n appear: \"\",\n name: \"slide-right\",\n onAfterEnter: $options.onAfterEnter,\n onAfterLeave: $options.onAfterLeave\n }, {\n default: withCtx(() => [\n withDirectives(createElementVNode(\"aside\", {\n id: \"app-sidebar-vue\",\n ref: \"sidebar\",\n class: \"app-sidebar\",\n \"aria-labelledby\": `app-sidebar-vue-${$setup.uid}__header`,\n onKeydown: _cache[6] || (_cache[6] = withKeys((...args) => $options.onKeydownEsc && $options.onKeydownEsc(...args), [\"esc\"]))\n }, [\n $options.ncContentSelector && !$props.open && !$props.noToggle ? (openBlock(), createBlock(Teleport, {\n key: 0,\n to: $options.ncContentSelector\n }, [\n createVNode(_component_NcButton, mergeProps({\n ref: \"toggle\",\n \"aria-label\": $options.t(\"Open sidebar\"),\n class: [\"app-sidebar__toggle\", $props.toggleClasses],\n variant: \"tertiary\"\n }, $props.toggleAttrs, {\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"update:open\", true))\n }), {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"toggle-icon\", {}, () => [\n createVNode(_component_IconDockRight, { size: 20 })\n ], true)\n ]),\n _: 3\n }, 16, [\"aria-label\", \"class\"])\n ], 8, [\"to\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"header\", {\n class: normalizeClass([\"app-sidebar-header\", {\n \"app-sidebar-header--with-figure\": $options.isSlotPopulated(_ctx.$slots.header?.()) || $props.background,\n \"app-sidebar-header--compact\": $props.compact\n }])\n }, [\n !$props.empty ? renderSlot(_ctx.$slots, \"info\", { key: 0 }, () => [\n createElementVNode(\"div\", _hoisted_2, [\n $options.isSlotPopulated(_ctx.$slots.header?.()) || $props.background ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"app-sidebar-header__figure\", {\n \"app-sidebar-header__figure--with-action\": $options.hasFigureClickListener\n }]),\n style: normalizeStyle({\n backgroundImage: `url(${$props.background})`\n }),\n tabindex: \"0\",\n onClick: _cache[1] || (_cache[1] = (...args) => $options.onFigureClick && $options.onFigureClick(...args)),\n onKeydown: _cache[2] || (_cache[2] = withKeys((...args) => $options.onFigureClick && $options.onFigureClick(...args), [\"enter\"]))\n }, [\n renderSlot(_ctx.$slots, \"header\", { class: \"app-sidebar-header__background\" }, void 0, true)\n ], 38)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-sidebar-header__desc\", {\n \"app-sidebar-header__desc--with-tertiary-action\": $options.canStar || $options.isSlotPopulated(_ctx.$slots[\"tertiary-actions\"]?.()),\n \"app-sidebar-header__desc--editable\": $props.nameEditable && !$props.subname,\n \"app-sidebar-header__desc--with-subname--editable\": $props.nameEditable && $props.subname,\n \"app-sidebar-header__desc--without-actions\": !$options.isSlotPopulated(_ctx.$slots[\"secondary-actions\"]?.())\n }])\n }, [\n $options.canStar || $options.isSlotPopulated(_ctx.$slots[\"tertiary-actions\"]?.()) ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n renderSlot(_ctx.$slots, \"tertiary-actions\", {}, () => [\n $options.canStar ? (openBlock(), createBlock(_component_NcButton, {\n key: 0,\n \"aria-label\": $data.favoriteTranslated,\n pressed: $data.isStarred,\n class: \"app-sidebar-header__star\",\n variant: \"secondary\",\n onClick: withModifiers($options.toggleStarred, [\"prevent\"])\n }, {\n icon: withCtx(() => [\n $props.starLoading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : $data.isStarred ? (openBlock(), createBlock(_component_IconStar, {\n key: 1,\n size: 20\n })) : (openBlock(), createBlock(_component_IconStarOutline, {\n key: 2,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"aria-label\", \"pressed\", \"onClick\"])) : createCommentVNode(\"\", true)\n ], true)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_4, [\n createElementVNode(\"div\", _hoisted_5, [\n withDirectives(createVNode(_component_NcAppSidebarHeader, {\n class: \"app-sidebar-header__mainname\",\n name: $props.name,\n linkify: $props.linkifyName,\n title: $props.title,\n tabindex: $props.nameEditable ? 0 : -1,\n onClick: withModifiers($options.editName, [\"self\"])\n }, null, 8, [\"name\", \"linkify\", \"title\", \"tabindex\", \"onClick\"]), [\n [vShow, !$props.nameEditable]\n ]),\n $props.nameEditable ? withDirectives((openBlock(), createElementBlock(\"form\", {\n key: 0,\n class: \"app-sidebar-header__mainname-form\",\n onSubmit: _cache[5] || (_cache[5] = withModifiers((...args) => $options.onSubmitName && $options.onSubmitName(...args), [\"prevent\"]))\n }, [\n withDirectives(createElementVNode(\"input\", {\n ref: \"nameInput\",\n class: \"app-sidebar-header__mainname-input\",\n type: \"text\",\n placeholder: $props.namePlaceholder,\n value: $props.name,\n onKeydown: _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.onDismissEditing && $options.onDismissEditing(...args), [\"stop\"]), [\"esc\"])),\n onInput: _cache[4] || (_cache[4] = (...args) => $options.onNameInput && $options.onNameInput(...args))\n }, null, 40, _hoisted_6), [\n [_directive_focus]\n ]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.changeNameTranslated,\n type: \"submit\",\n variant: \"tertiary-no-background\"\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconArrowRight, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\"])\n ], 32)), [\n [_directive_click_outside, () => $options.onSubmitName()]\n ]) : createCommentVNode(\"\", true),\n $options.isSlotPopulated(_ctx.$slots[\"secondary-actions\"]?.()) ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n class: \"app-sidebar-header__menu\",\n \"force-menu\": $props.forceMenu\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"secondary-actions\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"force-menu\"])) : createCommentVNode(\"\", true)\n ]),\n $props.subname.trim() !== \"\" || _ctx.$slots[\"subname\"] ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n title: $props.subtitle || void 0,\n class: \"app-sidebar-header__subname\"\n }, [\n renderSlot(_ctx.$slots, \"subname\", {}, () => [\n createTextVNode(toDisplayString($props.subname), 1)\n ], true)\n ], 8, _hoisted_7)) : createCommentVNode(\"\", true)\n ])\n ], 2)\n ])\n ], true) : (openBlock(), createBlock(_component_NcAppSidebarHeader, {\n key: 1,\n class: \"app-sidebar-header__mainname--hidden\",\n name: $props.name,\n tabindex: \"-1\"\n }, null, 8, [\"name\"])),\n createVNode(_component_NcButton, {\n ref: \"closeButton\",\n \"aria-label\": $data.closeTranslated,\n title: $data.closeTranslated,\n class: \"app-sidebar__close\",\n variant: \"tertiary\",\n onClick: withModifiers($options.closeSidebar, [\"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconClose, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"]),\n $options.isSlotPopulated(_ctx.$slots.description?.()) && !$props.empty ? (openBlock(), createElementBlock(\"div\", _hoisted_8, [\n renderSlot(_ctx.$slots, \"description\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 2),\n withDirectives(createVNode(_component_NcAppSidebarTabs, {\n ref: \"tabs\",\n active: $props.active,\n \"force-tabs\": $props.forceTabs,\n \"onUpdate:active\": $options.onUpdateActive\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"active\", \"force-tabs\", \"onUpdate:active\"]), [\n [vShow, !$props.loading]\n ]),\n $props.loading ? (openBlock(), createBlock(_component_NcEmptyContent, { key: 1 }, {\n icon: withCtx(() => [\n createVNode(_component_NcLoadingIcon, { size: 64 })\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ], 40, _hoisted_1), [\n [vShow, $props.open]\n ])\n ]),\n _: 3\n }, 8, [\"onAfterEnter\", \"onAfterLeave\"]);\n}\nconst NcAppSidebar = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-104e67d6\"]]);\nexport {\n NcAppSidebar as N\n};\n//# sourceMappingURL=NcAppSidebar-as8lzUZp.mjs.map\n","import { getBaseUrl, getRootUrl } from \"@nextcloud/router\";\nimport { u } from \"unist-builder\";\nimport { visit, SKIP } from \"unist-util-visit\";\nimport { defineComponent, h } from \"vue\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst URL_PATTERN = /(\\s|^)(https?:\\/\\/)([-A-Z0-9+_.]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\\s|$)/ig;\nconst URL_PATTERN_AUTOLINK = /(\\s|\\(|^)((https?:\\/\\/)([-A-Z0-9+_.]+[-A-Z0-9]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*))(?=\\s|\\)|$)/ig;\nconst NcLink = defineComponent({\n name: \"NcLink\",\n props: {\n href: {\n type: String,\n required: true\n }\n },\n render() {\n return h(\"a\", {\n href: this.href,\n rel: \"noopener noreferrer\",\n target: \"_blank\",\n class: \"rich-text--external-link\"\n }, [this.href.trim()]);\n }\n});\nfunction remarkAutolink({ autolink, useMarkdown, useExtendedMarkdown }) {\n return function(tree) {\n if (useExtendedMarkdown || !useMarkdown || !autolink) {\n return;\n }\n visit(tree, (node) => node.type === \"text\", (node, index, parent) => {\n let parsed = parseUrl(node.value);\n if (typeof parsed === \"string\") {\n parsed = [u(\"text\", parsed)];\n } else {\n parsed = parsed.map((n) => {\n if (typeof n === \"string\") {\n return u(\"text\", n);\n }\n return u(\"link\", {\n url: n.props.href\n }, [u(\"text\", n.props.href)]);\n }).filter((x) => x).flat();\n }\n parent.children.splice(index, 1, ...parsed);\n return [SKIP, (index ?? 0) + parsed.length];\n });\n };\n}\nfunction parseUrl(text) {\n let match = URL_PATTERN_AUTOLINK.exec(text);\n const list = [];\n let start = 0;\n while (match !== null) {\n let href = match[2];\n let textAfter;\n let textBefore = text.substring(start, match.index + match[1].length);\n if (href[0] === \" \") {\n textBefore += href[0];\n href = href.substring(1).trim();\n }\n const lastChar = href[href.length - 1];\n if (lastChar === \".\" || lastChar === \",\" || lastChar === \";\" || match[0][0] === \"(\" && lastChar === \")\") {\n href = href.substring(0, href.length - 1);\n textAfter = lastChar;\n }\n list.push(textBefore);\n list.push({ component: NcLink, props: { href } });\n if (textAfter) {\n list.push(textAfter);\n }\n start = match.index + match[0].length;\n match = URL_PATTERN_AUTOLINK.exec(text);\n }\n list.push(text.substring(start));\n const joinedText = list.map((item) => typeof item === \"string\" ? item : item.props.href).join(\"\");\n if (text === joinedText) {\n return list;\n }\n logger.error(\"[NcRichText] Failed to reassemble the chunked text: \" + text);\n return text;\n}\nfunction getRoute(router, url) {\n const removePrefix = (str, prefix) => str.startsWith(prefix) ? str.slice(prefix.length) : str;\n const removePrefixes = (str, ...prefixes) => prefixes.reduce((acc, prefix) => removePrefix(acc, prefix), str);\n if (!router) {\n return null;\n }\n const isAbsoluteURL = /^https?:\\/\\//.test(url);\n const isNonHttpLink = /^[a-z][a-z0-9+.-]*:.+/.test(url);\n if (!isAbsoluteURL && isNonHttpLink) {\n return null;\n }\n if (isAbsoluteURL && !url.startsWith(getBaseUrl())) {\n return null;\n }\n if (!isAbsoluteURL && !url.startsWith(\"/\")) {\n return null;\n }\n const relativeUrl = isAbsoluteURL ? removePrefixes(url, getBaseUrl(), \"/index.php\") : url;\n const relativeRouterBase = removePrefixes(router.options.history.base, getRootUrl(), \"/index.php\");\n const potentialRouterPath = removePrefixes(relativeUrl, relativeRouterBase) || \"/\";\n const route = router.resolve(potentialRouterPath);\n if (!route.matched.length) {\n return null;\n }\n return route.fullPath;\n}\nexport {\n URL_PATTERN as U,\n getRoute as g,\n parseUrl as p,\n remarkAutolink as r\n};\n//# sourceMappingURL=autolink-U5pBzLgI.mjs.map\n","import { l as logger } from \"../../chunks/logger-D3RVzcfQ.mjs\";\nfunction registerContactsMenuAction(action) {\n window._nc_contacts_menu_hooks ??= {};\n if (window._nc_contacts_menu_hooks[action.id]) {\n logger.error(`ContactsMenu action for id ${action.id} has already been registered`, {\n action\n });\n return;\n }\n window._nc_contacts_menu_hooks[action.id] = action;\n}\nfunction getEnabledContactsMenuActions(entry) {\n if (!window._nc_contacts_menu_hooks) {\n return [];\n }\n return Object.values(window._nc_contacts_menu_hooks).filter((action) => action.enabled(entry));\n}\nexport {\n getEnabledContactsMenuActions,\n registerContactsMenuAction\n};\n//# sourceMappingURL=index.mjs.map\n","const c = new Int32Array(4);\nclass h {\n static hashStr(i, a = !1) {\n return this.onePassHasher.start().appendStr(i).end(a);\n }\n static hashAsciiStr(i, a = !1) {\n return this.onePassHasher.start().appendAsciiStr(i).end(a);\n }\n // Private Static Variables\n static stateIdentity = new Int32Array([\n 1732584193,\n -271733879,\n -1732584194,\n 271733878\n ]);\n static buffer32Identity = new Int32Array([\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ]);\n static hexChars = \"0123456789abcdef\";\n static hexOut = [];\n // Permanent instance is to use for one-call hashing\n static onePassHasher = new h();\n static _hex(i) {\n const a = h.hexChars, t = h.hexOut;\n let e, s, r, n;\n for (n = 0; n < 4; n += 1)\n for (s = n * 8, e = i[n], r = 0; r < 8; r += 2)\n t[s + 1 + r] = a.charAt(e & 15), e >>>= 4, t[s + 0 + r] = a.charAt(e & 15), e >>>= 4;\n return t.join(\"\");\n }\n static _md5cycle(i, a) {\n let t = i[0], e = i[1], s = i[2], r = i[3];\n t += (e & s | ~e & r) + a[0] - 680876936 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[1] - 389564586 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[2] + 606105819 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[3] - 1044525330 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & s | ~e & r) + a[4] - 176418897 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[5] + 1200080426 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[6] - 1473231341 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[7] - 45705983 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & s | ~e & r) + a[8] + 1770035416 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[9] - 1958414417 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[10] - 42063 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[11] - 1990404162 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & s | ~e & r) + a[12] + 1804603682 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[13] - 40341101 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[14] - 1502002290 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[15] + 1236535329 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & r | s & ~r) + a[1] - 165796510 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[6] - 1069501632 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[11] + 643717713 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[0] - 373897302 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e & r | s & ~r) + a[5] - 701558691 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[10] + 38016083 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[15] - 660478335 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[4] - 405537848 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e & r | s & ~r) + a[9] + 568446438 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[14] - 1019803690 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[3] - 187363961 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[8] + 1163531501 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e & r | s & ~r) + a[13] - 1444681467 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[2] - 51403784 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[7] + 1735328473 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[12] - 1926607734 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e ^ s ^ r) + a[5] - 378558 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[8] - 2022574463 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[11] + 1839030562 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[14] - 35309556 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (e ^ s ^ r) + a[1] - 1530992060 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[4] + 1272893353 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[7] - 155497632 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[10] - 1094730640 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (e ^ s ^ r) + a[13] + 681279174 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[0] - 358537222 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[3] - 722521979 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[6] + 76029189 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (e ^ s ^ r) + a[9] - 640364487 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[12] - 421815835 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[15] + 530742520 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[2] - 995338651 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (s ^ (e | ~r)) + a[0] - 198630844 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[7] + 1126891415 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[14] - 1416354905 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[5] - 57434055 | 0, e = (e << 21 | e >>> 11) + s | 0, t += (s ^ (e | ~r)) + a[12] + 1700485571 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[3] - 1894986606 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[10] - 1051523 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[1] - 2054922799 | 0, e = (e << 21 | e >>> 11) + s | 0, t += (s ^ (e | ~r)) + a[8] + 1873313359 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[15] - 30611744 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[6] - 1560198380 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[13] + 1309151649 | 0, e = (e << 21 | e >>> 11) + s | 0, t += (s ^ (e | ~r)) + a[4] - 145523070 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[11] - 1120210379 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[2] + 718787259 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[9] - 343485551 | 0, e = (e << 21 | e >>> 11) + s | 0, i[0] = t + i[0] | 0, i[1] = e + i[1] | 0, i[2] = s + i[2] | 0, i[3] = r + i[3] | 0;\n }\n _dataLength = 0;\n _bufferLength = 0;\n _state = new Int32Array(4);\n _buffer = new ArrayBuffer(68);\n _buffer8;\n _buffer32;\n constructor() {\n this._buffer8 = new Uint8Array(this._buffer, 0, 68), this._buffer32 = new Uint32Array(this._buffer, 0, 17), this.start();\n }\n /**\n * Initialise buffer to be hashed\n */\n start() {\n return this._dataLength = 0, this._bufferLength = 0, this._state.set(h.stateIdentity), this;\n }\n // Char to code point to to array conversion:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt\n // #Example.3A_Fixing_charCodeAt_to_handle_non-Basic-Multilingual-Plane_characters_if_their_presence_earlier_in_the_string_is_unknown\n /**\n * Append a UTF-8 string to the hash buffer\n * @param str String to append\n */\n appendStr(i) {\n const a = this._buffer8, t = this._buffer32;\n let e = this._bufferLength, s, r;\n for (r = 0; r < i.length; r += 1) {\n if (s = i.charCodeAt(r), s < 128)\n a[e++] = s;\n else if (s < 2048)\n a[e++] = (s >>> 6) + 192, a[e++] = s & 63 | 128;\n else if (s < 55296 || s > 56319)\n a[e++] = (s >>> 12) + 224, a[e++] = s >>> 6 & 63 | 128, a[e++] = s & 63 | 128;\n else {\n if (s = (s - 55296) * 1024 + (i.charCodeAt(++r) - 56320) + 65536, s > 1114111)\n throw new Error(\n \"Unicode standard supports code points up to U+10FFFF\"\n );\n a[e++] = (s >>> 18) + 240, a[e++] = s >>> 12 & 63 | 128, a[e++] = s >>> 6 & 63 | 128, a[e++] = s & 63 | 128;\n }\n e >= 64 && (this._dataLength += 64, h._md5cycle(this._state, t), e -= 64, t[0] = t[16]);\n }\n return this._bufferLength = e, this;\n }\n /**\n * Append an ASCII string to the hash buffer\n * @param str String to append\n */\n appendAsciiStr(i) {\n const a = this._buffer8, t = this._buffer32;\n let e = this._bufferLength, s, r = 0;\n for (; ; ) {\n for (s = Math.min(i.length - r, 64 - e); s--; )\n a[e++] = i.charCodeAt(r++);\n if (e < 64)\n break;\n this._dataLength += 64, h._md5cycle(this._state, t), e = 0;\n }\n return this._bufferLength = e, this;\n }\n /**\n * Append a byte array to the hash buffer\n * @param input array to append\n */\n appendByteArray(i) {\n const a = this._buffer8, t = this._buffer32;\n let e = this._bufferLength, s, r = 0;\n for (; ; ) {\n for (s = Math.min(i.length - r, 64 - e); s--; )\n a[e++] = i[r++];\n if (e < 64)\n break;\n this._dataLength += 64, h._md5cycle(this._state, t), e = 0;\n }\n return this._bufferLength = e, this;\n }\n /**\n * Get the state of the hash buffer\n */\n getState() {\n const i = this._state;\n return {\n buffer: String.fromCharCode.apply(null, Array.from(this._buffer8)),\n buflen: this._bufferLength,\n length: this._dataLength,\n state: [i[0], i[1], i[2], i[3]]\n };\n }\n /**\n * Override the current state of the hash buffer\n * @param state New hash buffer state\n */\n setState(i) {\n const a = i.buffer, t = i.state, e = this._state;\n let s;\n for (this._dataLength = i.length, this._bufferLength = i.buflen, e[0] = t[0], e[1] = t[1], e[2] = t[2], e[3] = t[3], s = 0; s < a.length; s += 1)\n this._buffer8[s] = a.charCodeAt(s);\n }\n /**\n * Hash the current state of the hash buffer and return the result\n * @param raw Whether to return the value as an `Int32Array`\n */\n end(i = !1) {\n const a = this._bufferLength, t = this._buffer8, e = this._buffer32, s = (a >> 2) + 1;\n this._dataLength += a;\n const r = this._dataLength * 8;\n if (t[a] = 128, t[a + 1] = t[a + 2] = t[a + 3] = 0, e.set(h.buffer32Identity.subarray(s), s), a > 55 && (h._md5cycle(this._state, e), e.set(h.buffer32Identity)), r <= 4294967295)\n e[14] = r;\n else {\n const n = r.toString(16).match(/(.*?)(.{0,8})$/);\n if (n === null) return i ? c : \"\";\n const o = parseInt(n[2], 16), _ = parseInt(n[1], 16) || 0;\n e[14] = o, e[15] = _;\n }\n return h._md5cycle(this._state, e), i ? this._state : h._hex(this._state);\n }\n}\nif (h.hashStr(\"hello\") !== \"5d41402abc4b2a76b9719d911017c592\")\n throw new Error(\"Md5 self test failed.\");\nclass l {\n constructor(i, a = !0, t = 1048576) {\n this._callback = i, this._async = a, this._partSize = t, this._configureReader();\n }\n _reader;\n _md5;\n _part;\n // private _length!: number;\n _blob;\n /**\n * Hash a blob of data in the worker\n * @param blob Data to hash\n */\n hash(i) {\n const a = this;\n a._blob = i, a._part = 0, a._md5 = new h(), a._processPart();\n }\n _fail() {\n this._callback({\n success: !1,\n result: \"data read failed\"\n });\n }\n _hashData(i) {\n let a = this;\n a._md5.appendByteArray(new Uint8Array(i.target.result)), a._part * a._partSize >= a._blob.size ? a._callback({\n success: !0,\n result: a._md5.end()\n }) : a._processPart();\n }\n _processPart() {\n const i = this;\n let a = 0, t;\n i._part += 1, i._blob.size > i._partSize ? (a = i._part * i._partSize, a > i._blob.size && (a = i._blob.size), t = i._blob.slice(\n (i._part - 1) * i._partSize,\n a\n )) : t = i._blob, i._async ? i._reader.readAsArrayBuffer(t) : setTimeout(() => {\n try {\n i._hashData({\n target: {\n result: i._reader.readAsArrayBuffer(\n t\n )\n }\n });\n } catch {\n i._fail();\n }\n }, 0);\n }\n _configureReader() {\n const i = this;\n i._async ? (i._reader = new FileReader(), i._reader.onload = i._hashData.bind(i), i._reader.onerror = i._fail.bind(i), i._reader.onabort = i._fail.bind(i)) : i._reader = new FileReaderSync();\n }\n}\nclass u {\n _queue = [];\n _hashWorker;\n _processing;\n _ready = !0;\n constructor(i, a) {\n const t = this;\n Worker ? (t._hashWorker = new Worker(i, a), t._hashWorker.onmessage = t._recievedMessage.bind(t), t._hashWorker.onerror = (e) => {\n t._ready = !1, console.error(\"Hash worker failure\", e);\n }) : (t._ready = !1, console.error(\"Web Workers are not supported in this browser\"));\n }\n /**\n * Hash a blob of data in the worker\n * @param blob Data to hash\n * @returns Promise of the Hashed result\n */\n hash(i) {\n const a = this;\n let t;\n return t = new Promise((e, s) => {\n a._queue.push({\n blob: i,\n resolve: e,\n reject: s\n }), a._processNext();\n }), t;\n }\n /** Terminate any existing hash requests */\n terminate() {\n this._ready = !1, this._hashWorker.terminate();\n }\n // Processes the next item in the queue\n _processNext() {\n this._ready && !this._processing && this._queue.length > 0 && (this._processing = this._queue.pop(), this._hashWorker.postMessage(this._processing.blob));\n }\n // Hash result is returned from the worker\n _recievedMessage(i) {\n const a = i.data;\n a.success ? this._processing?.resolve(a.result) : this._processing?.reject(a.result), this._processing = void 0, this._processNext();\n }\n}\nexport {\n h as Md5,\n l as Md5FileHasher,\n u as ParallelHasher\n};\n//# sourceMappingURL=index.es.js.map\n","import { r as register, t as t3, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nregister(t3);\nclass Color {\n /**\n * @param r - The red value\n * @param g - The green value\n * @param b - The blue value\n * @param name - The name of the color\n */\n constructor(r, g, b, name) {\n this.r = r;\n this.g = g;\n this.b = b;\n this.name = name;\n this.r = Math.min(r, 255);\n this.g = Math.min(g, 255);\n this.b = Math.min(b, 255);\n this.name = name;\n }\n /**\n * The hexadecimal color string.\n */\n get color() {\n const toHex = (int) => `00${int.toString(16)}`.slice(-2);\n return `#${toHex(this.r)}${toHex(this.g)}${toHex(this.b)}`;\n }\n}\nfunction calculateStepIncrement(steps, color1, color2) {\n return {\n r: (color2.r - color1.r) / steps,\n g: (color2.g - color1.g) / steps,\n b: (color2.b - color1.b) / steps\n };\n}\nfunction mixPalette(steps, color1, color2) {\n const palette = [];\n palette.push(color1);\n const increment = calculateStepIncrement(steps, color1, color2);\n for (let i = 1; i < steps; i++) {\n const r = Math.floor(color1.r + increment.r * i);\n const g = Math.floor(color1.g + increment.g * i);\n const b = Math.floor(color1.b + increment.b * i);\n palette.push(new Color(r, g, b));\n }\n return palette;\n}\nconst COLOR_RED = new Color(182, 70, 157, t(\"Purple\"));\nconst COLOR_YELLOW = new Color(221, 203, 85, t(\"Gold\"));\nconst COLOR_BLUE = new Color(0, 130, 201, t(\"Nextcloud blue\"));\nconst COLOR_BLACK = new Color(0, 0, 0, t(\"Black\"));\nconst COLOR_WHITE = new Color(255, 255, 255, t(\"White\"));\nconst defaultPalette = [\n /* eslint-disable @stylistic/function-call-argument-newline -- Allow to put translators comments */\n COLOR_RED,\n new Color(\n 191,\n 103,\n 139,\n t(\"Rosy brown\")\n // TRANSLATORS: A color name for RGB(191, 103, 139)\n ),\n new Color(\n 201,\n 136,\n 121,\n t(\"Feldspar\")\n // TRANSLATORS: A color name for RGB(201, 136, 121)\n ),\n new Color(\n 211,\n 169,\n 103,\n t(\"Whiskey\")\n // TRANSLATORS: A color name for RGB(211, 169, 103)\n ),\n COLOR_YELLOW,\n new Color(\n 165,\n 184,\n 114,\n t(\"Olivine\")\n // TRANSLATORS: A color name for RGB(165, 184, 114)\n ),\n new Color(\n 110,\n 166,\n 143,\n t(\"Acapulco\")\n // TRANSLATORS: A color name for RGB(110, 166, 143)\n ),\n new Color(\n 55,\n 148,\n 172,\n t(\"Boston Blue\")\n // TRANSLATORS: A color name for RGB(55, 148, 172)\n ),\n COLOR_BLUE,\n new Color(\n 45,\n 115,\n 190,\n t(\"Mariner\")\n // TRANSLATORS: A color name for RGB(45, 115, 190)\n ),\n new Color(\n 91,\n 100,\n 179,\n t(\"Blue Violet\")\n // TRANSLATORS: A color name for RGB(91, 100, 179)\n ),\n new Color(\n 136,\n 85,\n 168,\n t(\"Deluge\")\n // TRANSLATORS: A color name for RGB(136, 85, 168)\n )\n /* eslint-enable @stylistic/function-call-argument-newline */\n];\nfunction generatePalette(steps) {\n const palette1 = mixPalette(steps, COLOR_RED, COLOR_YELLOW);\n const palette2 = mixPalette(steps, COLOR_YELLOW, COLOR_BLUE);\n const palette3 = mixPalette(steps, COLOR_BLUE, COLOR_RED);\n return palette1.concat(palette2).concat(palette3);\n}\nexport {\n Color as C,\n COLOR_BLACK as a,\n COLOR_WHITE as b,\n defaultPalette as d,\n generatePalette as g\n};\n//# sourceMappingURL=colors-CL_wvNtd.mjs.map\n","import { Md5 } from \"ts-md5\";\nimport { g as generatePalette } from \"../../chunks/colors-CL_wvNtd.mjs\";\nfunction hashCode(str) {\n let hash = str;\n if (str.match(/^([0-9a-f]{4}-?){8}$/) === null) {\n hash = Md5.hashStr(str);\n }\n hash = hash.replace(/[^0-9a-f]/g, \"\");\n let finalInt = 0;\n for (let i = 0; i < hash.length; i++) {\n finalInt += parseInt(hash.charAt(i), 16);\n }\n return finalInt;\n}\nfunction usernameToColor(username) {\n const steps = 6;\n const finalPalette = generatePalette(steps);\n const hash = hashCode(username.toLocaleLowerCase());\n return finalPalette[hash % finalPalette.length];\n}\nexport {\n usernameToColor\n};\n//# sourceMappingURL=index.mjs.map\n","'use strict';\n\n(function (global) {\n\n // minimal symbol polyfill for IE11 and others\n if (typeof Symbol !== 'function') {\n var Symbol = function(name) {\n return name;\n }\n\n Symbol.nonNative = true;\n }\n\n const STATE_PLAINTEXT = Symbol('plaintext');\n const STATE_HTML = Symbol('html');\n const STATE_COMMENT = Symbol('comment');\n\n const ALLOWED_TAGS_REGEX = /<(\\w*)>/g;\n const NORMALIZE_TAG_REGEX = /<\\/?([^\\s\\/>]+)/;\n\n function striptags(html, allowable_tags, tag_replacement) {\n html = html || '';\n allowable_tags = allowable_tags || [];\n tag_replacement = tag_replacement || '';\n\n let context = init_context(allowable_tags, tag_replacement);\n\n return striptags_internal(html, context);\n }\n\n function init_striptags_stream(allowable_tags, tag_replacement) {\n allowable_tags = allowable_tags || [];\n tag_replacement = tag_replacement || '';\n\n let context = init_context(allowable_tags, tag_replacement);\n\n return function striptags_stream(html) {\n return striptags_internal(html || '', context);\n };\n }\n\n striptags.init_streaming_mode = init_striptags_stream;\n\n function init_context(allowable_tags, tag_replacement) {\n allowable_tags = parse_allowable_tags(allowable_tags);\n\n return {\n allowable_tags : allowable_tags,\n tag_replacement: tag_replacement,\n\n state : STATE_PLAINTEXT,\n tag_buffer : '',\n depth : 0,\n in_quote_char : ''\n };\n }\n\n function striptags_internal(html, context) {\n if (typeof html != \"string\") {\n throw new TypeError(\"'html' parameter must be a string\");\n }\n\n let allowable_tags = context.allowable_tags;\n let tag_replacement = context.tag_replacement;\n\n let state = context.state;\n let tag_buffer = context.tag_buffer;\n let depth = context.depth;\n let in_quote_char = context.in_quote_char;\n let output = '';\n\n for (let idx = 0, length = html.length; idx < length; idx++) {\n let char = html[idx];\n\n if (state === STATE_PLAINTEXT) {\n switch (char) {\n case '<':\n state = STATE_HTML;\n tag_buffer += char;\n break;\n\n default:\n output += char;\n break;\n }\n }\n\n else if (state === STATE_HTML) {\n switch (char) {\n case '<':\n // ignore '<' if inside a quote\n if (in_quote_char) {\n break;\n }\n\n // we're seeing a nested '<'\n depth++;\n break;\n\n case '>':\n // ignore '>' if inside a quote\n if (in_quote_char) {\n break;\n }\n\n // something like this is happening: '<<>>'\n if (depth) {\n depth--;\n\n break;\n }\n\n // this is closing the tag in tag_buffer\n in_quote_char = '';\n state = STATE_PLAINTEXT;\n tag_buffer += '>';\n\n if (allowable_tags.has(normalize_tag(tag_buffer))) {\n output += tag_buffer;\n } else {\n output += tag_replacement;\n }\n\n tag_buffer = '';\n break;\n\n case '\"':\n case '\\'':\n // catch both single and double quotes\n\n if (char === in_quote_char) {\n in_quote_char = '';\n } else {\n in_quote_char = in_quote_char || char;\n }\n\n tag_buffer += char;\n break;\n\n case '-':\n if (tag_buffer === '<!-') {\n state = STATE_COMMENT;\n }\n\n tag_buffer += char;\n break;\n\n case ' ':\n case '\\n':\n if (tag_buffer === '<') {\n state = STATE_PLAINTEXT;\n output += '< ';\n tag_buffer = '';\n\n break;\n }\n\n tag_buffer += char;\n break;\n\n default:\n tag_buffer += char;\n break;\n }\n }\n\n else if (state === STATE_COMMENT) {\n switch (char) {\n case '>':\n if (tag_buffer.slice(-2) == '--') {\n // close the comment\n state = STATE_PLAINTEXT;\n }\n\n tag_buffer = '';\n break;\n\n default:\n tag_buffer += char;\n break;\n }\n }\n }\n\n // save the context for future iterations\n context.state = state;\n context.tag_buffer = tag_buffer;\n context.depth = depth;\n context.in_quote_char = in_quote_char;\n\n return output;\n }\n\n function parse_allowable_tags(allowable_tags) {\n let tag_set = new Set();\n\n if (typeof allowable_tags === 'string') {\n let match;\n\n while ((match = ALLOWED_TAGS_REGEX.exec(allowable_tags))) {\n tag_set.add(match[1]);\n }\n }\n\n else if (!Symbol.nonNative &&\n typeof allowable_tags[Symbol.iterator] === 'function') {\n\n tag_set = new Set(allowable_tags);\n }\n\n else if (typeof allowable_tags.forEach === 'function') {\n // IE11 compatible\n allowable_tags.forEach(tag_set.add, tag_set);\n }\n\n return tag_set;\n }\n\n function normalize_tag(tag_buffer) {\n let match = NORMALIZE_TAG_REGEX.exec(tag_buffer);\n\n return match ? match[1].toLowerCase() : null;\n }\n\n if (typeof define === 'function' && define.amd) {\n // AMD\n define(function module_factory() { return striptags; });\n }\n\n else if (typeof module === 'object' && module.exports) {\n // Node\n module.exports = striptags;\n }\n\n else {\n // Browser\n global.striptags = striptags;\n }\n}(this));\n","import '../assets/NcMentionBubble-ptHUq68a.css';\nimport { generateUrl } from \"@nextcloud/router\";\nimport { checkIfDarkTheme } from \"../functions/isDarkTheme/index.mjs\";\nfunction getAvatarUrl(user, options) {\n const size = (options?.size || 64) <= 64 ? 64 : 512;\n const guestUrl = options?.isGuest ? \"/guest\" : \"\";\n const themeUrl = options?.isDarkTheme ?? checkIfDarkTheme(document.body) ? \"/dark\" : \"\";\n return generateUrl(`/avatar${guestUrl}/{user}/{size}${themeUrl}`, {\n user,\n size\n });\n}\nexport {\n getAvatarUrl as g\n};\n//# sourceMappingURL=NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-D6LzDiYf.mjs.map\n","import '../assets/NcUserStatusIcon-B3aHoBAd.css';\nimport { defineComponent, mergeModels, useModel, computed, watch, createElementBlock, createCommentVNode, openBlock, normalizeClass } from \"vue\";\nimport axios from \"@nextcloud/axios\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { r as register, Q as t51, R as t11, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst awaySvg = '<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\"0 -960 960 960\" width=\"24px\" height=\"24px\" xmlns=\"http://www.w3.org/2000/svg\">\\n\t<path\\n\t\tfill=\"var(--user-status-color-away, var(--color-warning, #C88800))\"\\n\t\td=\"m612-292 56-56-148-148v-184h-80v216l172 172ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\"/>\\n</svg>\\n';\nconst busySvg = '<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\"0 -960 960 960\" width=\"24px\" height=\"24px\" xmlns=\"http://www.w3.org/2000/svg\">\\n\t<path\\n\t\tfill=\"var(--user-status-color-busy, var(--color-error, #DB0606))\"\\n\t\td=\"M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\"/>\\n</svg>\\n';\nconst dndSvg = '<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\"0 -960 960 960\" width=\"24px\" height=\"24px\" xmlns=\"http://www.w3.org/2000/svg\">\\n\t<path\\n\t\tfill=\"var(--user-status-color-busy, var(--color-error, #DB0606))\"\\n\t\td=\"M280-440h400v-80H280v80ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\"/>\\n</svg>\\n';\nconst invisibleSvg = '<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\"0 -960 960 960\" width=\"24px\" height=\"24px\" xmlns=\"http://www.w3.org/2000/svg\">\\n\t<path\\n\t\tfill=\"var(--user-status-color-offline, var(--color-text-maxcontrast, #6B6B6B))\"\\n\t\td=\"M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\"/>\\n</svg>\\n';\nconst onlineSvg = '<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\"0 -960 960 960\" width=\"24px\" height=\"24px\" xmlns=\"http://www.w3.org/2000/svg\">\\n\t<path\\n\t\tfill=\"var(--user-status-color-online, var(--color-success, #2D7B41))\"\\n\t\td=\"m424-296 282-282-56-56-226 226-114-114-56 56 170 170Zm56 216q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\"/>\\n</svg>\\n';\nregister(t51);\nregister(t11);\nfunction getUserStatusText(status) {\n switch (status) {\n case \"away\":\n return t(\"away\");\n // TRANSLATORS: User status if the user is currently away from keyboard\n case \"busy\":\n return t(\"busy\");\n case \"dnd\":\n return t(\"do not disturb\");\n case \"online\":\n return t(\"online\");\n case \"invisible\":\n return t(\"invisible\");\n case \"offline\":\n return t(\"offline\");\n default:\n return status;\n }\n}\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\", \"innerHTML\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcUserStatusIcon\",\n props: /* @__PURE__ */ mergeModels({\n user: { default: void 0 },\n ariaHidden: { type: [Boolean, String], default: false }\n }, {\n \"status\": {},\n \"statusModifiers\": {}\n }),\n emits: [\"update:status\"],\n setup(__props) {\n const status = useModel(__props, \"status\");\n const props = __props;\n const isInvisible = computed(() => status.value && [\"invisible\", \"offline\"].includes(status.value));\n const ariaLabel = computed(() => status.value && (!props.ariaHidden || props.ariaHidden === \"false\") ? t(\"User status: {status}\", { status: getUserStatusText(status.value) }) : void 0);\n watch(() => props.user, async (user) => {\n if (!status.value && user && getCapabilities()?.user_status?.enabled) {\n try {\n const { data } = await axios.get(generateOcsUrl(\"/apps/user_status/api/v1/statuses/{user}\", { user }));\n status.value = data.ocs?.data?.status;\n } catch (error) {\n logger.debug(\"Error while fetching user status\", { error });\n }\n }\n }, { immediate: true });\n const matchSvg = {\n online: onlineSvg,\n away: awaySvg,\n busy: busySvg,\n dnd: dndSvg,\n invisible: invisibleSvg,\n offline: invisibleSvg\n };\n const activeSvg = computed(() => status.value && matchSvg[status.value]);\n return (_ctx, _cache) => {\n return status.value ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: normalizeClass([\"user-status-icon\", {\n \"user-status-icon--invisible\": isInvisible.value\n }]),\n \"aria-hidden\": !ariaLabel.value || void 0,\n \"aria-label\": ariaLabel.value,\n role: \"img\",\n innerHTML: activeSvg.value\n }, null, 10, _hoisted_1)) : createCommentVNode(\"\", true);\n };\n }\n});\nconst NcUserStatusIcon = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-881a79fb\"]]);\nexport {\n NcUserStatusIcon as N,\n getUserStatusText as g\n};\n//# sourceMappingURL=NcUserStatusIcon-BgElapLh.mjs.map\n","import '../assets/NcAvatar-f8SJKMDw.css';\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport axios from \"@nextcloud/axios\";\nimport { getBuilder } from \"@nextcloud/browser-storage\";\nimport { unsubscribe, subscribe } from \"@nextcloud/event-bus\";\nimport { generateOcsUrl, generateUrl } from \"@nextcloud/router\";\nimport { vOnClickOutside } from \"@vueuse/components\";\nimport { N as NcActions, I as IconDotsHorizontal } from \"./NcActions-4R7icatI.mjs\";\nimport { g as getRoute } from \"./autolink-U5pBzLgI.mjs\";\nimport \"../composables/useFormatDateTime/index.mjs\";\nimport \"../composables/useHotKey/index.mjs\";\nimport { useIsDarkTheme } from \"../composables/useIsDarkTheme/index.mjs\";\nimport \"../composables/useIsFullscreen/index.mjs\";\nimport \"../composables/useIsMobile/index.mjs\";\nimport { getEnabledContactsMenuActions } from \"../functions/contactsMenu/index.mjs\";\nimport { usernameToColor } from \"../functions/usernameToColor/index.mjs\";\nimport { r as register, m as t10, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport \"escape-html\";\nimport \"striptags\";\nimport { resolveComponent, resolveDirective, withDirectives, createElementBlock, openBlock, normalizeStyle, normalizeClass, renderSlot, createBlock, createCommentVNode, withCtx, createSlots, Fragment, renderList, resolveDynamicComponent, mergeProps, createTextVNode, toDisplayString, createVNode, createElementVNode } from \"vue\";\nimport { g as getAvatarUrl } from \"./NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-D6LzDiYf.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcUserStatusIcon, g as getUserStatusText } from \"./NcUserStatusIcon-BgElapLh.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-DNXoAooH.mjs\";\nimport { N as NcActionLink } from \"./NcActionLink-Cd69py4e.mjs\";\nimport { N as NcActionRouter } from \"./NcActionRouter-DtxPh20B.mjs\";\nimport { N as NcActionText } from \"./NcActionText-Bd1fgVqA.mjs\";\nimport { N as NcButton } from \"./NcButton-CzpKEx4V.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-b_ajZ_nQ.mjs\";\nregister(t10);\nconst userStatus = {\n data() {\n return {\n hasStatus: false,\n userStatus: {\n status: null,\n message: null,\n icon: null\n }\n };\n },\n methods: {\n /**\n * Fetches the user-status from the server\n *\n * @param {string} userId UserId of the user to fetch the status for\n *\n * @return {Promise<void>}\n */\n async fetchUserStatus(userId) {\n if (!userId) {\n return;\n }\n const capabilities = getCapabilities();\n if (!Object.hasOwn(capabilities, \"user_status\") || !capabilities.user_status.enabled) {\n return;\n }\n if (!getCurrentUser()) {\n return;\n }\n try {\n const { data } = await axios.get(generateOcsUrl(\"apps/user_status/api/v1/statuses/{userId}\", { userId }));\n this.setUserStatus(data.ocs.data);\n } catch (e) {\n if (e.response.status === 404 && e.response.data.ocs?.data?.length === 0) {\n return;\n }\n logger.error(\"Failed to fetch user status\", { error: e });\n }\n },\n /**\n * Sets the user status\n *\n * @param {string} status user's status\n * @param {string} message user's message\n * @param {string} icon user's icon\n */\n setUserStatus({ status, message, icon }) {\n this.userStatus.status = status || \"\";\n this.userStatus.message = message || \"\";\n this.userStatus.icon = icon || \"\";\n this.hasStatus = !!status;\n }\n }\n};\nconst browserStorage = getBuilder(\"nextcloud\").persist().build();\nfunction getUserHasAvatar(userId) {\n const flag = browserStorage.getItem(\"user-has-avatar.\" + userId);\n if (typeof flag === \"string\") {\n return Boolean(flag);\n }\n return null;\n}\nfunction setUserHasAvatar(userId, flag) {\n if (userId) {\n browserStorage.setItem(\"user-has-avatar.\" + userId, flag);\n }\n}\nconst _sfc_main = {\n name: \"NcAvatar\",\n directives: {\n /** @type {import('vue').ObjectDirective} */\n ClickOutside: vOnClickOutside\n },\n components: {\n IconDotsHorizontal,\n NcActions,\n NcButton,\n NcIconSvgWrapper,\n NcLoadingIcon,\n NcUserStatusIcon\n },\n mixins: [userStatus],\n props: {\n /**\n * Set a custom url to the avatar image\n * either the url, user or displayName property must be defined\n */\n url: {\n type: String,\n default: void 0\n },\n /**\n * Set a css icon-class for an icon to be used instead of the avatar.\n */\n iconClass: {\n type: String,\n default: void 0\n },\n /**\n * Set the user id to fetch the avatar\n * either the url, user or displayName property must be defined\n */\n user: {\n type: String,\n default: void 0\n },\n /**\n * Do not show the user status on the avatar.\n */\n hideStatus: {\n type: Boolean,\n default: false\n },\n /**\n * Show the verbose user status (e.g. \"online\" / \"away\") instead of just the status icon.\n */\n verboseStatus: {\n type: Boolean,\n default: false\n },\n /**\n * When the user status was preloaded via another source it can be handed in with this property to save the request.\n * If this property is not set the status will be fetched automatically.\n * If a preloaded no-status is available provide this object with properties \"status\", \"icon\" and \"message\" set to null.\n */\n preloadedUserStatus: {\n type: Object,\n default: void 0\n },\n /**\n * Is the user a guest user (then we have to user a different endpoint)\n */\n isGuest: {\n type: Boolean,\n default: false\n },\n /**\n * Set a display name that will be rendered as a tooltip\n * either the url, user or displayName property must be defined\n * specify just the displayname to generate a placeholder avatar without\n * trying to fetch the avatar based on the user id\n */\n displayName: {\n type: String,\n default: void 0\n },\n /**\n * Set a size in px for the rendered avatar\n */\n size: {\n type: Number,\n default: 32\n },\n /**\n * Do not automatically generate a placeholder avatars if there is no real avatar is available.\n */\n noPlaceholder: {\n type: Boolean,\n default: false\n },\n /**\n * Disable the tooltip\n */\n disableTooltip: {\n type: Boolean,\n default: false\n },\n /**\n * Disable the menu\n */\n disableMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Declares a custom tooltip when not null\n * Fallback will be the displayName\n *\n * requires disableTooltip not to be set to true\n */\n tooltipMessage: {\n type: String,\n default: null\n },\n /**\n * Declares username is not a user's name, when true.\n * Prevents loading user's avatar from server and forces generating colored initials,\n * i.e. if the user is a group\n */\n isNoUser: {\n type: Boolean,\n default: false\n },\n /**\n * Selector for the popover menu container\n */\n menuContainer: {\n type: [Boolean, String, Object, Element],\n default: \"body\"\n }\n },\n setup() {\n const isDarkTheme = useIsDarkTheme();\n return {\n isDarkTheme\n };\n },\n data() {\n return {\n avatarUrlLoaded: null,\n avatarSrcSetLoaded: null,\n userDoesNotExist: false,\n isAvatarLoaded: false,\n isMenuLoaded: false,\n contactsMenuLoading: false,\n contactsMenuData: {},\n contactsMenuActions: [],\n contactsMenuOpenState: false\n };\n },\n computed: {\n avatarAriaLabel() {\n if (!this.hasMenu) {\n return;\n }\n if (this.canDisplayUserStatus || this.showUserStatusIconOnAvatar) {\n return t(\"Avatar of {displayName}, {status}\", { displayName: this.displayName ?? this.user, status: getUserStatusText(this.userStatus.status) });\n }\n return t(\"Avatar of {displayName}\", { displayName: this.displayName ?? this.user });\n },\n canDisplayUserStatus() {\n return !this.hideStatus && this.hasStatus && [\"online\", \"away\", \"busy\", \"dnd\"].includes(this.userStatus.status);\n },\n showUserStatusIconOnAvatar() {\n return !this.hideStatus && !this.verboseStatus && this.hasStatus && this.userStatus.status !== \"dnd\" && this.userStatus.icon;\n },\n /**\n * The user identifier, either the display name if set or the user property\n * If both properties are not set an empty string is returned\n */\n userIdentifier() {\n if (this.isDisplayNameDefined) {\n return this.displayName;\n }\n if (this.isUserDefined) {\n return this.user;\n }\n return \"\";\n },\n isUserDefined() {\n return typeof this.user !== \"undefined\";\n },\n isDisplayNameDefined() {\n return typeof this.displayName !== \"undefined\";\n },\n isUrlDefined() {\n return typeof this.url !== \"undefined\";\n },\n hasMenu() {\n if (this.disableMenu) {\n return false;\n }\n if (this.isMenuLoaded) {\n return this.menu.length > 0;\n }\n return !(this.user === getCurrentUser()?.uid || this.userDoesNotExist || this.url);\n },\n /**\n * True if initials should be shown as the user icon fallback\n */\n showInitials() {\n return !this.noPlaceholder && this.userDoesNotExist && !(this.iconClass || this.$slots.icon);\n },\n avatarStyle() {\n return {\n \"--avatar-size\": this.size + \"px\",\n lineHeight: this.showInitials ? this.size + \"px\" : 0,\n fontSize: Math.round(this.size * 0.45) + \"px\"\n };\n },\n initialsWrapperStyle() {\n const { r, g, b } = usernameToColor(this.userIdentifier);\n return {\n backgroundColor: `rgba(${r}, ${g}, ${b}, 0.1)`\n };\n },\n initialsStyle() {\n const { r, g, b } = usernameToColor(this.userIdentifier);\n return {\n color: `rgb(${r}, ${g}, ${b})`\n };\n },\n tooltip() {\n if (this.disableTooltip) {\n return null;\n }\n if (this.tooltipMessage) {\n return this.tooltipMessage;\n }\n return this.displayName;\n },\n /**\n * Get the (max. two) initials of the user as uppcase string\n */\n initials() {\n let initials = \"?\";\n if (this.showInitials) {\n const user = this.userIdentifier.trim();\n if (user === \"\") {\n return initials;\n }\n const filteredChars = user.match(/[\\p{L}\\p{N}\\s]/gu);\n if (!filteredChars) {\n return initials;\n }\n const filtered = filteredChars.join(\"\");\n const idx = filtered.lastIndexOf(\" \");\n initials = String.fromCodePoint(filtered.codePointAt(0));\n if (idx !== -1) {\n initials = initials.concat(String.fromCodePoint(filtered.codePointAt(idx + 1)));\n }\n }\n return initials.toLocaleUpperCase();\n },\n menu() {\n const actions = this.contactsMenuActions.map((item) => {\n const route = getRoute(this.$router, item.hyperlink);\n return {\n ncActionComponent: route ? NcActionRouter : NcActionLink,\n ncActionComponentProps: route ? {\n to: route,\n icon: item.icon\n } : {\n href: item.hyperlink,\n icon: item.icon\n },\n text: item.title\n };\n });\n for (const action of getEnabledContactsMenuActions(this.contactsMenuData)) {\n try {\n actions.push({\n ncActionComponent: NcActionButton,\n ncActionComponentProps: {\n onClick: () => action.callback(this.contactsMenuData)\n },\n text: action.displayName(this.contactsMenuData),\n iconSvg: action.iconSvg(this.contactsMenuData)\n });\n } catch (error) {\n logger.error(`Failed to render ContactsMenu action ${action.id}`, {\n error,\n action\n });\n }\n }\n function escape(html) {\n const text = document.createTextNode(html);\n const p = document.createElement(\"p\");\n p.appendChild(text);\n return p.innerHTML;\n }\n if (!this.hideStatus && (this.userStatus.icon || this.userStatus.message)) {\n const emojiIcon = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\n\t\t\t\t\t<text x=\"50%\" y=\"50%\" text-anchor=\"middle\" style=\"dominant-baseline: central; font-size: 85%\">${escape(this.userStatus.icon)}</text>\n\t\t\t\t</svg>`;\n return [{\n ncActionComponent: NcActionText,\n ncActionComponentProps: {},\n iconSvg: this.userStatus.icon ? emojiIcon : void 0,\n text: `${this.userStatus.message}`\n }].concat(actions);\n }\n return actions;\n }\n },\n watch: {\n url() {\n this.userDoesNotExist = false;\n this.loadAvatarUrl();\n },\n user() {\n this.userDoesNotExist = false;\n this.isMenuLoaded = false;\n this.loadAvatarUrl();\n }\n },\n mounted() {\n this.loadAvatarUrl();\n subscribe(\"settings:avatar:updated\", this.loadAvatarUrl);\n subscribe(\"settings:display-name:updated\", this.loadAvatarUrl);\n if (!this.hideStatus && this.user && !this.isNoUser) {\n if (!this.preloadedUserStatus) {\n this.fetchUserStatus(this.user);\n } else {\n this.setUserStatus(this.preloadedUserStatus);\n }\n subscribe(\"user_status:status.updated\", this.handleUserStatusUpdated);\n } else if (!this.hideStatus && this.preloadedUserStatus) {\n this.setUserStatus(this.preloadedUserStatus);\n }\n },\n beforeUnmount() {\n unsubscribe(\"settings:avatar:updated\", this.loadAvatarUrl);\n unsubscribe(\"settings:display-name:updated\", this.loadAvatarUrl);\n unsubscribe(\"user_status:status.updated\", this.handleUserStatusUpdated);\n },\n methods: {\n t,\n handleUserStatusUpdated(state) {\n if (this.user === state.userId) {\n this.userStatus = {\n status: state.status,\n icon: state.icon,\n message: state.message\n };\n this.hasStatus = state.status !== null;\n }\n },\n /**\n * Toggle the popover menu on click or enter\n *\n * @param {KeyboardEvent|MouseEvent} event the UI event\n */\n async toggleMenu(event) {\n if (event.type === \"keydown\" && event.key !== \"Enter\") {\n return;\n }\n if (!this.contactsMenuOpenState) {\n await this.fetchContactsMenu();\n }\n this.contactsMenuOpenState = !this.contactsMenuOpenState;\n },\n closeMenu() {\n this.contactsMenuOpenState = false;\n },\n async fetchContactsMenu() {\n this.contactsMenuLoading = true;\n try {\n const user = encodeURIComponent(this.user);\n const { data } = await axios.post(generateUrl(\"contactsmenu/findOne\"), `shareType=0&shareWith=${user}`);\n this.contactsMenuData = data;\n this.contactsMenuActions = data.topAction ? [data.topAction].concat(data.actions) : data.actions;\n } catch {\n this.contactsMenuOpenState = false;\n }\n this.contactsMenuLoading = false;\n this.isMenuLoaded = true;\n },\n /**\n * Handle avatar loading if user or url defined\n */\n loadAvatarUrl() {\n this.isAvatarLoaded = false;\n if (!this.isUrlDefined && (!this.isUserDefined || this.isNoUser || this.iconClass || this.$slots.icon)) {\n this.isAvatarLoaded = true;\n this.userDoesNotExist = true;\n return;\n }\n if (this.isUrlDefined) {\n this.updateImageIfValid(this.url);\n return;\n }\n if (this.size <= 64) {\n const avatarUrl = this.avatarUrlGenerator(this.user, 64);\n const srcset = [\n avatarUrl + \" 1x\",\n this.avatarUrlGenerator(this.user, 512) + \" 8x\"\n ].join(\", \");\n this.updateImageIfValid(avatarUrl, srcset);\n } else {\n const avatarUrl = this.avatarUrlGenerator(this.user, 512);\n this.updateImageIfValid(avatarUrl);\n }\n },\n /**\n * Generate an avatar url from the server's avatar endpoint\n *\n * @param {string} user the user id\n * @param {number} size the desired size\n * @return {string}\n */\n avatarUrlGenerator(user, size) {\n let avatarUrl = getAvatarUrl(user, {\n size,\n isDarkTheme: this.isDarkTheme,\n isGuest: this.isGuest\n });\n if (user === getCurrentUser()?.uid && typeof oc_userconfig !== \"undefined\") {\n avatarUrl += \"?v=\" + window.oc_userconfig.avatar.version;\n }\n return avatarUrl;\n },\n /**\n * Check if the provided url is valid and update Avatar if so\n *\n * @param {string} url the avatar url\n * @param {Array} srcset the avatar srcset\n */\n updateImageIfValid(url, srcset = null) {\n const userHasAvatar = getUserHasAvatar(this.user);\n if (this.isUserDefined && typeof userHasAvatar === \"boolean\") {\n this.isAvatarLoaded = true;\n this.avatarUrlLoaded = url;\n if (srcset) {\n this.avatarSrcSetLoaded = srcset;\n }\n if (userHasAvatar === false) {\n this.userDoesNotExist = true;\n }\n return;\n }\n const img = new Image();\n img.onload = () => {\n this.avatarUrlLoaded = url;\n if (srcset) {\n this.avatarSrcSetLoaded = srcset;\n }\n this.isAvatarLoaded = true;\n setUserHasAvatar(this.user, true);\n };\n img.onerror = (error) => {\n logger.debug(\"[NcAvatar] Invalid avatar url\", { error, url });\n this.avatarUrlLoaded = null;\n this.avatarSrcSetLoaded = null;\n this.userDoesNotExist = true;\n this.isAvatarLoaded = false;\n setUserHasAvatar(this.user, false);\n };\n if (srcset) {\n img.srcset = srcset;\n }\n img.src = url;\n }\n }\n};\nconst _hoisted_1 = [\"title\"];\nconst _hoisted_2 = [\"src\", \"srcset\"];\nconst _hoisted_3 = {\n key: 2,\n class: \"avatardiv__user-status avatardiv__user-status--icon\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_IconDotsHorizontal = resolveComponent(\"IconDotsHorizontal\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_NcUserStatusIcon = resolveComponent(\"NcUserStatusIcon\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return withDirectives((openBlock(), createElementBlock(\"span\", {\n class: normalizeClass([\"avatardiv popovermenu-wrapper\", {\n \"avatardiv--unknown\": $data.userDoesNotExist,\n \"avatardiv--with-menu\": $options.hasMenu,\n \"avatardiv--with-menu-loading\": $data.contactsMenuLoading\n }]),\n style: normalizeStyle($options.avatarStyle),\n title: $options.tooltip\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n $props.iconClass ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: normalizeClass([$props.iconClass, \"avatar-class-icon\"])\n }, null, 2)) : $data.isAvatarLoaded && !$data.userDoesNotExist ? (openBlock(), createElementBlock(\"img\", {\n key: 1,\n src: $data.avatarUrlLoaded,\n srcset: $data.avatarSrcSetLoaded,\n alt: \"\"\n }, null, 8, _hoisted_2)) : createCommentVNode(\"\", true)\n ], true),\n $options.hasMenu && $options.menu.length === 0 ? (openBlock(), createBlock(_component_NcButton, {\n key: 0,\n \"aria-label\": $options.avatarAriaLabel,\n class: \"action-item action-item__menutoggle\",\n variant: \"tertiary-no-background\",\n onClick: $options.toggleMenu\n }, {\n icon: withCtx(() => [\n $data.contactsMenuLoading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : (openBlock(), createBlock(_component_IconDotsHorizontal, {\n key: 1,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : $options.hasMenu ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n open: $data.contactsMenuOpenState,\n \"onUpdate:open\": _cache[0] || (_cache[0] = ($event) => $data.contactsMenuOpenState = $event),\n \"aria-label\": $options.avatarAriaLabel,\n container: $props.menuContainer,\n \"force-menu\": \"\",\n \"manual-open\": \"\",\n variant: \"tertiary-no-background\",\n onClick: $options.toggleMenu\n }, createSlots({\n default: withCtx(() => [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.menu, (item, key) => {\n return openBlock(), createBlock(resolveDynamicComponent(item.ncActionComponent), mergeProps({ key }, { ref_for: true }, item.ncActionComponentProps), createSlots({\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(item.text), 1)\n ]),\n _: 2\n }, [\n item.iconSvg ? {\n name: \"icon\",\n fn: withCtx(() => [\n createVNode(_component_NcIconSvgWrapper, {\n svg: item.iconSvg\n }, null, 8, [\"svg\"])\n ]),\n key: \"0\"\n } : void 0\n ]), 1040);\n }), 128))\n ]),\n _: 2\n }, [\n $data.contactsMenuLoading ? {\n name: \"icon\",\n fn: withCtx(() => [\n createVNode(_component_NcLoadingIcon)\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"open\", \"aria-label\", \"container\", \"onClick\"])) : createCommentVNode(\"\", true),\n $options.showUserStatusIconOnAvatar ? (openBlock(), createElementBlock(\"span\", _hoisted_3, toDisplayString(_ctx.userStatus.icon), 1)) : $options.canDisplayUserStatus ? (openBlock(), createBlock(_component_NcUserStatusIcon, {\n key: 3,\n class: \"avatardiv__user-status\",\n status: _ctx.userStatus.status,\n \"aria-hidden\": String($options.hasMenu)\n }, null, 8, [\"status\", \"aria-hidden\"])) : createCommentVNode(\"\", true),\n $options.showInitials ? (openBlock(), createElementBlock(\"span\", {\n key: 4,\n style: normalizeStyle($options.initialsWrapperStyle),\n class: \"avatardiv__initials-wrapper\"\n }, [\n createElementVNode(\"span\", {\n style: normalizeStyle($options.initialsStyle),\n class: \"avatardiv__initials\"\n }, toDisplayString($options.initials), 5)\n ], 4)) : createCommentVNode(\"\", true)\n ], 14, _hoisted_1)), [\n [_directive_click_outside, $options.closeMenu]\n ]);\n}\nconst NcAvatar = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-d7dc2a1f\"]]);\nexport {\n NcAvatar as N,\n userStatus as u\n};\n//# sourceMappingURL=NcAvatar-CK_dTsmT.mjs.map\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","export class TimeoutError extends Error {\n\tname = 'TimeoutError';\n\n\tconstructor(message, options) {\n\t\tsuper(message, options);\n\t\tError.captureStackTrace?.(this, TimeoutError);\n\t}\n}\n\nconst getAbortedReason = signal => signal.reason ?? new DOMException('This operation was aborted.', 'AbortError');\n\nexport default function pTimeout(promise, options) {\n\tconst {\n\t\tmilliseconds,\n\t\tfallback,\n\t\tmessage,\n\t\tcustomTimers = {setTimeout, clearTimeout},\n\t\tsignal,\n\t} = options;\n\n\tlet timer;\n\tlet abortHandler;\n\n\tconst wrappedPromise = new Promise((resolve, reject) => {\n\t\tif (typeof milliseconds !== 'number' || Math.sign(milliseconds) !== 1) {\n\t\t\tthrow new TypeError(`Expected \\`milliseconds\\` to be a positive number, got \\`${milliseconds}\\``);\n\t\t}\n\n\t\tif (signal?.aborted) {\n\t\t\treject(getAbortedReason(signal));\n\t\t\treturn;\n\t\t}\n\n\t\tif (signal) {\n\t\t\tabortHandler = () => {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t};\n\n\t\t\tsignal.addEventListener('abort', abortHandler, {once: true});\n\t\t}\n\n\t\t// Use .then() instead of async IIFE to preserve stack traces\n\t\t// eslint-disable-next-line promise/prefer-await-to-then, promise/prefer-catch\n\t\tpromise.then(resolve, reject);\n\n\t\tif (milliseconds === Number.POSITIVE_INFINITY) {\n\t\t\treturn;\n\t\t}\n\n\t\t// We create the error outside of `setTimeout` to preserve the stack trace.\n\t\tconst timeoutError = new TimeoutError();\n\n\t\t// `.call(undefined, ...)` is needed for custom timers to avoid context issues\n\t\ttimer = customTimers.setTimeout.call(undefined, () => {\n\t\t\tif (fallback) {\n\t\t\t\ttry {\n\t\t\t\t\tresolve(fallback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof promise.cancel === 'function') {\n\t\t\t\tpromise.cancel();\n\t\t\t}\n\n\t\t\tif (message === false) {\n\t\t\t\tresolve();\n\t\t\t} else if (message instanceof Error) {\n\t\t\t\treject(message);\n\t\t\t} else {\n\t\t\t\ttimeoutError.message = message ?? `Promise timed out after ${milliseconds} milliseconds`;\n\t\t\t\treject(timeoutError);\n\t\t\t}\n\t\t}, milliseconds);\n\t});\n\n\t// eslint-disable-next-line promise/prefer-await-to-then\n\tconst cancelablePromise = wrappedPromise.finally(() => {\n\t\tcancelablePromise.clear();\n\t\tif (abortHandler && signal) {\n\t\t\tsignal.removeEventListener('abort', abortHandler);\n\t\t}\n\t});\n\n\tcancelablePromise.clear = () => {\n\t\t// `.call(undefined, ...)` is needed for custom timers to avoid context issues\n\t\tcustomTimers.clearTimeout.call(undefined, timer);\n\t\ttimer = undefined;\n\t};\n\n\treturn cancelablePromise;\n}\n","// Port of lower_bound from https://en.cppreference.com/w/cpp/algorithm/lower_bound\n// Used to compute insertion index to keep queue sorted after insertion\nexport default function lowerBound(array, value, comparator) {\n let first = 0;\n let count = array.length;\n while (count > 0) {\n const step = Math.trunc(count / 2);\n let it = first + step;\n if (comparator(array[it], value) <= 0) {\n first = ++it;\n count -= step + 1;\n }\n else {\n count = step;\n }\n }\n return first;\n}\n","import lowerBound from './lower-bound.js';\nexport default class PriorityQueue {\n #queue = [];\n enqueue(run, options) {\n const { priority = 0, id, } = options ?? {};\n const element = {\n priority,\n id,\n run,\n };\n if (this.size === 0 || this.#queue[this.size - 1].priority >= priority) {\n this.#queue.push(element);\n return;\n }\n const index = lowerBound(this.#queue, element, (a, b) => b.priority - a.priority);\n this.#queue.splice(index, 0, element);\n }\n setPriority(id, priority) {\n const index = this.#queue.findIndex((element) => element.id === id);\n if (index === -1) {\n throw new ReferenceError(`No promise function with the id \"${id}\" exists in the queue.`);\n }\n const [item] = this.#queue.splice(index, 1);\n this.enqueue(item.run, { priority, id });\n }\n dequeue() {\n const item = this.#queue.shift();\n return item?.run;\n }\n filter(options) {\n return this.#queue.filter((element) => element.priority === options.priority).map((element) => element.run);\n }\n get size() {\n return this.#queue.length;\n }\n}\n","import { EventEmitter } from 'eventemitter3';\nimport pTimeout from 'p-timeout';\nimport PriorityQueue from './priority-queue.js';\n/**\nPromise queue with concurrency control.\n*/\nexport default class PQueue extends EventEmitter {\n #carryoverIntervalCount;\n #isIntervalIgnored;\n #intervalCount = 0;\n #intervalCap;\n #rateLimitedInInterval = false;\n #rateLimitFlushScheduled = false;\n #interval;\n #intervalEnd = 0;\n #lastExecutionTime = 0;\n #intervalId;\n #timeoutId;\n #strict;\n // Circular buffer implementation for better performance\n #strictTicks = [];\n #strictTicksStartIndex = 0;\n #queue;\n #queueClass;\n #pending = 0;\n // The `!` is needed because of https://github.com/microsoft/TypeScript/issues/32194\n #concurrency;\n #isPaused;\n // Use to assign a unique identifier to a promise function, if not explicitly specified\n #idAssigner = 1n;\n // Track currently running tasks for debugging\n #runningTasks = new Map();\n /**\n Get or set the default timeout for all tasks. Can be changed at runtime.\n\n Operations will throw a `TimeoutError` if they don't complete within the specified time.\n\n The timeout begins when the operation is dequeued and starts execution, not while it's waiting in the queue.\n\n @example\n ```\n const queue = new PQueue({timeout: 5000});\n\n // Change timeout for all future tasks\n queue.timeout = 10000;\n ```\n */\n timeout;\n constructor(options) {\n super();\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n options = {\n carryoverIntervalCount: false,\n intervalCap: Number.POSITIVE_INFINITY,\n interval: 0,\n concurrency: Number.POSITIVE_INFINITY,\n autoStart: true,\n queueClass: PriorityQueue,\n strict: false,\n ...options,\n };\n if (!(typeof options.intervalCap === 'number' && options.intervalCap >= 1)) {\n throw new TypeError(`Expected \\`intervalCap\\` to be a number from 1 and up, got \\`${options.intervalCap?.toString() ?? ''}\\` (${typeof options.intervalCap})`);\n }\n if (options.interval === undefined || !(Number.isFinite(options.interval) && options.interval >= 0)) {\n throw new TypeError(`Expected \\`interval\\` to be a finite number >= 0, got \\`${options.interval?.toString() ?? ''}\\` (${typeof options.interval})`);\n }\n if (options.strict && options.interval === 0) {\n throw new TypeError('The `strict` option requires a non-zero `interval`');\n }\n if (options.strict && options.intervalCap === Number.POSITIVE_INFINITY) {\n throw new TypeError('The `strict` option requires a finite `intervalCap`');\n }\n // TODO: Remove this fallback in the next major version\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this.#carryoverIntervalCount = options.carryoverIntervalCount ?? options.carryoverConcurrencyCount ?? false;\n this.#isIntervalIgnored = options.intervalCap === Number.POSITIVE_INFINITY || options.interval === 0;\n this.#intervalCap = options.intervalCap;\n this.#interval = options.interval;\n this.#strict = options.strict;\n this.#queue = new options.queueClass();\n this.#queueClass = options.queueClass;\n this.concurrency = options.concurrency;\n if (options.timeout !== undefined && !(Number.isFinite(options.timeout) && options.timeout > 0)) {\n throw new TypeError(`Expected \\`timeout\\` to be a positive finite number, got \\`${options.timeout}\\` (${typeof options.timeout})`);\n }\n this.timeout = options.timeout;\n this.#isPaused = options.autoStart === false;\n this.#setupRateLimitTracking();\n }\n #cleanupStrictTicks(now) {\n // Remove ticks outside the current interval window using circular buffer approach\n while (this.#strictTicksStartIndex < this.#strictTicks.length) {\n const oldestTick = this.#strictTicks[this.#strictTicksStartIndex];\n if (oldestTick !== undefined && now - oldestTick >= this.#interval) {\n this.#strictTicksStartIndex++;\n }\n else {\n break;\n }\n }\n // Compact the array when it becomes inefficient or fully consumed\n // Compact when: (start index is large AND more than half wasted) OR all ticks expired\n const shouldCompact = (this.#strictTicksStartIndex > 100 && this.#strictTicksStartIndex > this.#strictTicks.length / 2)\n || this.#strictTicksStartIndex === this.#strictTicks.length;\n if (shouldCompact) {\n this.#strictTicks = this.#strictTicks.slice(this.#strictTicksStartIndex);\n this.#strictTicksStartIndex = 0;\n }\n }\n // Helper methods for interval consumption\n #consumeIntervalSlot(now) {\n if (this.#strict) {\n this.#strictTicks.push(now);\n }\n else {\n this.#intervalCount++;\n }\n }\n #rollbackIntervalSlot() {\n if (this.#strict) {\n // Pop from the end of the actual data (not from start index)\n if (this.#strictTicks.length > this.#strictTicksStartIndex) {\n this.#strictTicks.pop();\n }\n }\n else if (this.#intervalCount > 0) {\n this.#intervalCount--;\n }\n }\n #getActiveTicksCount() {\n return this.#strictTicks.length - this.#strictTicksStartIndex;\n }\n get #doesIntervalAllowAnother() {\n if (this.#isIntervalIgnored) {\n return true;\n }\n if (this.#strict) {\n // Cleanup already done by #isIntervalPausedAt before this is called\n return this.#getActiveTicksCount() < this.#intervalCap;\n }\n return this.#intervalCount < this.#intervalCap;\n }\n get #doesConcurrentAllowAnother() {\n return this.#pending < this.#concurrency;\n }\n #next() {\n this.#pending--;\n if (this.#pending === 0) {\n this.emit('pendingZero');\n }\n this.#tryToStartAnother();\n this.emit('next');\n }\n #onResumeInterval() {\n // Clear timeout ID before processing to prevent race condition\n // Must clear before #onInterval to allow new timeouts to be scheduled\n this.#timeoutId = undefined;\n this.#onInterval();\n this.#initializeIntervalIfNeeded();\n }\n #isIntervalPausedAt(now) {\n // Strict mode: check if we need to wait for oldest tick to age out\n if (this.#strict) {\n this.#cleanupStrictTicks(now);\n // If at capacity, need to wait for oldest tick to age out\n const activeTicksCount = this.#getActiveTicksCount();\n if (activeTicksCount >= this.#intervalCap) {\n const oldestTick = this.#strictTicks[this.#strictTicksStartIndex];\n // After cleanup, remaining ticks are within interval, so delay is always > 0\n const delay = this.#interval - (now - oldestTick);\n this.#createIntervalTimeout(delay);\n return true;\n }\n return false;\n }\n // Fixed window mode (original logic)\n if (this.#intervalId === undefined) {\n const delay = this.#intervalEnd - now;\n if (delay < 0) {\n // If the interval has expired while idle, check if we should enforce the interval\n // from the last task execution. This ensures proper spacing between tasks even\n // when the queue becomes empty and then new tasks are added.\n if (this.#lastExecutionTime > 0) {\n const timeSinceLastExecution = now - this.#lastExecutionTime;\n if (timeSinceLastExecution < this.#interval) {\n // Not enough time has passed since the last task execution\n this.#createIntervalTimeout(this.#interval - timeSinceLastExecution);\n return true;\n }\n }\n // Enough time has passed or no previous execution, allow execution\n this.#intervalCount = (this.#carryoverIntervalCount) ? this.#pending : 0;\n }\n else {\n // Act as the interval is pending\n this.#createIntervalTimeout(delay);\n return true;\n }\n }\n return false;\n }\n #createIntervalTimeout(delay) {\n if (this.#timeoutId !== undefined) {\n return;\n }\n this.#timeoutId = setTimeout(() => {\n this.#onResumeInterval();\n }, delay);\n }\n #clearIntervalTimer() {\n if (this.#intervalId) {\n clearInterval(this.#intervalId);\n this.#intervalId = undefined;\n }\n }\n #clearTimeoutTimer() {\n if (this.#timeoutId) {\n clearTimeout(this.#timeoutId);\n this.#timeoutId = undefined;\n }\n }\n #tryToStartAnother() {\n if (this.#queue.size === 0) {\n // We can clear the interval (\"pause\")\n // Because we can redo it later (\"resume\")\n this.#clearIntervalTimer();\n this.emit('empty');\n if (this.#pending === 0) {\n // Clear timeout as well when completely idle\n this.#clearTimeoutTimer();\n // Compact strict ticks when idle to free memory\n if (this.#strict && this.#strictTicksStartIndex > 0) {\n const now = Date.now();\n this.#cleanupStrictTicks(now);\n }\n this.emit('idle');\n }\n return false;\n }\n let taskStarted = false;\n if (!this.#isPaused) {\n const now = Date.now();\n const canInitializeInterval = !this.#isIntervalPausedAt(now);\n if (this.#doesIntervalAllowAnother && this.#doesConcurrentAllowAnother) {\n const job = this.#queue.dequeue();\n if (!this.#isIntervalIgnored) {\n this.#consumeIntervalSlot(now);\n this.#scheduleRateLimitUpdate();\n }\n this.emit('active');\n job();\n if (canInitializeInterval) {\n this.#initializeIntervalIfNeeded();\n }\n taskStarted = true;\n }\n }\n return taskStarted;\n }\n #initializeIntervalIfNeeded() {\n if (this.#isIntervalIgnored || this.#intervalId !== undefined) {\n return;\n }\n // Strict mode uses timeouts instead of interval timers\n if (this.#strict) {\n return;\n }\n this.#intervalId = setInterval(() => {\n this.#onInterval();\n }, this.#interval);\n this.#intervalEnd = Date.now() + this.#interval;\n }\n #onInterval() {\n // Non-strict mode uses interval timers and intervalCount\n if (!this.#strict) {\n if (this.#intervalCount === 0 && this.#pending === 0 && this.#intervalId) {\n this.#clearIntervalTimer();\n }\n this.#intervalCount = this.#carryoverIntervalCount ? this.#pending : 0;\n }\n this.#processQueue();\n this.#scheduleRateLimitUpdate();\n }\n /**\n Executes all queued functions until it reaches the limit.\n */\n #processQueue() {\n // eslint-disable-next-line no-empty\n while (this.#tryToStartAnother()) { }\n }\n get concurrency() {\n return this.#concurrency;\n }\n set concurrency(newConcurrency) {\n if (!(typeof newConcurrency === 'number' && newConcurrency >= 1)) {\n throw new TypeError(`Expected \\`concurrency\\` to be a number from 1 and up, got \\`${newConcurrency}\\` (${typeof newConcurrency})`);\n }\n this.#concurrency = newConcurrency;\n this.#processQueue();\n }\n /**\n Updates the priority of a promise function by its id, affecting its execution order. Requires a defined concurrency limit to take effect.\n\n For example, this can be used to prioritize a promise function to run earlier.\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 1});\n\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦀', {priority: 0, id: '🦀'});\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦄', {priority: 1});\n\n queue.setPriority('🦀', 2);\n ```\n\n In this case, the promise function with `id: '🦀'` runs second.\n\n You can also deprioritize a promise function to delay its execution:\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 1});\n\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦀', {priority: 1, id: '🦀'});\n queue.add(async () => '🦄');\n queue.add(async () => '🦄', {priority: 0});\n\n queue.setPriority('🦀', -1);\n ```\n Here, the promise function with `id: '🦀'` executes last.\n */\n setPriority(id, priority) {\n if (typeof priority !== 'number' || !Number.isFinite(priority)) {\n throw new TypeError(`Expected \\`priority\\` to be a finite number, got \\`${priority}\\` (${typeof priority})`);\n }\n this.#queue.setPriority(id, priority);\n }\n async add(function_, options = {}) {\n // Create a copy to avoid mutating the original options object\n options = {\n timeout: this.timeout,\n ...options,\n // Assign unique ID if not provided\n id: options.id ?? (this.#idAssigner++).toString(),\n };\n return new Promise((resolve, reject) => {\n // Create a unique symbol for tracking this task\n const taskSymbol = Symbol(`task-${options.id}`);\n this.#queue.enqueue(async () => {\n this.#pending++;\n // Track this running task\n this.#runningTasks.set(taskSymbol, {\n id: options.id,\n priority: options.priority ?? 0, // Match priority-queue default\n startTime: Date.now(),\n timeout: options.timeout,\n });\n let eventListener;\n try {\n // Check abort signal - if aborted, need to decrement the counter\n // that was incremented in tryToStartAnother\n try {\n options.signal?.throwIfAborted();\n }\n catch (error) {\n this.#rollbackIntervalConsumption();\n // Clean up tracking before throwing\n this.#runningTasks.delete(taskSymbol);\n throw error;\n }\n this.#lastExecutionTime = Date.now();\n let operation = function_({ signal: options.signal });\n if (options.timeout) {\n operation = pTimeout(Promise.resolve(operation), {\n milliseconds: options.timeout,\n message: `Task timed out after ${options.timeout}ms (queue has ${this.#pending} running, ${this.#queue.size} waiting)`,\n });\n }\n if (options.signal) {\n const { signal } = options;\n operation = Promise.race([operation, new Promise((_resolve, reject) => {\n eventListener = () => {\n reject(signal.reason);\n };\n signal.addEventListener('abort', eventListener, { once: true });\n })]);\n }\n const result = await operation;\n resolve(result);\n this.emit('completed', result);\n }\n catch (error) {\n reject(error);\n this.emit('error', error);\n }\n finally {\n // Clean up abort event listener\n if (eventListener) {\n options.signal?.removeEventListener('abort', eventListener);\n }\n // Remove from running tasks\n this.#runningTasks.delete(taskSymbol);\n // Use queueMicrotask to prevent deep recursion while maintaining timing\n queueMicrotask(() => {\n this.#next();\n });\n }\n }, options);\n this.emit('add');\n this.#tryToStartAnother();\n });\n }\n async addAll(functions, options) {\n return Promise.all(functions.map(async (function_) => this.add(function_, options)));\n }\n /**\n Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)\n */\n start() {\n if (!this.#isPaused) {\n return this;\n }\n this.#isPaused = false;\n this.#processQueue();\n return this;\n }\n /**\n Put queue execution on hold.\n */\n pause() {\n this.#isPaused = true;\n }\n /**\n Clear the queue.\n */\n clear() {\n this.#queue = new this.#queueClass();\n // Clear interval timer since queue is now empty (consistent with #tryToStartAnother)\n this.#clearIntervalTimer();\n // Note: We preserve strict mode rate-limiting state (ticks and timeout)\n // because clear() only clears queued tasks, not rate limit history.\n // This ensures that rate limits are still enforced after clearing the queue.\n // Note: We don't clear #runningTasks as those tasks are still running\n // They will be removed when they complete in the finally block\n // Force synchronous update since clear() should have immediate effect\n this.#updateRateLimitState();\n // Emit events so waiters (onEmpty, onIdle, onSizeLessThan) can resolve\n this.emit('empty');\n if (this.#pending === 0) {\n this.#clearTimeoutTimer();\n this.emit('idle');\n }\n this.emit('next');\n }\n /**\n Can be called multiple times. Useful if you for example add additional items at a later time.\n\n @returns A promise that settles when the queue becomes empty.\n */\n async onEmpty() {\n // Instantly resolve if the queue is empty\n if (this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('empty');\n }\n /**\n @returns A promise that settles when the queue size is less than the given limit: `queue.size < limit`.\n\n If you want to avoid having the queue grow beyond a certain size you can `await queue.onSizeLessThan()` before adding a new item.\n\n Note that this only limits the number of items waiting to start. There could still be up to `concurrency` jobs already running that this call does not include in its calculation.\n */\n async onSizeLessThan(limit) {\n // Instantly resolve if the queue is empty.\n if (this.#queue.size < limit) {\n return;\n }\n await this.#onEvent('next', () => this.#queue.size < limit);\n }\n /**\n The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.\n\n @returns A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.\n */\n async onIdle() {\n // Instantly resolve if none pending and if nothing else is queued\n if (this.#pending === 0 && this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('idle');\n }\n /**\n The difference with `.onIdle` is that `.onPendingZero` only waits for currently running tasks to finish, ignoring queued tasks.\n\n @returns A promise that settles when all currently running tasks have completed; `queue.pending === 0`.\n */\n async onPendingZero() {\n if (this.#pending === 0) {\n return;\n }\n await this.#onEvent('pendingZero');\n }\n /**\n @returns A promise that settles when the queue becomes rate-limited due to intervalCap.\n */\n async onRateLimit() {\n if (this.isRateLimited) {\n return;\n }\n await this.#onEvent('rateLimit');\n }\n /**\n @returns A promise that settles when the queue is no longer rate-limited.\n */\n async onRateLimitCleared() {\n if (!this.isRateLimited) {\n return;\n }\n await this.#onEvent('rateLimitCleared');\n }\n /**\n @returns A promise that rejects when any task in the queue errors.\n\n Use with `Promise.race([queue.onError(), queue.onIdle()])` to fail fast on the first error while still resolving normally when the queue goes idle.\n\n Important: The promise returned by `add()` still rejects. You must handle each `add()` promise (for example, `.catch(() => {})`) to avoid unhandled rejections.\n\n @example\n ```\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 2});\n\n queue.add(() => fetchData(1)).catch(() => {});\n queue.add(() => fetchData(2)).catch(() => {});\n queue.add(() => fetchData(3)).catch(() => {});\n\n // Stop processing on first error\n try {\n await Promise.race([\n queue.onError(),\n queue.onIdle()\n ]);\n } catch (error) {\n queue.pause(); // Stop processing remaining tasks\n console.error('Queue failed:', error);\n }\n ```\n */\n // eslint-disable-next-line @typescript-eslint/promise-function-async\n onError() {\n return new Promise((_resolve, reject) => {\n const handleError = (error) => {\n this.off('error', handleError);\n reject(error);\n };\n this.on('error', handleError);\n });\n }\n async #onEvent(event, filter) {\n return new Promise(resolve => {\n const listener = () => {\n if (filter && !filter()) {\n return;\n }\n this.off(event, listener);\n resolve();\n };\n this.on(event, listener);\n });\n }\n /**\n Size of the queue, the number of queued items waiting to run.\n */\n get size() {\n return this.#queue.size;\n }\n /**\n Size of the queue, filtered by the given options.\n\n For example, this can be used to find the number of items remaining in the queue with a specific priority level.\n */\n sizeBy(options) {\n // eslint-disable-next-line unicorn/no-array-callback-reference\n return this.#queue.filter(options).length;\n }\n /**\n Number of running items (no longer in the queue).\n */\n get pending() {\n return this.#pending;\n }\n /**\n Whether the queue is currently paused.\n */\n get isPaused() {\n return this.#isPaused;\n }\n #setupRateLimitTracking() {\n // Only schedule updates when rate limiting is enabled\n if (this.#isIntervalIgnored) {\n return;\n }\n // Wire up to lifecycle events that affect rate limit state\n // Only 'add' and 'next' can actually change rate limit state\n this.on('add', () => {\n if (this.#queue.size > 0) {\n this.#scheduleRateLimitUpdate();\n }\n });\n this.on('next', () => {\n this.#scheduleRateLimitUpdate();\n });\n }\n #scheduleRateLimitUpdate() {\n // Skip if rate limiting is not enabled or already scheduled\n if (this.#isIntervalIgnored || this.#rateLimitFlushScheduled) {\n return;\n }\n this.#rateLimitFlushScheduled = true;\n queueMicrotask(() => {\n this.#rateLimitFlushScheduled = false;\n this.#updateRateLimitState();\n });\n }\n #rollbackIntervalConsumption() {\n if (this.#isIntervalIgnored) {\n return;\n }\n this.#rollbackIntervalSlot();\n this.#scheduleRateLimitUpdate();\n }\n #updateRateLimitState() {\n const previous = this.#rateLimitedInInterval;\n // Early exit if rate limiting is disabled or queue is empty\n if (this.#isIntervalIgnored || this.#queue.size === 0) {\n if (previous) {\n this.#rateLimitedInInterval = false;\n this.emit('rateLimitCleared');\n }\n return;\n }\n // Get the current count based on mode\n let count;\n if (this.#strict) {\n const now = Date.now();\n this.#cleanupStrictTicks(now);\n count = this.#getActiveTicksCount();\n }\n else {\n count = this.#intervalCount;\n }\n const shouldBeRateLimited = count >= this.#intervalCap;\n if (shouldBeRateLimited !== previous) {\n this.#rateLimitedInInterval = shouldBeRateLimited;\n this.emit(shouldBeRateLimited ? 'rateLimit' : 'rateLimitCleared');\n }\n }\n /**\n Whether the queue is currently rate-limited due to intervalCap.\n */\n get isRateLimited() {\n return this.#rateLimitedInInterval;\n }\n /**\n Whether the queue is saturated. Returns `true` when:\n - All concurrency slots are occupied and tasks are waiting, OR\n - The queue is rate-limited and tasks are waiting\n\n Useful for detecting backpressure and potential hanging tasks.\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 2});\n\n // Backpressure handling\n if (queue.isSaturated) {\n console.log('Queue is saturated, waiting for capacity...');\n await queue.onSizeLessThan(queue.concurrency);\n }\n\n // Monitoring for stuck tasks\n setInterval(() => {\n if (queue.isSaturated) {\n console.warn(`Queue saturated: ${queue.pending} running, ${queue.size} waiting`);\n }\n }, 60000);\n ```\n */\n get isSaturated() {\n return (this.#pending === this.#concurrency && this.#queue.size > 0)\n || (this.isRateLimited && this.#queue.size > 0);\n }\n /**\n The tasks currently being executed. Each task includes its `id`, `priority`, `startTime`, and `timeout` (if set).\n\n Returns an array of task info objects.\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 2});\n\n // Add tasks with IDs for better debugging\n queue.add(() => fetchUser(123), {id: 'user-123'});\n queue.add(() => fetchPosts(456), {id: 'posts-456', priority: 1});\n\n // Check what's running\n console.log(queue.runningTasks);\n // => [{\n // id: 'user-123',\n // priority: 0,\n // startTime: 1759253001716,\n // timeout: undefined\n // }, {\n // id: 'posts-456',\n // priority: 1,\n // startTime: 1759253001916,\n // timeout: undefined\n // }]\n ```\n */\n get runningTasks() {\n // Return fresh array with fresh objects to prevent mutations\n return [...this.#runningTasks.values()].map(task => ({ ...task }));\n }\n}\n/**\nError thrown when a task times out.\n\n@example\n```\nimport PQueue, {TimeoutError} from 'p-queue';\n\nconst queue = new PQueue({timeout: 1000});\n\ntry {\n await queue.add(() => someTask());\n} catch (error) {\n if (error instanceof TimeoutError) {\n console.log('Task timed out');\n }\n}\n```\n*/\nexport { TimeoutError } from 'p-timeout';\n","import PQueue from \"p-queue\";\nconst queue = new PQueue({ concurrency: 5 });\nfunction preloadImage(url) {\n const { resolve, promise } = Promise.withResolvers();\n queue.add(() => {\n const image = new Image();\n image.onerror = () => resolve(false);\n image.onload = () => resolve(true);\n image.src = url;\n return promise;\n });\n return promise;\n}\nexport {\n preloadImage\n};\n//# sourceMappingURL=index.mjs.map\n","import '../assets/NcIconToggleSwitch-C29S_5Rp.css';\nimport { defineComponent, useCssVars, computed, createBlock, openBlock, normalizeClass } from \"vue\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst svg = `<svg\n\txmlns=\"http://www.w3.org/2000/svg\"\n\tviewBox=\"0 0 24 12\">\n\t<path d=\"M17,1H7A5,5 0 0,0 2,6 5,5 0 0,0 7,11H17A5,5 0 0,0 22,6 5,5 0 0,0 17,1Z\" />\n\t<circle\n\t\tcy=\"6\"\n\t\tr=\"3\"\n\t\tfill=\"var(--color-main-background)\" />\n</svg>`;\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcIconToggleSwitch\",\n props: {\n checked: { type: Boolean },\n size: { default: 34 },\n inline: { type: Boolean, default: false }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"6bd152af\": color.value,\n \"16fd8ca9\": cx.value\n }));\n const color = computed(() => __props.checked ? \"var(--color-primary-element)\" : \"var(--color-text-maxcontrast)\");\n const cx = computed(() => __props.checked ? \"calc(17 / 24 * 100%)\" : \"calc(7 / 24 * 100%)\");\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcIconSvgWrapper, {\n class: normalizeClass(_ctx.$style.iconToggleSwitch),\n svg,\n size: _ctx.size,\n inline: _ctx.inline\n }, null, 8, [\"class\", \"size\", \"inline\"]);\n };\n }\n});\nconst iconToggleSwitch = \"_iconToggleSwitch_ixmnx_20\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_ixmnx_12\",\n iconToggleSwitch\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcIconToggleSwitch = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcIconToggleSwitch as N\n};\n//# sourceMappingURL=NcIconToggleSwitch-DNEYngCw.mjs.map\n","import { inject } from \"vue\";\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst INSIDE_RADIO_GROUP_KEY = /* @__PURE__ */ Symbol.for(\"insideRadioGroup\");\nfunction useInsideRadioGroup() {\n return inject(INSIDE_RADIO_GROUP_KEY, void 0);\n}\nexport {\n INSIDE_RADIO_GROUP_KEY as I,\n useInsideRadioGroup as u\n};\n//# sourceMappingURL=useNcRadioGroup-D6llQmAl.mjs.map\n","import '../assets/NcCheckboxRadioSwitch-DpYt0YbL.css';\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, normalizeClass, renderSlot, createBlock, resolveDynamicComponent, toHandlers, withCtx, createVNode, createSlots, createTextVNode, onMounted, computed, useCssVars } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcIconToggleSwitch } from \"./NcIconToggleSwitch-DNEYngCw.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-b_ajZ_nQ.mjs\";\nimport { r as register, K as n, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { u as useInsideRadioGroup } from \"./useNcRadioGroup-D6llQmAl.mjs\";\nconst _sfc_main$6 = {\n name: \"CheckboxBlankOutlineIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$6 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$5 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$5 = { d: \"M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z\" };\nconst _hoisted_4$4 = { key: 0 };\nfunction _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon checkbox-blank-outline-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$5, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$5))\n ], 16, _hoisted_1$6);\n}\nconst CheckboxBlankOutline = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render$6]]);\nconst _sfc_main$5 = {\n name: \"CheckboxMarkedIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$5 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$4 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$4 = { d: \"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\" };\nconst _hoisted_4$3 = { key: 0 };\nfunction _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon checkbox-marked-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$4, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$3, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$4))\n ], 16, _hoisted_1$5);\n}\nconst CheckboxMarked = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$5]]);\nconst _sfc_main$4 = {\n name: \"MinusBoxIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$4 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$3 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$3 = { d: \"M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon minus-box-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$3))\n ], 16, _hoisted_1$4);\n}\nconst MinusBox = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$4]]);\nconst _sfc_main$3 = {\n name: \"RadioboxBlankIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$3 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon radiobox-blank-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$3);\n}\nconst RadioboxBlank = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\n name: \"RadioboxMarkedIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$2 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon radiobox-marked-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$2);\n}\nconst RadioboxMarked = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nconst TYPE_CHECKBOX = \"checkbox\";\nconst TYPE_RADIO = \"radio\";\nconst TYPE_SWITCH = \"switch\";\nconst TYPE_BUTTON = \"button\";\nconst _sfc_main$1 = {\n name: \"NcCheckboxContent\",\n components: {\n NcLoadingIcon,\n NcIconToggleSwitch\n },\n props: {\n /**\n * Class for the icon element\n */\n iconClass: {\n type: [String, Object],\n default: null\n },\n /**\n * Class for the text element\n */\n textClass: {\n type: [String, Object],\n default: null\n },\n /**\n * Type of the input. checkbox, radio, switch, or button.\n *\n * Only use button when used in a `tablist` container and the\n * `tab` role is set.\n *\n * @type {'checkbox'|'radio'|'switch'|'button'}\n */\n type: {\n type: String,\n default: \"checkbox\",\n validator: (type) => [\n TYPE_CHECKBOX,\n TYPE_RADIO,\n TYPE_SWITCH,\n TYPE_BUTTON\n ].includes(type)\n },\n /**\n * Toggle the alternative button style\n */\n buttonVariant: {\n type: Boolean,\n default: false\n },\n /**\n * True if the entry is checked\n */\n isChecked: {\n type: Boolean,\n default: false\n },\n /**\n * Indeterminate state\n */\n indeterminate: {\n type: Boolean,\n default: false\n },\n /**\n * Loading state\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Icon size\n */\n iconSize: {\n type: Number,\n default: 24\n },\n /**\n * Label id attribute\n */\n labelId: {\n type: String,\n required: true\n },\n /**\n * Description id attribute\n */\n descriptionId: {\n type: String,\n required: true\n }\n },\n computed: {\n isButtonType() {\n return this.type === TYPE_BUTTON;\n },\n isSwitchType() {\n return this.type === TYPE_SWITCH;\n },\n /**\n * Returns the proper Material icon depending on the select case\n *\n * @return {object}\n */\n checkboxRadioIconElement() {\n if (this.type === TYPE_RADIO) {\n if (this.isChecked) {\n return RadioboxMarked;\n }\n return RadioboxBlank;\n }\n if (this.indeterminate) {\n return MinusBox;\n }\n if (this.isChecked) {\n return CheckboxMarked;\n }\n return CheckboxBlankOutline;\n }\n }\n};\nconst _hoisted_1$1 = {\n key: 0,\n class: \"checkbox-content__wrapper\"\n};\nconst _hoisted_2 = [\"id\"];\nconst _hoisted_3 = [\"id\"];\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_NcIconToggleSwitch = resolveComponent(\"NcIconToggleSwitch\");\n return openBlock(), createElementBlock(\"span\", {\n class: normalizeClass([\"checkbox-content\", {\n [\"checkbox-content-\" + $props.type]: true,\n \"checkbox-content--button-variant\": $props.buttonVariant,\n \"checkbox-content--has-text\": !!_ctx.$slots.default\n }])\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass([\"checkbox-content__icon\", {\n \"checkbox-content__icon--checked\": $props.isChecked,\n \"checkbox-content__icon--has-description\": !$options.isButtonType && _ctx.$slots.description,\n [$props.iconClass]: true\n }]),\n \"aria-hidden\": true,\n inert: \"\"\n }, [\n renderSlot(_ctx.$slots, \"icon\", {\n checked: $props.isChecked,\n loading: $props.loading\n }, () => [\n $props.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : $options.isSwitchType ? (openBlock(), createBlock(_component_NcIconToggleSwitch, {\n key: 1,\n checked: $props.isChecked,\n size: $props.iconSize,\n inline: \"\"\n }, null, 8, [\"checked\", \"size\"])) : !$props.buttonVariant ? (openBlock(), createBlock(resolveDynamicComponent($options.checkboxRadioIconElement), {\n key: 2,\n size: $props.iconSize\n }, null, 8, [\"size\"])) : createCommentVNode(\"\", true)\n ], true)\n ], 2),\n _ctx.$slots.default || _ctx.$slots.description ? (openBlock(), createElementBlock(\"span\", _hoisted_1$1, [\n _ctx.$slots.default ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n id: $props.labelId,\n class: normalizeClass([\"checkbox-content__text\", $props.textClass])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 10, _hoisted_2)) : createCommentVNode(\"\", true),\n !$options.isButtonType && _ctx.$slots.description ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n id: $props.descriptionId,\n class: \"checkbox-content__description\"\n }, [\n renderSlot(_ctx.$slots, \"description\", {}, void 0, true)\n ], 8, _hoisted_3)) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst NcCheckboxContent = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-a060196e\"]]);\nregister();\nconst _sfc_main = {\n name: \"NcCheckboxRadioSwitch\",\n components: {\n NcCheckboxContent\n },\n // We need to pass attributes to the input element\n inheritAttrs: false,\n props: {\n /**\n * Unique id attribute of the input\n */\n id: {\n type: String,\n default: () => \"checkbox-radio-switch-\" + createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * Unique id attribute of the wrapper element\n */\n wrapperId: {\n type: String,\n default: null\n },\n /**\n * Input name. Required for radio, optional for checkbox, and ignored\n * for button.\n */\n name: {\n type: String,\n default: null\n },\n /**\n * Required if no text is set.\n * The aria-label is forwarded to the input or button.\n */\n ariaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Type of the input. checkbox, radio, switch, or button.\n *\n * Only use button when used in a `tablist` container and the\n * `tab` role is set.\n *\n * @type {'checkbox'|'radio'|'switch'|'button'}\n */\n type: {\n type: String,\n default: \"checkbox\",\n validator: (type) => [\n TYPE_CHECKBOX,\n TYPE_RADIO,\n TYPE_SWITCH,\n TYPE_BUTTON\n ].includes(type)\n },\n /**\n * Toggle the alternative button style\n *\n * @deprecated - Use `NcRadioGroup` instead\n */\n buttonVariant: {\n type: Boolean,\n default: false\n },\n /**\n * Are the elements are all direct siblings?\n * If so they will be grouped horizontally or vertically\n *\n * @type {'no'|'horizontal'|'vertical'}\n * @deprecated - Use `NcRadioGroup` instead\n */\n buttonVariantGrouped: {\n type: String,\n default: \"no\",\n validator: (v) => [\"no\", \"vertical\", \"horizontal\"].includes(v)\n },\n /**\n * Checked state. To be used with `v-model:value`\n */\n modelValue: {\n type: [Boolean, Array, String],\n default: false\n },\n /**\n * Value to be synced on check\n */\n value: {\n type: String,\n default: null\n },\n /**\n * Disabled state\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Indeterminate state\n */\n indeterminate: {\n type: Boolean,\n default: false\n },\n /**\n * Required state\n */\n required: {\n type: Boolean,\n default: false\n },\n /**\n * Loading state\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Wrapping element tag\n *\n * When `type` is set to `button` this will be ignored\n *\n * Defaults to `span`\n */\n wrapperElement: {\n type: String,\n default: null\n },\n /**\n * The class(es) to pass to the wrapper / root element of the component\n */\n class: {\n type: [String, Array, Object],\n default: \"\"\n },\n /**\n * The style to pass to the wrapper / root element of the component\n */\n style: {\n type: [String, Array, Object],\n default: \"\"\n },\n /**\n * Description\n *\n * This is unsupported when using button has type.\n */\n description: {\n type: String,\n default: null\n }\n },\n emits: [\"update:modelValue\"],\n setup(props, { emit }) {\n const radioGroup = useInsideRadioGroup();\n onMounted(() => radioGroup?.value.register(false));\n const internalType = computed(() => radioGroup?.value ? TYPE_RADIO : props.type);\n const internalModelValue = computed({\n get() {\n if (radioGroup?.value) {\n return radioGroup.value.modelValue;\n }\n return props.modelValue;\n },\n set(value) {\n if (radioGroup?.value) {\n radioGroup.value.onUpdate(value);\n } else {\n emit(\"update:modelValue\", value);\n }\n }\n });\n return {\n internalType,\n internalModelValue,\n labelId: createElementId(),\n descriptionId: createElementId()\n };\n },\n computed: {\n isButtonType() {\n return this.internalType === TYPE_BUTTON;\n },\n computedWrapperElement() {\n if (this.isButtonType) {\n return \"button\";\n }\n if (this.wrapperElement !== null) {\n return this.wrapperElement;\n }\n return \"span\";\n },\n listeners() {\n if (this.isButtonType) {\n return {\n click: this.onToggle\n };\n }\n return {\n change: this.onToggle\n };\n },\n iconSize() {\n return this.internalType === TYPE_SWITCH ? 36 : 20;\n },\n cssIconSize() {\n return this.iconSize + \"px\";\n },\n cssIconHeight() {\n return this.internalType === TYPE_SWITCH ? \"16px\" : this.cssIconSize;\n },\n /**\n * Return the input type.\n * Switch is not an official type\n *\n * @return {string}\n */\n inputType() {\n const nativeTypes = [\n TYPE_CHECKBOX,\n TYPE_RADIO,\n TYPE_BUTTON\n ];\n if (nativeTypes.includes(this.internalType)) {\n return this.internalType;\n }\n return TYPE_CHECKBOX;\n },\n /**\n * Check if that entry is checked\n * If value is defined, we use that as the checked value\n * If not, we expect true/false in this.checked\n *\n * @return {boolean}\n */\n isChecked() {\n if (this.value !== null) {\n if (Array.isArray(this.internalModelValue)) {\n return [...this.internalModelValue].indexOf(this.value) > -1;\n }\n return this.internalModelValue === this.value;\n }\n return this.internalModelValue === true;\n },\n hasIndeterminate() {\n return [\n TYPE_CHECKBOX,\n TYPE_RADIO\n ].includes(this.inputType);\n }\n },\n mounted() {\n if (this.name && this.internalType === TYPE_CHECKBOX) {\n if (!Array.isArray(this.internalModelValue)) {\n throw new Error(\"When using groups of checkboxes, the updated value will be an array.\");\n }\n }\n if (this.name && this.internalType === TYPE_SWITCH) {\n throw new Error(\"Switches are not made to be used for data sets. Please use checkboxes instead.\");\n }\n if (typeof this.internalModelValue !== \"boolean\" && this.internalType === TYPE_SWITCH) {\n throw new Error(\"Switches can only be used with boolean as modelValue prop.\");\n }\n },\n methods: {\n t,\n n,\n onToggle(event) {\n if (this.disabled || event.target.tagName.toLowerCase() === \"a\") {\n return;\n }\n if (this.internalType === TYPE_RADIO) {\n this.internalModelValue = this.value;\n return;\n }\n if (this.internalType === TYPE_SWITCH) {\n this.internalModelValue = !this.isChecked;\n return;\n }\n if (typeof this.internalModelValue === \"boolean\") {\n this.internalModelValue = !this.internalModelValue;\n return;\n }\n const values = this.getInputsSet().filter((input) => input.checked).map((input) => input.value);\n if (values.includes(this.value)) {\n this.internalModelValue = values.filter((v) => v !== this.value);\n } else {\n this.internalModelValue = [...values, this.value];\n }\n },\n /**\n * Get the input set based on this name\n *\n * @return {Node[]}\n */\n getInputsSet() {\n return [...document.getElementsByName(this.name)];\n }\n }\n};\nconst __injectCSSVars__ = () => {\n useCssVars((_ctx) => ({\n \"65a7082e\": _ctx.cssIconSize,\n \"20f7d30f\": _ctx.cssIconHeight\n }));\n};\nconst __setup__ = _sfc_main.setup;\n_sfc_main.setup = __setup__ ? (props, ctx) => {\n __injectCSSVars__();\n return __setup__(props, ctx);\n} : __injectCSSVars__;\nconst _hoisted_1 = [\"id\", \"aria-labelledby\", \"aria-describedby\", \"aria-label\", \"disabled\", \"type\", \"value\", \"checked\", \".indeterminate\", \"required\", \"name\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcCheckboxContent = resolveComponent(\"NcCheckboxContent\");\n return openBlock(), createBlock(resolveDynamicComponent($options.computedWrapperElement), mergeProps({\n id: $props.wrapperId ?? ($options.isButtonType ? $props.id : null),\n \"aria-label\": $options.isButtonType && $props.ariaLabel ? $props.ariaLabel : void 0,\n class: [\"checkbox-radio-switch\", [\n _ctx.$props.class,\n {\n [\"checkbox-radio-switch-\" + $setup.internalType]: $setup.internalType,\n \"checkbox-radio-switch--checked\": $options.isChecked,\n \"checkbox-radio-switch--disabled\": $props.disabled,\n \"checkbox-radio-switch--indeterminate\": $options.hasIndeterminate ? $props.indeterminate : false,\n \"checkbox-radio-switch--button-variant\": $props.buttonVariant,\n \"checkbox-radio-switch--button-variant-v-grouped\": $props.buttonVariant && $props.buttonVariantGrouped === \"vertical\",\n \"checkbox-radio-switch--button-variant-h-grouped\": $props.buttonVariant && $props.buttonVariantGrouped === \"horizontal\",\n \"button-vue\": $options.isButtonType\n }\n ]],\n style: $props.style,\n type: $options.isButtonType ? \"button\" : null\n }, $options.isButtonType ? _ctx.$attrs : {}, toHandlers($options.isButtonType ? $options.listeners : {})), {\n default: withCtx(() => [\n !$options.isButtonType ? (openBlock(), createElementBlock(\"input\", mergeProps({\n key: 0,\n id: $props.id,\n \"aria-labelledby\": !$options.isButtonType && !$props.ariaLabel ? $setup.labelId : null,\n \"aria-describedby\": !$options.isButtonType && ($props.description || _ctx.$slots.description) ? $setup.descriptionId : null,\n \"aria-label\": $props.ariaLabel || void 0,\n class: \"checkbox-radio-switch__input\",\n disabled: $props.disabled,\n type: $options.inputType,\n value: $props.value,\n checked: $options.isChecked,\n \".indeterminate\": $options.hasIndeterminate ? $props.indeterminate : null,\n required: $props.required,\n name: $props.name\n }, _ctx.$attrs, toHandlers($options.listeners, true)), null, 48, _hoisted_1)) : createCommentVNode(\"\", true),\n createVNode(_component_NcCheckboxContent, {\n id: !$options.isButtonType ? `${$props.id}-label` : void 0,\n class: \"checkbox-radio-switch__content\",\n \"icon-class\": \"checkbox-radio-switch__icon\",\n \"text-class\": \"checkbox-radio-switch__text\",\n type: $setup.internalType,\n indeterminate: $options.hasIndeterminate ? $props.indeterminate : false,\n \"button-variant\": $props.buttonVariant,\n \"is-checked\": $options.isChecked,\n loading: $props.loading,\n \"label-id\": $setup.labelId,\n \"description-id\": $setup.descriptionId,\n \"icon-size\": $options.iconSize,\n onClick: $options.onToggle\n }, createSlots({\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ]),\n _: 2\n }, [\n _ctx.$slots.description || $props.description ? {\n name: \"description\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString($props.description), 1)\n ], true)\n ]),\n key: \"0\"\n } : void 0,\n !!_ctx.$slots.default ? {\n name: \"default\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"id\", \"type\", \"indeterminate\", \"button-variant\", \"is-checked\", \"loading\", \"label-id\", \"description-id\", \"icon-size\", \"onClick\"])\n ]),\n _: 3\n }, 16, [\"id\", \"aria-label\", \"class\", \"style\", \"type\"]);\n}\nconst NcCheckboxRadioSwitch = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-0dcb138a\"]]);\nexport {\n NcCheckboxRadioSwitch as N\n};\n//# sourceMappingURL=NcCheckboxRadioSwitch-DisCqPZK.mjs.map\n","import '../assets/NcChip-DZ8dUSFy.css';\nimport { defineComponent, useSlots, computed, createElementBlock, openBlock, normalizeClass, createCommentVNode, createElementVNode, createBlock, renderSlot, createTextVNode, toDisplayString, withCtx, createVNode, unref } from \"vue\";\nimport { b as mdiClose } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-DNXoAooH.mjs\";\nimport { N as NcActions } from \"./NcActions-4R7icatI.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { r as register, A as t19, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t19);\nconst _hoisted_1 = {\n key: 0,\n class: \"nc-chip__icon\"\n};\nconst _hoisted_2 = { class: \"nc-chip__text\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcChip\",\n props: {\n ariaLabelClose: { default: t(\"Close\") },\n actionsContainer: { default: \"body\" },\n text: { default: \"\" },\n iconPath: { default: void 0 },\n iconSvg: { default: void 0 },\n noClose: { type: Boolean },\n variant: { default: \"secondary\" }\n },\n emits: [\"close\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit = __emit;\n const slots = useSlots();\n const canClose = computed(() => !props.noClose);\n const hasActions = () => !!slots.actions;\n const hasIcon = () => Boolean(props.iconPath || props.iconSvg || !!slots.icon);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"nc-chip\", {\n [`nc-chip--${_ctx.variant}`]: true,\n \"nc-chip--no-actions\": _ctx.noClose && !hasActions(),\n \"nc-chip--no-icon\": !hasIcon()\n }])\n }, [\n hasIcon() ? (openBlock(), createElementBlock(\"span\", _hoisted_1, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n _ctx.iconPath || _ctx.iconSvg ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n inline: \"\",\n path: _ctx.iconPath,\n svg: _ctx.iconPath ? void 0 : _ctx.iconSvg,\n size: 18\n }, null, 8, [\"path\", \"svg\"])) : createCommentVNode(\"\", true)\n ], true)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(_ctx.text), 1)\n ], true)\n ]),\n canClose.value || hasActions() ? (openBlock(), createBlock(NcActions, {\n key: 1,\n class: \"nc-chip__actions\",\n container: _ctx.actionsContainer,\n \"force-menu\": !canClose.value,\n variant: \"tertiary-no-background\"\n }, {\n default: withCtx(() => [\n canClose.value ? (openBlock(), createBlock(NcActionButton, {\n key: 0,\n \"close-after-click\": \"\",\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"close\"))\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: unref(mdiClose),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(_ctx.ariaLabelClose), 1)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"container\", \"force-menu\"])) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcChip = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-2aa1d7ea\"]]);\nexport {\n NcChip as N\n};\n//# sourceMappingURL=NcChip-B8jcrLqG.mjs.map\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nconst invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);\n}\nconst tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);\nfunction isTableElement(element) {\n return tableElements.has(getNodeName(element));\n}\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction isTopLayer(element) {\n return topLayerSelectors.some(selector => {\n try {\n return element.matches(selector);\n } catch (_e) {\n return false;\n }\n });\n}\nconst transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];\nconst willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];\nconst containValues = ['paint', 'layout', 'strict', 'content'];\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return transformProperties.some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some(value => (css.willChange || '').includes(value)) || containValues.some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nconst lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);\nfunction isLastTraversableNode(node) {\n return lastTraversableNodeNames.has(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle$1(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n const windowScrollbarX = getWindowScrollBarX(html);\n // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the\n // visual width of the <html> but this is not considered in the size\n // of `html.clientWidth`.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {\n width -= clippingStableScrollbarWidth;\n }\n } else if (windowScrollbarX <= SCROLLBAR_MAX) {\n // If the <body> scrollbar is on the left, the width needs to be extended\n // by the scrollbar amount so there isn't extra space on the right.\n width += windowScrollbarX;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nconst absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (_e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","var E = Object.defineProperty, M = Object.defineProperties;\nvar x = Object.getOwnPropertyDescriptors;\nvar V = Object.getOwnPropertySymbols;\nvar I = Object.prototype.hasOwnProperty, N = Object.prototype.propertyIsEnumerable;\nvar C = (e, t, s) => t in e ? E(e, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : e[t] = s, f = (e, t) => {\n for (var s in t || (t = {}))\n I.call(t, s) && C(e, s, t[s]);\n if (V)\n for (var s of V(t))\n N.call(t, s) && C(e, s, t[s]);\n return e;\n}, m = (e, t) => M(e, x(t));\nimport { openBlock as a, createElementBlock as h, createElementVNode as u, resolveDirective as K, normalizeClass as A, renderSlot as r, normalizeProps as d, guardReactiveProps as c, Fragment as B, renderList as L, createTextVNode as v, toDisplayString as D, createBlock as b, resolveDynamicComponent as _, createCommentVNode as O, mergeProps as k, toHandlers as j, withDirectives as w, vShow as P, createVNode as $, Transition as R, withCtx as z, withModifiers as F } from \"vue\";\nconst U = {\n props: {\n autoscroll: {\n type: Boolean,\n default: !0\n }\n },\n watch: {\n typeAheadPointer() {\n this.autoscroll && this.maybeAdjustScroll();\n },\n open(e) {\n this.autoscroll && e && this.$nextTick(() => this.maybeAdjustScroll());\n }\n },\n methods: {\n maybeAdjustScroll() {\n var t;\n const e = ((t = this.$refs.dropdownMenu) == null ? void 0 : t.children[this.typeAheadPointer]) || !1;\n if (e) {\n const s = this.getDropdownViewport(), { top: n, bottom: l, height: i } = e.getBoundingClientRect();\n if (n < s.top)\n return this.$refs.dropdownMenu.scrollTop = e.offsetTop;\n if (l > s.bottom)\n return this.$refs.dropdownMenu.scrollTop = e.offsetTop - (s.height - i);\n }\n },\n getDropdownViewport() {\n return this.$refs.dropdownMenu ? this.$refs.dropdownMenu.getBoundingClientRect() : {\n height: 0,\n top: 0,\n bottom: 0\n };\n }\n }\n}, q = {\n data() {\n return {\n typeAheadPointer: -1\n };\n },\n watch: {\n filteredOptions() {\n for (let e = 0; e < this.filteredOptions.length; e++)\n if (this.selectable(this.filteredOptions[e])) {\n this.typeAheadPointer = e;\n break;\n }\n },\n open(e) {\n e && this.typeAheadToLastSelected();\n },\n selectedValue() {\n this.open && this.typeAheadToLastSelected();\n }\n },\n methods: {\n typeAheadUp() {\n for (let e = this.typeAheadPointer - 1; e >= 0; e--)\n if (this.selectable(this.filteredOptions[e])) {\n this.typeAheadPointer = e;\n break;\n }\n },\n typeAheadDown() {\n for (let e = this.typeAheadPointer + 1; e < this.filteredOptions.length; e++)\n if (this.selectable(this.filteredOptions[e])) {\n this.typeAheadPointer = e;\n break;\n }\n },\n typeAheadSelect() {\n const e = this.filteredOptions[this.typeAheadPointer];\n e && this.selectable(e) && this.select(e);\n },\n typeAheadToLastSelected() {\n this.typeAheadPointer = this.selectedValue.length !== 0 ? this.filteredOptions.indexOf(this.selectedValue[this.selectedValue.length - 1]) : -1;\n }\n }\n}, J = {\n props: {\n loading: {\n type: Boolean,\n default: !1\n }\n },\n data() {\n return {\n mutableLoading: !1\n };\n },\n watch: {\n search() {\n this.$emit(\"search\", this.search, this.toggleLoading);\n },\n loading(e) {\n this.mutableLoading = e;\n }\n },\n methods: {\n toggleLoading(e = null) {\n return e == null ? this.mutableLoading = !this.mutableLoading : this.mutableLoading = e;\n }\n }\n}, S = (e, t) => {\n const s = e.__vccOpts || e;\n for (const [n, l] of t)\n s[n] = l;\n return s;\n}, H = {}, X = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"10\",\n height: \"10\"\n}, Y = /* @__PURE__ */ u(\"path\", { d: \"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z\" }, null, -1), Q = [\n Y\n];\nfunction G(e, t) {\n return a(), h(\"svg\", X, Q);\n}\nconst W = /* @__PURE__ */ S(H, [[\"render\", G]]), Z = {}, ee = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"14\",\n height: \"10\"\n}, te = /* @__PURE__ */ u(\"path\", { d: \"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z\" }, null, -1), se = [\n te\n];\nfunction ie(e, t) {\n return a(), h(\"svg\", ee, se);\n}\nconst oe = /* @__PURE__ */ S(Z, [[\"render\", ie]]), T = {\n Deselect: W,\n OpenIndicator: oe\n}, ne = {\n mounted(e, { instance: t }) {\n if (t.appendToBody) {\n const {\n height: s,\n top: n,\n left: l,\n width: i\n } = t.$refs.toggle.getBoundingClientRect();\n let y = window.scrollX || window.pageXOffset, o = window.scrollY || window.pageYOffset;\n e.unbindPosition = t.calculatePosition(e, t, {\n width: i + \"px\",\n left: y + l + \"px\",\n top: o + n + s + \"px\"\n }), document.body.appendChild(e);\n }\n },\n unmounted(e, { instance: t }) {\n t.appendToBody && (e.unbindPosition && typeof e.unbindPosition == \"function\" && e.unbindPosition(), e.parentNode && e.parentNode.removeChild(e));\n }\n};\nfunction le(e) {\n const t = {};\n return Object.keys(e).sort().forEach((s) => {\n t[s] = e[s];\n }), JSON.stringify(t);\n}\nlet ae = 0;\nfunction re() {\n return ++ae;\n}\nconst de = {\n components: f({}, T),\n directives: { appendToBody: ne },\n mixins: [U, q, J],\n compatConfig: {\n MODE: 3\n },\n emits: [\n \"open\",\n \"close\",\n \"update:modelValue\",\n \"search\",\n \"search:compositionstart\",\n \"search:compositionend\",\n \"search:keydown\",\n \"search:blur\",\n \"search:focus\",\n \"search:input\",\n \"option:created\",\n \"option:selecting\",\n \"option:selected\",\n \"option:deselecting\",\n \"option:deselected\"\n ],\n props: {\n modelValue: {},\n components: {\n type: Object,\n default: () => ({})\n },\n options: {\n type: Array,\n default() {\n return [];\n }\n },\n disabled: {\n type: Boolean,\n default: !1\n },\n clearable: {\n type: Boolean,\n default: !0\n },\n deselectFromDropdown: {\n type: Boolean,\n default: !1\n },\n searchable: {\n type: Boolean,\n default: !0\n },\n multiple: {\n type: Boolean,\n default: !1\n },\n placeholder: {\n type: String,\n default: \"\"\n },\n transition: {\n type: String,\n default: \"vs__fade\"\n },\n clearSearchOnSelect: {\n type: Boolean,\n default: !0\n },\n closeOnSelect: {\n type: Boolean,\n default: !0\n },\n label: {\n type: String,\n default: \"label\"\n },\n autocomplete: {\n type: String,\n default: \"off\"\n },\n reduce: {\n type: Function,\n default: (e) => e\n },\n selectable: {\n type: Function,\n default: (e) => !0\n },\n getOptionLabel: {\n type: Function,\n default(e) {\n return typeof e == \"object\" ? e.hasOwnProperty(this.label) ? e[this.label] : console.warn(`[vue-select warn]: Label key \"option.${this.label}\" does not exist in options object ${JSON.stringify(e)}.\nhttps://vue-select.org/api/props.html#getoptionlabel`) : e;\n }\n },\n getOptionKey: {\n type: Function,\n default(e) {\n if (typeof e != \"object\")\n return e;\n try {\n return e.hasOwnProperty(\"id\") ? e.id : le(e);\n } catch (t) {\n return console.warn(`[vue-select warn]: Could not stringify this option to generate unique key. Please provide'getOptionKey' prop to return a unique key for each option.\nhttps://vue-select.org/api/props.html#getoptionkey`, e, t);\n }\n }\n },\n onTab: {\n type: Function,\n default: function() {\n this.selectOnTab && !this.isComposing && this.typeAheadSelect();\n }\n },\n taggable: {\n type: Boolean,\n default: !1\n },\n tabindex: {\n type: Number,\n default: null\n },\n pushTags: {\n type: Boolean,\n default: !1\n },\n filterable: {\n type: Boolean,\n default: !0\n },\n filterBy: {\n type: Function,\n default(e, t, s) {\n return (t || \"\").toLocaleLowerCase().indexOf(s.toLocaleLowerCase()) > -1;\n }\n },\n filter: {\n type: Function,\n default(e, t) {\n return e.filter((s) => {\n let n = this.getOptionLabel(s);\n return typeof n == \"number\" && (n = n.toString()), this.filterBy(s, n, t);\n });\n }\n },\n createOption: {\n type: Function,\n default(e) {\n return typeof this.optionList[0] == \"object\" ? { [this.label]: e } : e;\n }\n },\n resetOnOptionsChange: {\n default: !1,\n validator: (e) => [\"function\", \"boolean\"].includes(typeof e)\n },\n clearSearchOnBlur: {\n type: Function,\n default: function({ clearSearchOnSelect: e, multiple: t }) {\n return e && !t;\n }\n },\n noDrop: {\n type: Boolean,\n default: !1\n },\n inputId: {\n type: String\n },\n dir: {\n type: String,\n default: \"auto\"\n },\n selectOnTab: {\n type: Boolean,\n default: !1\n },\n selectOnKeyCodes: {\n type: Array,\n default: () => [13]\n },\n searchInputQuerySelector: {\n type: String,\n default: \"[type=search]\"\n },\n mapKeydown: {\n type: Function,\n default: (e, t) => e\n },\n appendToBody: {\n type: Boolean,\n default: !1\n },\n calculatePosition: {\n type: Function,\n default(e, t, { width: s, top: n, left: l }) {\n e.style.top = n, e.style.left = l, e.style.width = s;\n }\n },\n dropdownShouldOpen: {\n type: Function,\n default({ noDrop: e, open: t, mutableLoading: s }) {\n return e ? !1 : t && !s;\n }\n },\n uid: {\n type: [String, Number],\n default: () => re()\n }\n },\n data() {\n return {\n search: \"\",\n open: !1,\n isComposing: !1,\n pushedTags: [],\n _value: [],\n deselectButtons: []\n };\n },\n computed: {\n isReducingValues() {\n return this.$props.reduce !== this.$options.props.reduce.default;\n },\n isTrackingValues() {\n return typeof this.modelValue == \"undefined\" || this.isReducingValues;\n },\n selectedValue() {\n let e = this.modelValue;\n return this.isTrackingValues && (e = this.$data._value), e != null && e !== \"\" ? [].concat(e) : [];\n },\n optionList() {\n return this.options.concat(this.pushTags ? this.pushedTags : []);\n },\n searchEl() {\n return this.$slots.search ? this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector) : this.$refs.search;\n },\n scope() {\n const e = {\n search: this.search,\n loading: this.loading,\n searching: this.searching,\n filteredOptions: this.filteredOptions\n };\n return {\n search: {\n attributes: f({\n disabled: this.disabled,\n placeholder: this.searchPlaceholder,\n tabindex: this.tabindex,\n readonly: !this.searchable,\n id: this.inputId,\n \"aria-autocomplete\": \"list\",\n \"aria-labelledby\": `vs${this.uid}__combobox`,\n \"aria-controls\": `vs${this.uid}__listbox`,\n ref: \"search\",\n type: \"search\",\n autocomplete: this.autocomplete,\n value: this.search\n }, this.dropdownOpen && this.filteredOptions[this.typeAheadPointer] ? {\n \"aria-activedescendant\": `vs${this.uid}__option-${this.typeAheadPointer}`\n } : {}),\n events: {\n compositionstart: () => this.isComposing = !0,\n compositionend: () => this.isComposing = !1,\n keydown: this.onSearchKeyDown,\n blur: this.onSearchBlur,\n focus: this.onSearchFocus,\n input: (t) => this.search = t.target.value\n }\n },\n spinner: {\n loading: this.mutableLoading\n },\n noOptions: {\n search: this.search,\n loading: this.mutableLoading,\n searching: this.searching\n },\n openIndicator: {\n attributes: {\n ref: \"openIndicator\",\n role: \"presentation\",\n class: \"vs__open-indicator\"\n }\n },\n listHeader: e,\n listFooter: e,\n header: m(f({}, e), { deselect: this.deselect }),\n footer: m(f({}, e), { deselect: this.deselect })\n };\n },\n childComponents() {\n return f(f({}, T), this.components);\n },\n stateClasses() {\n return {\n \"vs--open\": this.dropdownOpen,\n \"vs--single\": !this.multiple,\n \"vs--multiple\": this.multiple,\n \"vs--searching\": this.searching && !this.noDrop,\n \"vs--searchable\": this.searchable && !this.noDrop,\n \"vs--unsearchable\": !this.searchable,\n \"vs--loading\": this.mutableLoading,\n \"vs--disabled\": this.disabled\n };\n },\n searching() {\n return !!this.search;\n },\n dropdownOpen() {\n return this.dropdownShouldOpen(this);\n },\n searchPlaceholder() {\n return this.isValueEmpty && this.placeholder ? this.placeholder : void 0;\n },\n filteredOptions() {\n const e = [].concat(this.optionList);\n if (!this.filterable && !this.taggable)\n return e;\n const t = this.search.length ? this.filter(e, this.search, this) : e;\n if (this.taggable && this.search.length) {\n const s = this.createOption(this.search);\n this.optionExists(s) || t.unshift(s);\n }\n return t;\n },\n isValueEmpty() {\n return this.selectedValue.length === 0;\n },\n showClearButton() {\n return !this.multiple && this.clearable && !this.open && !this.isValueEmpty;\n }\n },\n watch: {\n options(e, t) {\n const s = () => typeof this.resetOnOptionsChange == \"function\" ? this.resetOnOptionsChange(e, t, this.selectedValue) : this.resetOnOptionsChange;\n !this.taggable && s() && this.clearSelection(), this.modelValue && this.isTrackingValues && this.setInternalValueFromOptions(this.modelValue);\n },\n modelValue: {\n immediate: !0,\n handler(e) {\n this.isTrackingValues && this.setInternalValueFromOptions(e);\n }\n },\n multiple() {\n this.clearSelection();\n },\n open(e) {\n this.$emit(e ? \"open\" : \"close\");\n }\n },\n created() {\n this.mutableLoading = this.loading;\n },\n methods: {\n setInternalValueFromOptions(e) {\n Array.isArray(e) ? this.$data._value = e.map((t) => this.findOptionFromReducedValue(t)) : this.$data._value = this.findOptionFromReducedValue(e);\n },\n select(e) {\n this.$emit(\"option:selecting\", e), this.isOptionSelected(e) ? this.deselectFromDropdown && (this.clearable || this.multiple && this.selectedValue.length > 1) && this.deselect(e) : (this.taggable && !this.optionExists(e) && (this.$emit(\"option:created\", e), this.pushTag(e)), this.multiple && (e = this.selectedValue.concat(e)), this.updateValue(e), this.$emit(\"option:selected\", e)), this.onAfterSelect(e);\n },\n deselect(e) {\n this.$emit(\"option:deselecting\", e), this.updateValue(this.selectedValue.filter((t) => !this.optionComparator(t, e))), this.$emit(\"option:deselected\", e);\n },\n clearSelection() {\n this.updateValue(this.multiple ? [] : null);\n },\n onAfterSelect(e) {\n this.closeOnSelect && (this.open = !this.open, this.searchEl.blur()), this.clearSearchOnSelect && (this.search = \"\");\n },\n updateValue(e) {\n typeof this.modelValue == \"undefined\" && (this.$data._value = e), e !== null && (Array.isArray(e) ? e = e.map((t) => this.reduce(t)) : e = this.reduce(e)), this.$emit(\"update:modelValue\", e);\n },\n toggleDropdown(e) {\n const t = e.target !== this.searchEl;\n t && e.preventDefault();\n const s = [\n ...this.deselectButtons || [],\n this.$refs.clearButton\n ];\n if (this.searchEl === void 0 || s.filter(Boolean).some((n) => n.contains(e.target) || n === e.target)) {\n e.preventDefault();\n return;\n }\n this.open && t ? this.searchEl.blur() : this.disabled || (this.open = !0, this.searchEl.focus());\n },\n isOptionSelected(e) {\n return this.selectedValue.some((t) => this.optionComparator(t, e));\n },\n isOptionDeselectable(e) {\n return this.isOptionSelected(e) && this.deselectFromDropdown;\n },\n optionComparator(e, t) {\n return this.getOptionKey(e) === this.getOptionKey(t);\n },\n findOptionFromReducedValue(e) {\n const t = (n) => JSON.stringify(this.reduce(n)) === JSON.stringify(e), s = [...this.options, ...this.pushedTags].filter(t);\n return s.length === 1 ? s[0] : s.find((n) => this.optionComparator(n, this.$data._value)) || e;\n },\n closeSearchOptions() {\n this.open = !1, this.$emit(\"search:blur\");\n },\n maybeDeleteValue() {\n if (!this.searchEl.value.length && this.selectedValue && this.selectedValue.length && this.clearable) {\n let e = null;\n this.multiple && (e = [\n ...this.selectedValue.slice(0, this.selectedValue.length - 1)\n ]), this.updateValue(e);\n }\n },\n optionExists(e) {\n return this.optionList.some((t) => this.optionComparator(t, e));\n },\n normalizeOptionForSlot(e) {\n return typeof e == \"object\" ? e : { [this.label]: e };\n },\n pushTag(e) {\n this.pushedTags.push(e);\n },\n onEscape() {\n this.search.length ? this.search = \"\" : this.searchEl.blur();\n },\n onSearchBlur() {\n if (this.mousedown && !this.searching)\n this.mousedown = !1;\n else {\n const { clearSearchOnSelect: e, multiple: t } = this;\n this.clearSearchOnBlur({ clearSearchOnSelect: e, multiple: t }) && (this.search = \"\"), this.closeSearchOptions();\n return;\n }\n if (this.search.length === 0 && this.options.length === 0) {\n this.closeSearchOptions();\n return;\n }\n },\n onSearchFocus() {\n this.open = !0, this.$emit(\"search:focus\");\n },\n onMousedown() {\n this.mousedown = !0;\n },\n onMouseUp() {\n this.mousedown = !1;\n },\n onSearchKeyDown(e) {\n const t = (l) => (l.preventDefault(), !this.isComposing && this.typeAheadSelect()), s = {\n 8: (l) => this.maybeDeleteValue(),\n 9: (l) => this.onTab(),\n 27: (l) => this.onEscape(),\n 38: (l) => (l.preventDefault(), this.typeAheadUp()),\n 40: (l) => (l.preventDefault(), this.typeAheadDown())\n };\n this.selectOnKeyCodes.forEach((l) => s[l] = t);\n const n = this.mapKeydown(s, this);\n if (typeof n[e.keyCode] == \"function\")\n return n[e.keyCode](e);\n }\n }\n}, he = [\"dir\"], ce = [\"id\", \"aria-expanded\", \"aria-owns\"], ue = {\n ref: \"selectedOptions\",\n class: \"vs__selected-options\"\n}, pe = [\"disabled\", \"title\", \"aria-label\", \"onClick\"], fe = {\n ref: \"actions\",\n class: \"vs__actions\"\n}, ge = [\"disabled\"], ye = { class: \"vs__spinner\" }, me = [\"id\"], be = [\"id\", \"aria-selected\", \"onMouseover\", \"onClick\"], _e = {\n key: 0,\n class: \"vs__no-options\"\n}, Oe = /* @__PURE__ */ v(\" Sorry, no matching options. \"), we = [\"id\"];\nfunction ve(e, t, s, n, l, i) {\n const y = K(\"append-to-body\");\n return a(), h(\"div\", {\n dir: s.dir,\n class: A([\"v-select\", i.stateClasses])\n }, [\n r(e.$slots, \"header\", d(c(i.scope.header))),\n u(\"div\", {\n id: `vs${s.uid}__combobox`,\n ref: \"toggle\",\n class: \"vs__dropdown-toggle\",\n role: \"combobox\",\n \"aria-expanded\": i.dropdownOpen.toString(),\n \"aria-owns\": `vs${s.uid}__listbox`,\n \"aria-label\": \"Search for option\",\n onMousedown: t[1] || (t[1] = (o) => i.toggleDropdown(o))\n }, [\n u(\"div\", ue, [\n (a(!0), h(B, null, L(i.selectedValue, (o, p) => r(e.$slots, \"selected-option-container\", {\n option: i.normalizeOptionForSlot(o),\n deselect: i.deselect,\n multiple: s.multiple,\n disabled: s.disabled\n }, () => [\n (a(), h(\"span\", {\n key: s.getOptionKey(o),\n class: \"vs__selected\"\n }, [\n r(e.$slots, \"selected-option\", d(c(i.normalizeOptionForSlot(o))), () => [\n v(D(s.getOptionLabel(o)), 1)\n ]),\n s.multiple ? (a(), h(\"button\", {\n key: 0,\n ref_for: !0,\n ref: (g) => l.deselectButtons[p] = g,\n disabled: s.disabled,\n type: \"button\",\n class: \"vs__deselect\",\n title: `Deselect ${s.getOptionLabel(o)}`,\n \"aria-label\": `Deselect ${s.getOptionLabel(o)}`,\n onClick: (g) => i.deselect(o)\n }, [\n (a(), b(_(i.childComponents.Deselect)))\n ], 8, pe)) : O(\"\", !0)\n ]))\n ])), 256)),\n r(e.$slots, \"search\", d(c(i.scope.search)), () => [\n u(\"input\", k({ class: \"vs__search\" }, i.scope.search.attributes, j(i.scope.search.events)), null, 16)\n ])\n ], 512),\n u(\"div\", fe, [\n w(u(\"button\", {\n ref: \"clearButton\",\n disabled: s.disabled,\n type: \"button\",\n class: \"vs__clear\",\n title: \"Clear Selected\",\n \"aria-label\": \"Clear Selected\",\n onClick: t[0] || (t[0] = (...o) => i.clearSelection && i.clearSelection(...o))\n }, [\n (a(), b(_(i.childComponents.Deselect)))\n ], 8, ge), [\n [P, i.showClearButton]\n ]),\n r(e.$slots, \"open-indicator\", d(c(i.scope.openIndicator)), () => [\n s.noDrop ? O(\"\", !0) : (a(), b(_(i.childComponents.OpenIndicator), d(k({ key: 0 }, i.scope.openIndicator.attributes)), null, 16))\n ]),\n r(e.$slots, \"spinner\", d(c(i.scope.spinner)), () => [\n w(u(\"div\", ye, \"Loading...\", 512), [\n [P, e.mutableLoading]\n ])\n ])\n ], 512)\n ], 40, ce),\n $(R, { name: s.transition }, {\n default: z(() => [\n i.dropdownOpen ? w((a(), h(\"ul\", {\n id: `vs${s.uid}__listbox`,\n ref: \"dropdownMenu\",\n key: `vs${s.uid}__listbox`,\n class: \"vs__dropdown-menu\",\n role: \"listbox\",\n tabindex: \"-1\",\n onMousedown: t[2] || (t[2] = F((...o) => i.onMousedown && i.onMousedown(...o), [\"prevent\"])),\n onMouseup: t[3] || (t[3] = (...o) => i.onMouseUp && i.onMouseUp(...o))\n }, [\n r(e.$slots, \"list-header\", d(c(i.scope.listHeader))),\n (a(!0), h(B, null, L(i.filteredOptions, (o, p) => (a(), h(\"li\", {\n id: `vs${s.uid}__option-${p}`,\n key: s.getOptionKey(o),\n role: \"option\",\n class: A([\"vs__dropdown-option\", {\n \"vs__dropdown-option--deselect\": i.isOptionDeselectable(o) && p === e.typeAheadPointer,\n \"vs__dropdown-option--selected\": i.isOptionSelected(o),\n \"vs__dropdown-option--highlight\": p === e.typeAheadPointer,\n \"vs__dropdown-option--disabled\": !s.selectable(o)\n }]),\n \"aria-selected\": p === e.typeAheadPointer ? !0 : null,\n onMouseover: (g) => s.selectable(o) ? e.typeAheadPointer = p : null,\n onClick: F((g) => s.selectable(o) ? i.select(o) : null, [\"prevent\", \"stop\"])\n }, [\n r(e.$slots, \"option\", d(c(i.normalizeOptionForSlot(o))), () => [\n v(D(s.getOptionLabel(o)), 1)\n ])\n ], 42, be))), 128)),\n i.filteredOptions.length === 0 ? (a(), h(\"li\", _e, [\n r(e.$slots, \"no-options\", d(c(i.scope.noOptions)), () => [\n Oe\n ])\n ])) : O(\"\", !0),\n r(e.$slots, \"list-footer\", d(c(i.scope.listFooter)))\n ], 40, me)), [\n [y]\n ]) : (a(), h(\"ul\", {\n key: 1,\n id: `vs${s.uid}__listbox`,\n role: \"listbox\",\n style: { display: \"none\", visibility: \"hidden\" }\n }, null, 8, we))\n ]),\n _: 3\n }, 8, [\"name\"]),\n r(e.$slots, \"footer\", d(c(i.scope.footer)))\n ], 10, he);\n}\nconst Ce = /* @__PURE__ */ S(de, [[\"render\", ve]]);\nexport {\n Ce as default\n};\n","import { defineComponent, h } from \"vue\";\n/*!\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction findRanges(text, search) {\n const ranges = [];\n let currentIndex = 0;\n let index = text.toLowerCase().indexOf(search.toLowerCase(), currentIndex);\n let i = 0;\n while (index > -1 && i++ < text.length) {\n currentIndex = index + search.length;\n ranges.push({ start: index, end: currentIndex });\n index = text.toLowerCase().indexOf(search.toLowerCase(), currentIndex);\n }\n return ranges;\n}\nconst _sfc_main = defineComponent({\n name: \"NcHighlight\",\n props: {\n /**\n * The string to display\n */\n text: {\n type: String,\n default: \"\"\n },\n /**\n * The string to match and highlight\n */\n search: {\n type: String,\n default: \"\"\n },\n /**\n * The ranges to highlight, takes precedence over the search prop.\n */\n highlight: {\n type: Array,\n default: () => []\n }\n },\n computed: {\n /**\n * The indice ranges which should be highlighted.\n * If an array with ranges is provided, we use it. Otherwise\n * we calculate it based on the provided substring to highlight.\n *\n * @return The array of ranges to highlight\n */\n ranges() {\n let ranges = [];\n if (!this.search && this.highlight.length === 0) {\n return ranges;\n }\n if (this.highlight.length > 0) {\n ranges = this.highlight;\n } else {\n ranges = findRanges(this.text, this.search);\n }\n ranges.forEach((range, i) => {\n if (range.end < range.start) {\n ranges[i] = {\n start: range.end,\n end: range.start\n };\n }\n });\n ranges = ranges.reduce((validRanges, range) => {\n if (range.start < this.text.length && range.end > 0) {\n validRanges.push({\n start: range.start < 0 ? 0 : range.start,\n end: range.end > this.text.length ? this.text.length : range.end\n });\n }\n return validRanges;\n }, []);\n ranges.sort((a, b) => {\n return a.start - b.start;\n });\n ranges = ranges.reduce((mergedRanges, range) => {\n if (!mergedRanges.length) {\n mergedRanges.push(range);\n } else {\n const idx = mergedRanges.length - 1;\n if (mergedRanges[idx].end >= range.start) {\n mergedRanges[idx] = {\n start: mergedRanges[idx].start,\n end: Math.max(mergedRanges[idx].end, range.end)\n };\n } else {\n mergedRanges.push(range);\n }\n }\n return mergedRanges;\n }, []);\n return ranges;\n },\n /**\n * Calculate the different chunks to show based on the ranges to highlight.\n */\n chunks() {\n if (this.ranges.length === 0) {\n return [{\n start: 0,\n end: this.text.length,\n highlight: false,\n text: this.text\n }];\n }\n const chunks = [];\n let currentIndex = 0;\n let currentRange = 0;\n while (currentIndex < this.text.length) {\n const range = this.ranges[currentRange];\n if (range.start === currentIndex) {\n chunks.push({\n ...range,\n highlight: true,\n text: this.text.slice(range.start, range.end)\n });\n currentRange++;\n currentIndex = range.end;\n if (currentRange >= this.ranges.length && currentIndex < this.text.length) {\n chunks.push({\n start: currentIndex,\n end: this.text.length,\n highlight: false,\n text: this.text.slice(currentIndex)\n });\n currentIndex = this.text.length;\n }\n continue;\n }\n chunks.push({\n start: currentIndex,\n end: range.start,\n highlight: false,\n text: this.text.slice(currentIndex, range.start)\n });\n currentIndex = range.start;\n }\n return chunks;\n }\n },\n /**\n * The render function to display the component\n */\n render() {\n if (!this.ranges.length) {\n return h(\"span\", {}, this.text);\n }\n return h(\"span\", {}, this.chunks.map((chunk) => {\n return chunk.highlight ? h(\"strong\", {}, chunk.text) : chunk.text;\n }));\n }\n});\nexport {\n _sfc_main as _,\n findRanges as f\n};\n//# sourceMappingURL=NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs.map\n","import '../assets/NcEllipsisedOption-CPWbbgBy.css';\nimport { _ as _sfc_main$1, f as findRanges } from \"./NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs\";\nimport { resolveComponent, createElementBlock, openBlock, createVNode, createBlock, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcEllipsisedOption\",\n components: {\n NcHighlight: _sfc_main$1\n },\n props: {\n /**\n * The text to be display in one line. If it is longer than 10 characters, it is be truncated with ellipsis in the end but keeping up to 10 last characters to fit the parent container.\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * The search value to highlight in the text\n */\n search: {\n type: String,\n default: \"\"\n }\n },\n computed: {\n needsTruncate() {\n return this.name && this.name.length >= 10;\n },\n /**\n * Index at which to split the name if it is longer than 10 characters.\n *\n * @return {number} The position at which to split\n */\n split() {\n return this.name.length - Math.min(Math.floor(this.name.length / 2), 10);\n },\n part1() {\n if (this.needsTruncate) {\n return this.name.slice(0, this.split);\n }\n return this.name;\n },\n part2() {\n if (this.needsTruncate) {\n return this.name.slice(this.split);\n }\n return \"\";\n },\n /**\n * The ranges to highlight. Since we split the string for ellipsising,\n * the Highlight component cannot figure this out itself and needs the ranges provided.\n *\n * @return {Array} The array with the ranges to highlight\n */\n highlight1() {\n if (!this.search) {\n return [];\n }\n return findRanges(this.name, this.search);\n },\n /**\n * We shift the ranges for the second part by the position of the split.\n * Ranges out of the string length are discarded by the Highlight component,\n * so we don't need to take care of this here.\n *\n * @return {Array} The array with the ranges to highlight\n */\n highlight2() {\n return this.highlight1.map((range) => {\n return {\n start: range.start - this.split,\n end: range.end - this.split\n };\n });\n }\n }\n};\nconst _hoisted_1 = [\"title\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n return openBlock(), createElementBlock(\"span\", {\n dir: \"auto\",\n class: \"name-parts\",\n title: $props.name\n }, [\n createVNode(_component_NcHighlight, {\n class: \"name-parts__first\",\n text: $options.part1,\n search: $props.search,\n highlight: $options.highlight1\n }, null, 8, [\"text\", \"search\", \"highlight\"]),\n $options.part2 ? (openBlock(), createBlock(_component_NcHighlight, {\n key: 0,\n class: \"name-parts__last\",\n text: $options.part2,\n search: $props.search,\n highlight: $options.highlight2\n }, null, 8, [\"text\", \"search\", \"highlight\"])) : createCommentVNode(\"\", true)\n ], 8, _hoisted_1);\n}\nconst NcEllipsisedOption = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-a612f185\"]]);\nexport {\n NcEllipsisedOption as N\n};\n//# sourceMappingURL=NcEllipsisedOption-dT-CtXYp.mjs.map\n","import '../assets/NcSelect-ZnE_MlqV.css';\nimport { autoUpdate, computePosition, offset, flip, shift, limitShift } from \"@floating-ui/dom\";\nimport { h, resolveComponent, createBlock, openBlock, mergeProps, createSlots, withCtx, createTextVNode, toDisplayString, createCommentVNode, renderSlot, createVNode, normalizeProps, guardReactiveProps, createElementVNode, toHandlers, renderList, warn } from \"vue\";\nimport VueSelect from \"vue-select\";\nimport { C as ChevronDown } from \"./ChevronDown-FiGpp0KT.mjs\";\nimport { I as IconClose } from \"./Close-D6ngJ4t9.mjs\";\nimport { N as NcEllipsisedOption } from \"./NcEllipsisedOption-dT-CtXYp.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-b_ajZ_nQ.mjs\";\nimport { r as register, g as t17, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { i as isLegacy } from \"./legacy-DcjXBL_t.mjs\";\nimport \"vue-select/dist/vue-select.css\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t17);\nconst _sfc_main = {\n name: \"NcSelect\",\n components: {\n ChevronDown,\n NcEllipsisedOption,\n NcLoadingIcon,\n VueSelect\n },\n props: {\n // Add VueSelect props to $props\n ...VueSelect.props,\n ...VueSelect.mixins.reduce((allProps, mixin) => ({ ...allProps, ...mixin.props }), {}),\n /**\n * `aria-label` for the clear input button\n */\n ariaLabelClearSelected: {\n type: String,\n default: t(\"Clear selected\")\n },\n /**\n * `aria-label` for the search input\n *\n * A descriptive `inputLabel` is preferred as this is not visible.\n */\n ariaLabelCombobox: {\n type: String,\n default: null\n },\n /**\n * `aria-label` for the listbox element\n */\n ariaLabelListbox: {\n type: String,\n default: t(\"Options\")\n },\n /**\n * Allows to customize the `aria-label` for the deselect-option button\n * The default is \"Deselect \" + optionLabel\n *\n * @type {(optionLabel: string) => string}\n */\n ariaLabelDeselectOption: {\n type: Function,\n default: (optionLabel) => t(\"Deselect {option}\", { option: optionLabel })\n },\n /**\n * Append the dropdown element to the end of the body\n * and size/position it dynamically.\n *\n * @see https://vue-select.org/api/props.html#appendtobody\n */\n appendToBody: {\n type: Boolean,\n default: true\n },\n /**\n * When `appendToBody` is true, this function is responsible for\n * positioning the drop down list.\n *\n * If a function is returned from `calculatePosition`, it will\n * be called when the drop down list is removed from the DOM.\n * This allows for any garbage collection you may need to do.\n *\n * @see https://vue-select.org/api/props.html#calculateposition\n */\n calculatePosition: {\n type: Function,\n default: null\n },\n /**\n * Keep the dropdown open after selecting an option.\n *\n * @default false\n * @since 8.25.0\n */\n keepOpen: {\n type: Boolean,\n default: false\n },\n /**\n * Replace default vue-select components\n *\n * @see https://vue-select.org/api/props.html#components\n */\n components: {\n type: Object,\n default: () => ({\n Deselect: {\n render: () => h(IconClose, {\n size: 20,\n fillColor: \"var(--vs-controls-color)\",\n style: [\n { cursor: \"pointer\" }\n ]\n })\n }\n })\n },\n /**\n * Sets the maximum number of options to display in the dropdown list\n */\n limit: {\n type: Number,\n default: null\n },\n /**\n * Disable the component\n *\n * @see https://vue-select.org/api/props.html#disabled\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Determines whether the dropdown should be open.\n * Receives the component instance as the only argument.\n *\n * @see https://vue-select.org/api/props.html#dropdownshouldopen\n */\n dropdownShouldOpen: {\n type: Function,\n default: ({ noDrop, open }) => {\n return noDrop ? false : open;\n }\n },\n /**\n * Callback to determine if the provided option should\n * match the current search text. Used to determine\n * if the option should be displayed.\n *\n * Defaults to the internal vue-select function documented at the link\n * below\n *\n * @see https://vue-select.org/api/props.html#filterby\n */\n filterBy: {\n type: Function,\n default: null\n },\n /**\n * Class for the `input`\n *\n * Necessary for use in NcActionInput\n */\n inputClass: {\n type: [String, Object],\n default: null\n },\n /**\n * Input element id\n */\n inputId: {\n type: String,\n default: () => createElementId()\n },\n /**\n * Visible label for the input element\n */\n inputLabel: {\n type: String,\n default: null\n },\n /**\n * Pass true if you are using an external label\n */\n labelOutside: {\n type: Boolean,\n default: false\n },\n /**\n * Display a visible border around dropdown options\n * which have keyboard focus\n */\n keyboardFocusBorder: {\n type: Boolean,\n default: true\n },\n /**\n * Key of the displayed label for object options\n *\n * Defaults to the internal vue-select string documented at the link\n * below\n *\n * @see https://vue-select.org/api/props.html#label\n */\n label: {\n type: String,\n default: null\n },\n /**\n * Show the loading icon\n *\n * @see https://vue-select.org/api/props.html#loading\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Allow selection of multiple options\n *\n * @see https://vue-select.org/api/props.html#multiple\n */\n multiple: {\n type: Boolean,\n default: false\n },\n /**\n * Disable automatic wrapping when selected options overflow the width\n */\n noWrap: {\n type: Boolean,\n default: false\n },\n /**\n * Array of options\n *\n * @type {Array<string | number | Record<string | number, any>>}\n *\n * @see https://vue-select.org/api/props.html#options\n */\n options: {\n type: Array,\n default: () => []\n },\n /**\n * Placeholder text\n *\n * @see https://vue-select.org/api/props.html#placeholder\n */\n placeholder: {\n type: String,\n default: \"\"\n },\n /**\n * Customized component's response to keydown events while the search input has focus\n *\n * @see https://vue-select.org/guide/keydown.html#mapkeydown\n */\n mapKeydown: {\n type: Function,\n /**\n * Patched Vue-Select keydown events handlers map to stop Escape propagation in open select\n *\n * @param {Record<number, Function>} map - Mapped keyCode to handlers { <keyCode>:<callback> }\n * @param {import('@nextcloud/vue-select').VueSelect} vm - VueSelect instance\n * @return {Record<number, Function>} patched keydown event handlers\n */\n default(map, vm) {\n return {\n ...map,\n /**\n * Patched Escape handler to stop propagation from open select\n *\n * @param {KeyboardEvent} event - default keydown event handler\n */\n 27: (event) => {\n if (vm.open) {\n event.stopPropagation();\n }\n map[27](event);\n }\n };\n }\n },\n /**\n * A unique identifier used to generate IDs and DOM attributes. Must be unique for every instance of the component.\n *\n * @see https://vue-select.org/api/props.html#uid\n */\n uid: {\n type: String,\n default: () => createElementId()\n },\n /**\n * When `appendToBody` is true, this sets the placement of the dropdown\n *\n * @type {'bottom' | 'top'}\n */\n placement: {\n type: String,\n default: \"bottom\"\n },\n /**\n * If false, the focused dropdown option will not be reset when filtered\n * options change\n */\n resetFocusOnOptionsChange: {\n type: Boolean,\n default: true\n },\n /**\n * Currently selected value\n *\n * The `v-model` directive may be used for two-way data binding\n *\n * @type {string | number | Record<string | number, any> | Array<any>}\n *\n * @see https://vue-select.org/api/props.html#value\n */\n modelValue: {\n type: [String, Number, Object, Array],\n default: null\n },\n /**\n * Enable if a value is required for native form validation\n */\n required: {\n type: Boolean,\n default: false\n },\n /**\n * Any available prop\n *\n * @see https://vue-select.org/api/props.html\n */\n // Not an actual prop but needed to show in vue-styleguidist docs\n // eslint-disable-next-line\n \" \": {}\n },\n emits: [\n /**\n * All events from https://vue-select.org/api/events.html\n */\n // Not an actual event but needed to show in vue-styleguidist docs\n \" \",\n \"update:modelValue\"\n ],\n setup() {\n const clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-clickable-area\"));\n const gridBaseLine = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-grid-baseline\"));\n const avatarSize = clickableArea - 2 * gridBaseLine;\n return {\n avatarSize,\n isLegacy\n };\n },\n data() {\n return {\n search: \"\"\n };\n },\n computed: {\n inputRequired() {\n if (!this.required) {\n return null;\n }\n return this.modelValue === null || Array.isArray(this.modelValue) && this.modelValue.length === 0;\n },\n localCalculatePosition() {\n if (this.calculatePosition !== null) {\n return this.calculatePosition;\n }\n return (dropdownMenu, component, { width }) => {\n dropdownMenu.style.width = width;\n const addClass = {\n name: \"addClass\",\n fn() {\n dropdownMenu.classList.add(\"vs__dropdown-menu--floating\");\n return {};\n }\n };\n const togglePlacementClass = {\n name: \"togglePlacementClass\",\n fn({ placement }) {\n component.$el.classList.toggle(\n \"select--drop-up\",\n placement === \"top\"\n );\n dropdownMenu.classList.toggle(\n \"vs__dropdown-menu--floating-placement-top\",\n placement === \"top\"\n );\n return {};\n }\n };\n const updatePosition = () => {\n computePosition(component.$refs.toggle, dropdownMenu, {\n placement: this.placement,\n middleware: [\n offset(-1),\n addClass,\n togglePlacementClass,\n // Match popperjs default collision prevention behavior by appending the following middleware in order\n flip(),\n shift({ limiter: limitShift() })\n ]\n }).then(({ x, y }) => {\n Object.assign(dropdownMenu.style, {\n left: `${x}px`,\n top: `${y}px`,\n width: `${component.$refs.toggle.getBoundingClientRect().width}px`\n });\n });\n };\n const cleanup = autoUpdate(\n component.$refs.toggle,\n dropdownMenu,\n updatePosition\n );\n return cleanup;\n };\n },\n localFilterBy() {\n return this.filterBy ?? VueSelect.props.filterBy.default;\n },\n localLabel() {\n return this.label ?? VueSelect.props.label.default;\n },\n propsToForward() {\n const vueSelectKeys = [\n ...Object.keys(VueSelect.props),\n ...VueSelect.mixins.flatMap((mixin) => Object.keys(mixin.props ?? {}))\n ];\n const initialPropsToForward = Object.fromEntries(Object.entries(this.$props).filter(([key, _value]) => vueSelectKeys.includes(key)));\n const propsToForward = {\n ...initialPropsToForward,\n // Custom overrides of vue-select props\n calculatePosition: this.localCalculatePosition,\n closeOnSelect: !this.keepOpen,\n filterBy: this.localFilterBy,\n label: this.localLabel\n };\n return propsToForward;\n }\n },\n mounted() {\n if (!this.labelOutside && !this.inputLabel && !this.ariaLabelCombobox) {\n warn(\"[NcSelect] An `inputLabel` or `ariaLabelCombobox` should be set. If an external label is used, `labelOutside` should be set to `true`.\");\n }\n if (this.inputLabel && this.ariaLabelCombobox) {\n warn(\"[NcSelect] Only one of `inputLabel` or `ariaLabelCombobox` should to be set.\");\n }\n },\n methods: {\n t\n }\n};\nconst _hoisted_1 = [\"for\"];\nconst _hoisted_2 = [\"required\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ChevronDown = resolveComponent(\"ChevronDown\");\n const _component_NcEllipsisedOption = resolveComponent(\"NcEllipsisedOption\");\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_VueSelect = resolveComponent(\"VueSelect\");\n return openBlock(), createBlock(_component_VueSelect, mergeProps({\n class: [\"select\", {\n \"select--legacy\": $setup.isLegacy,\n \"select--no-wrap\": $props.noWrap\n }]\n }, $options.propsToForward, {\n onSearch: _cache[0] || (_cache[0] = ($event) => $data.search = $event),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"update:modelValue\", $event))\n }), createSlots({\n search: withCtx(({ attributes, events }) => [\n createElementVNode(\"input\", mergeProps({\n class: [\"vs__search\", [$props.inputClass]]\n }, attributes, {\n required: $options.inputRequired,\n dir: \"auto\"\n }, toHandlers(events, true)), null, 16, _hoisted_2)\n ]),\n \"open-indicator\": withCtx(({ attributes }) => [\n createVNode(_component_ChevronDown, mergeProps(attributes, {\n \"fill-color\": \"var(--vs-controls-color)\",\n style: {\n cursor: !$props.disabled ? \"pointer\" : null\n },\n size: 26\n }), null, 16, [\"style\"])\n ]),\n option: withCtx((option) => [\n renderSlot(_ctx.$slots, \"option\", normalizeProps(guardReactiveProps(option)), () => [\n createVNode(_component_NcEllipsisedOption, {\n name: String(option[$options.localLabel]),\n search: $data.search\n }, null, 8, [\"name\", \"search\"])\n ])\n ]),\n \"selected-option\": withCtx((selectedOption) => [\n renderSlot(_ctx.$slots, \"selected-option\", { vBind: selectedOption }, () => [\n createVNode(_component_NcEllipsisedOption, {\n name: String(selectedOption[$options.localLabel]),\n search: $data.search\n }, null, 8, [\"name\", \"search\"])\n ])\n ]),\n spinner: withCtx((spinner) => [\n spinner.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : createCommentVNode(\"\", true)\n ]),\n \"no-options\": withCtx(() => [\n createTextVNode(toDisplayString($options.t(\"No results\")), 1)\n ]),\n _: 2\n }, [\n !$props.labelOutside && $props.inputLabel ? {\n name: \"header\",\n fn: withCtx(() => [\n createElementVNode(\"label\", {\n for: $props.inputId,\n class: \"select__label\"\n }, toDisplayString($props.inputLabel), 9, _hoisted_1)\n ]),\n key: \"0\"\n } : void 0,\n renderList(_ctx.$slots, (_, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1040, [\"class\"]);\n}\nconst NcSelect = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n NcSelect as N\n};\n//# sourceMappingURL=NcSelect-Cc9_a8nG.mjs.map\n","import '../assets/NcCollectionList-C7OiUQQ-.css';\nimport debounce from \"debounce\";\nimport { resolveComponent, createElementBlock, openBlock, createVNode, createCommentVNode, toDisplayString, withModifiers, normalizeClass, withDirectives, createElementVNode, vModelText, Fragment, renderList, createBlock, resolveDynamicComponent, withCtx, createTextVNode, Transition, ref } from \"vue\";\nimport { r as register, L as t28, a as t, M as t6 } from \"./_l10n-CgsPi8nC.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-DNXoAooH.mjs\";\nimport { N as NcActions } from \"./NcActions-4R7icatI.mjs\";\nimport { N as NcAvatar } from \"./NcAvatar-CK_dTsmT.mjs\";\nimport { g as getRoute } from \"./autolink-U5pBzLgI.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcSelect } from \"./NcSelect-Cc9_a8nG.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nregister(t28);\nconst _sfc_main$1 = {\n name: \"NcCollectionListItem\",\n components: {\n NcAvatar,\n NcActions,\n NcActionButton\n },\n props: {\n /**\n * The collection\n */\n collection: {\n type: Object,\n default: null\n },\n /**\n * Current error if any\n */\n error: {\n type: String,\n default: void 0\n }\n },\n emits: [\n \"removeResource\",\n \"renameCollection\"\n ],\n data() {\n return {\n detailsOpen: false,\n newName: null\n };\n },\n computed: {\n getIcon() {\n return (resource) => [resource.iconClass];\n },\n typeClass() {\n return (resource) => \"resource-type-\" + resource.type;\n },\n resources() {\n return this.collection.resources?.filter((resource) => !Array.isArray(resource)) ?? [];\n },\n getComponent() {\n return (resource) => {\n const route = getRoute(this.$router, resource.link);\n return route ? { component: \"router-link\", to: route, href: void 0 } : { component: \"a\", to: void 0, href: resource.link };\n };\n },\n iconUrl() {\n return (resource) => {\n if (resource.mimetype) {\n return OC.MimeType.getIconUrl(resource.mimetype);\n }\n if (resource.iconUrl) {\n return resource.iconUrl;\n }\n return \"\";\n };\n }\n },\n methods: {\n t,\n toggleDetails() {\n this.detailsOpen = !this.detailsOpen;\n },\n showDetails() {\n this.detailsOpen = true;\n },\n removeResource(collection, resource) {\n this.$emit(\"removeResource\", {\n collectionId: collection.id,\n resourceType: resource.type,\n resourceId: resource.id\n });\n },\n openRename() {\n this.newName = this.collection.name;\n },\n renameCollection() {\n if (this.newName) {\n this.$emit(\"renameCollection\", {\n collectionId: this.collection.id,\n name: this.newName\n });\n }\n this.newName = null;\n }\n }\n};\nconst _hoisted_1$1 = { class: \"collection-list-item\" };\nconst _hoisted_2$1 = {\n key: 2,\n class: \"linked-icons\"\n};\nconst _hoisted_3$1 = [\"src\", \"alt\"];\nconst _hoisted_4$1 = {\n key: 3,\n class: \"sharingOptionsGroup\"\n};\nconst _hoisted_5$1 = {\n key: 0,\n class: \"error\"\n};\nconst _hoisted_6$1 = {\n key: 0,\n class: \"resource-list-details\"\n};\nconst _hoisted_7$1 = [\"src\", \"alt\"];\nconst _hoisted_8$1 = { class: \"resource-name\" };\nconst _hoisted_9 = [\"onClick\"];\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAvatar = resolveComponent(\"NcAvatar\");\n const _component_NcActionButton = resolveComponent(\"NcActionButton\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n return openBlock(), createElementBlock(\"li\", _hoisted_1$1, [\n createVNode(_component_NcAvatar, {\n \"display-name\": $props.collection.name,\n \"allow-placeholder\": \"\",\n class: \"collection-avatar\"\n }, null, 8, [\"display-name\"]),\n $data.newName === null ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: \"collection-item-name\",\n title: \"\",\n onClick: _cache[0] || (_cache[0] = (...args) => $options.showDetails && $options.showDetails(...args))\n }, toDisplayString($props.collection.name), 1)) : (openBlock(), createElementBlock(\"form\", {\n key: 1,\n class: normalizeClass({ \"should-shake\": $props.error }),\n onSubmit: _cache[2] || (_cache[2] = withModifiers((...args) => $options.renameCollection && $options.renameCollection(...args), [\"prevent\"]))\n }, [\n withDirectives(createElementVNode(\"input\", {\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => $data.newName = $event),\n type: \"text\",\n autocomplete: \"off\",\n autocapitalize: \"off\"\n }, null, 512), [\n [vModelText, $data.newName]\n ]),\n _cache[3] || (_cache[3] = createElementVNode(\"input\", {\n type: \"submit\",\n value: \"\",\n class: \"icon-confirm\"\n }, null, -1))\n ], 34)),\n !$data.detailsOpen && $data.newName === null ? (openBlock(), createElementBlock(\"div\", _hoisted_2$1, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.resources.slice(0, 2), (resource) => {\n return openBlock(), createBlock(resolveDynamicComponent($options.getComponent(resource).component), {\n key: resource.type + \"|\" + resource.id,\n title: resource.name,\n to: $options.getComponent(resource).to,\n href: $options.getComponent(resource).href,\n class: normalizeClass($options.typeClass(resource))\n }, {\n default: withCtx(() => [\n createElementVNode(\"img\", {\n src: $options.iconUrl(resource),\n alt: resource.name\n }, null, 8, _hoisted_3$1)\n ]),\n _: 2\n }, 1032, [\"title\", \"to\", \"href\", \"class\"]);\n }), 128))\n ])) : createCommentVNode(\"\", true),\n $data.newName === null ? (openBlock(), createElementBlock(\"span\", _hoisted_4$1, [\n createVNode(_component_NcActions, null, {\n default: withCtx(() => [\n createVNode(_component_NcActionButton, {\n icon: \"icon-info\",\n onClick: withModifiers($options.toggleDetails, [\"prevent\"])\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString($data.detailsOpen ? $options.t(\"Hide details\") : $options.t(\"Show details\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n createVNode(_component_NcActionButton, {\n icon: \"icon-rename\",\n onClick: withModifiers($options.openRename, [\"prevent\"])\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString($options.t(\"Rename project\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n _: 1\n })\n ])) : createCommentVNode(\"\", true),\n createVNode(Transition, { name: \"fade\" }, {\n default: withCtx(() => [\n $props.error ? (openBlock(), createElementBlock(\"div\", _hoisted_5$1, toDisplayString($props.error), 1)) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n createVNode(Transition, { name: \"fade\" }, {\n default: withCtx(() => [\n $data.detailsOpen ? (openBlock(), createElementBlock(\"ul\", _hoisted_6$1, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.resources, (resource) => {\n return openBlock(), createElementBlock(\"li\", {\n key: resource.type + \"|\" + resource.id,\n class: normalizeClass($options.typeClass(resource))\n }, [\n (openBlock(), createBlock(resolveDynamicComponent($options.getComponent(resource).component), {\n to: $options.getComponent(resource).to,\n href: $options.getComponent(resource).href\n }, {\n default: withCtx(() => [\n createElementVNode(\"img\", {\n src: $options.iconUrl(resource),\n alt: resource.name\n }, null, 8, _hoisted_7$1),\n createElementVNode(\"span\", _hoisted_8$1, toDisplayString(resource.name || \"\"), 1)\n ]),\n _: 2\n }, 1032, [\"to\", \"href\"])),\n createElementVNode(\"span\", {\n class: \"icon-close\",\n onClick: ($event) => $options.removeResource($props.collection, resource)\n }, null, 8, _hoisted_9)\n ], 2);\n }), 128))\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ]);\n}\nconst NcCollectionListItem = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-52d18b4a\"]]);\nregister(t6);\nfunction extractOcsData(response) {\n return response.data.ocs.data;\n}\nfunction renameCollectionService(collectionId, collectionName) {\n return axios.put(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { collectionName }).then(extractOcsData);\n}\nfunction getCollectionsByResourceService(resourceType, resourceId) {\n return axios.get(generateOcsUrl(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType, resourceId })).then(extractOcsData);\n}\nfunction createCollectionService(resourceType, resourceId, name) {\n return axios.post(generateOcsUrl(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType, resourceId }), { name }).then(extractOcsData);\n}\nfunction addResourceService(collectionId, resourceType, resourceId) {\n return axios.post(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { resourceType, resourceId }).then(extractOcsData);\n}\nfunction removeResourceService(collectionId, resourceType, resourceId) {\n return axios.delete(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { params: { resourceType, resourceId } }).then(extractOcsData);\n}\nfunction searchService(query) {\n return axios.get(generateOcsUrl(\"collaboration/resources/collections/search/{query}\", { query })).then(extractOcsData);\n}\nfunction useCollections() {\n const storedCollections = ref([]);\n const addCollections = (collections) => {\n storedCollections.value = collections;\n };\n const addCollection = (collection) => {\n storedCollections.value.push(collection);\n };\n const removeCollection = (collectionId) => {\n storedCollections.value = storedCollections.value.filter((item) => item.id !== collectionId);\n };\n const updateCollection = (collection) => {\n const index = storedCollections.value.findIndex((item) => item.id === collection.id);\n if (index !== -1) {\n storedCollections.value[index] = collection;\n } else {\n addCollection(collection);\n }\n };\n const fetchCollectionsByResource = async ({ resourceType, resourceId }) => {\n const collections = await getCollectionsByResourceService(resourceType, resourceId);\n addCollections(collections);\n };\n const createCollection = async ({ baseResourceType, baseResourceId, resourceType, resourceId, name }) => {\n const collection = await createCollectionService(baseResourceType, baseResourceId, name);\n addCollection(collection);\n await addResourceToCollection({\n collectionId: collection.id,\n resourceType,\n resourceId\n });\n };\n const renameCollection = async ({ collectionId, name }) => {\n const collection = await renameCollectionService(collectionId, name);\n updateCollection(collection);\n };\n async function addResourceToCollection({ collectionId, resourceType, resourceId }) {\n const collection = await addResourceService(collectionId, resourceType, String(resourceId));\n updateCollection(collection);\n }\n const removeResourceFromCollection = async ({ collectionId, resourceType, resourceId }) => {\n const collection = await removeResourceService(collectionId, resourceType, String(resourceId));\n if (collection.resources.length > 0) {\n updateCollection(collection);\n } else {\n removeCollection(collectionId);\n }\n };\n return {\n storedCollections,\n fetchCollectionsByResource,\n createCollection,\n renameCollection,\n addResourceToCollection,\n removeResourceFromCollection\n };\n}\nconst METHOD_CREATE_COLLECTION = 0;\nconst METHOD_ADD_TO_COLLECTION = 1;\nconst _sfc_main = {\n name: \"NcCollectionList\",\n components: {\n NcCollectionListItem,\n NcAvatar,\n NcSelect\n },\n props: {\n /**\n * Resource type identifier\n */\n type: {\n type: String,\n default: null\n },\n /**\n * Unique id of the resource\n */\n id: {\n type: String,\n default: null\n },\n /**\n * Name of the resource\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * Whether the component is active (to start fetch resources)\n */\n isActive: {\n type: Boolean,\n default: true\n }\n },\n setup() {\n const {\n storedCollections,\n fetchCollectionsByResource,\n createCollection,\n addResourceToCollection,\n removeResourceFromCollection,\n renameCollection\n } = useCollections();\n const searchCollections = ref([]);\n const search = debounce(function(query, loading) {\n if (query !== \"\") {\n loading(true);\n searchService(query).then((collections) => {\n searchCollections.value = collections;\n }).catch((error) => {\n logger.error(\"Failed to search for collections\", { error });\n }).finally(() => {\n loading(false);\n });\n }\n }, 500);\n return {\n storedCollections,\n fetchCollectionsByResource,\n createCollection,\n addResourceToCollection,\n removeResourceFromCollection,\n renameCollection,\n searchCollections,\n search\n };\n },\n data() {\n return {\n selectIsOpen: false,\n generatingCodes: false,\n codes: void 0,\n value: null,\n model: {},\n collectionsError: {},\n error: null,\n isSelectOpen: false\n };\n },\n computed: {\n collections() {\n return this.storedCollections.filter((collection) => collection.resources.some((resource) => resource && resource.id === String(this.id) && resource.type === this.type));\n },\n placeholder() {\n return this.isSelectOpen ? t(\"Type to search for existing projects\") : t(\"Add to a project\");\n },\n options() {\n const options = [];\n window.OCP.Collaboration.getTypes().sort().forEach((type) => {\n options.push({\n method: METHOD_CREATE_COLLECTION,\n type,\n title: window.OCP.Collaboration.getLabel(type),\n class: window.OCP.Collaboration.getIcon(type),\n action: () => window.OCP.Collaboration.trigger(type)\n });\n });\n for (const index in this.searchCollections) {\n if (!this.collections.find((collection) => collection.id === this.searchCollections[index].id)) {\n options.push({\n method: METHOD_ADD_TO_COLLECTION,\n title: this.searchCollections[index].name,\n collectionId: this.searchCollections[index].id\n });\n }\n }\n return options;\n },\n resourceIdentifier() {\n return {\n resourceType: this.type,\n resourceId: this.id,\n isActive: this.isActive\n };\n }\n },\n watch: {\n resourceIdentifier: {\n deep: true,\n immediate: true,\n handler(resourceIdentifier) {\n if (!resourceIdentifier.isActive || !resourceIdentifier.resourceId || !resourceIdentifier.resourceType) {\n return;\n }\n this.fetchCollectionsByResource(resourceIdentifier);\n }\n }\n },\n methods: {\n t,\n select(selectedOption) {\n if (selectedOption.method === METHOD_CREATE_COLLECTION) {\n selectedOption.action().then((resourceId) => {\n this.createCollection({\n baseResourceType: this.type,\n baseResourceId: this.id,\n resourceType: selectedOption.type,\n resourceId,\n name: this.name\n }).catch((e) => {\n this.setError(t(\"Failed to create a project\"), e);\n });\n }).catch((e) => {\n logger.error(\"[NcCollectionList] No resource selected\", e);\n });\n }\n if (selectedOption.method === METHOD_ADD_TO_COLLECTION) {\n this.addResourceToCollection({\n collectionId: selectedOption.collectionId,\n resourceType: this.type,\n resourceId: this.id\n }).catch((e) => {\n this.setError(t(\"Failed to add the item to the project\"), e);\n });\n }\n this.value = null;\n },\n showSelect() {\n this.selectIsOpen = true;\n this.$refs.select.$el.focus();\n },\n setError(error, e) {\n logger.error(error, { error: e });\n this.error = error;\n setTimeout(() => {\n this.error = null;\n }, 5e3);\n },\n renameCollectionFromItem({ collectionId, name }) {\n this.renameCollection({ collectionId, name }).catch((e) => {\n logger.error(t(\"Failed to rename the project\"), { error: e });\n this.collectionsError[collectionId] = t(\"Failed to rename the project\");\n setTimeout(() => {\n this.collectionsError[collectionId] = null;\n }, 5e3);\n });\n }\n }\n};\nconst _hoisted_1 = {\n key: 0,\n id: \"collection-list\",\n class: \"collection-list\"\n};\nconst _hoisted_2 = { id: \"collection-select-container\" };\nconst _hoisted_3 = { class: \"option__desc\" };\nconst _hoisted_4 = { class: \"option__title\" };\nconst _hoisted_5 = { class: \"option__wrapper\" };\nconst _hoisted_6 = { class: \"option__title\" };\nconst _hoisted_7 = { class: \"hint\" };\nconst _hoisted_8 = {\n key: 0,\n class: \"error\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAvatar = resolveComponent(\"NcAvatar\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcCollectionListItem = resolveComponent(\"NcCollectionListItem\");\n return $options.collections && $props.type && $props.id ? (openBlock(), createElementBlock(\"ul\", _hoisted_1, [\n createElementVNode(\"li\", {\n onClick: _cache[3] || (_cache[3] = (...args) => $options.showSelect && $options.showSelect(...args))\n }, [\n _cache[4] || (_cache[4] = createElementVNode(\"div\", { class: \"avatar\" }, [\n createElementVNode(\"span\", { class: \"icon-projects\" })\n ], -1)),\n createElementVNode(\"div\", _hoisted_2, [\n createVNode(_component_NcSelect, {\n ref: \"select\",\n modelValue: $data.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $data.value = $event),\n \"aria-label-combobox\": $options.t(\"Add to a project\"),\n options: $options.options,\n placeholder: $options.placeholder,\n label: \"title\",\n limit: 5,\n onClose: _cache[1] || (_cache[1] = ($event) => $data.isSelectOpen = false),\n onOpen: _cache[2] || (_cache[2] = ($event) => $data.isSelectOpen = true),\n \"onOption:selected\": $options.select,\n onSearch: $setup.search\n }, {\n \"selected-option\": withCtx((option) => [\n createElementVNode(\"span\", _hoisted_3, [\n createElementVNode(\"span\", _hoisted_4, toDisplayString(option.title), 1)\n ])\n ]),\n option: withCtx((option) => [\n createElementVNode(\"span\", _hoisted_5, [\n option.class ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: normalizeClass([option.class, \"avatar\"])\n }, null, 2)) : option.method !== 2 ? (openBlock(), createBlock(_component_NcAvatar, {\n key: 1,\n \"allow-placeholder\": \"\",\n \"display-name\": option.title\n }, null, 8, [\"display-name\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_6, toDisplayString(option.title), 1)\n ])\n ]),\n default: withCtx(() => [\n createElementVNode(\"p\", _hoisted_7, toDisplayString($options.t(\"Connect items to a project to make them easier to find\")), 1)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"aria-label-combobox\", \"options\", \"placeholder\", \"onOption:selected\", \"onSearch\"])\n ])\n ]),\n createVNode(Transition, { name: \"fade\" }, {\n default: withCtx(() => [\n $data.error ? (openBlock(), createElementBlock(\"li\", _hoisted_8, toDisplayString($data.error), 1)) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.collections, (collection) => {\n return openBlock(), createBlock(_component_NcCollectionListItem, {\n key: collection.id,\n collection,\n error: $data.collectionsError[collection.id],\n onRenameCollection: $options.renameCollectionFromItem,\n onRemoveResource: $setup.removeResourceFromCollection\n }, null, 8, [\"collection\", \"error\", \"onRenameCollection\", \"onRemoveResource\"]);\n }), 128))\n ])) : createCommentVNode(\"\", true);\n}\nconst NcCollectionList = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-047356d6\"]]);\nexport {\n NcCollectionList as N\n};\n//# sourceMappingURL=NcCollectionList-TB1GbWbo.mjs.map\n","const name = 'VueColor';\n// 自定义组件前缀\nconst prefix = '';\nconst cssPrefix = '';\nconst size = 'medium';\n\nexport { cssPrefix, name, prefix, size };\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport { styleInject as s };\n","import { prefix } from '../defaultConfig.js';\n\nconst install = function (app, options) {\n const { componentPrefix = prefix } = options || {};\n app.component(`${componentPrefix}${this.name}`, this);\n};\n\nexport { install };\n","import { openBlock, createElementBlock, normalizeStyle } from 'vue';\nimport { s as styleInject } from '../../style-inject.es-746bb8ed.js';\nimport { install } from '../../utils/compoent.js';\nimport '../../defaultConfig.js';\n\nconst _checkboardCache = {};\n\nvar script = {\n name: 'Checkboard',\n props: {\n size: {\n type: [Number, String],\n default: 8,\n },\n white: {\n type: String,\n default: '#fff',\n },\n grey: {\n type: String,\n default: '#e6e6e6',\n },\n },\n computed: {\n bgStyle() {\n return {\n 'background-image': `url(${getCheckboard(this.white, this.grey, this.size)})`,\n };\n },\n },\n};\n\n/**\n * get base 64 data by canvas\n *\n * @param {String} c1 hex color\n * @param {String} c2 hex color\n * @param {Number} size\n */\n\nfunction renderCheckboard(c1, c2, size) {\n // Dont Render On Server\n if (typeof document === 'undefined')\n return null;\n\n const canvas = document.createElement('canvas');\n canvas.width = canvas.height = size * 2;\n const ctx = canvas.getContext('2d');\n // If no context can be found, return early.\n if (!ctx)\n return null;\n\n ctx.fillStyle = c1;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.fillStyle = c2;\n ctx.fillRect(0, 0, size, size);\n ctx.translate(size, size);\n ctx.fillRect(0, 0, size, size);\n return canvas.toDataURL();\n}\n\n/**\n * get checkboard base data and cache\n *\n * @param {String} c1 hex color\n * @param {String} c2 hex color\n * @param {Number} size\n */\n\nfunction getCheckboard(c1, c2, size) {\n const key = `${c1},${c2},${size}`;\n\n if (_checkboardCache[key])\n return _checkboardCache[key];\n\n const checkboard = renderCheckboard(c1, c2, size);\n _checkboardCache[key] = checkboard;\n return checkboard;\n}\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createElementBlock(\"div\", {\n class: \"vc-checkerboard\",\n style: normalizeStyle($options.bgStyle)\n }, null, 4 /* STYLE */))\n}\n\nvar css_248z = \".vc-checkerboard{background-size:contain;bottom:0;left:0;position:absolute;right:0;top:0}\";\nstyleInject(css_248z);\n\nscript.render = render;\nscript.__file = \"src/components/checkboard/checkboard.vue\";\n\nscript.install = install;\n\nexport { script as default };\n","import script$1 from '../checkboard/index.js';\nimport { resolveComponent, openBlock, createElementBlock, createElementVNode, createVNode, normalizeStyle } from 'vue';\nimport { s as styleInject } from '../../style-inject.es-746bb8ed.js';\nimport { install } from '../../utils/compoent.js';\nimport '../../defaultConfig.js';\n\nvar script = {\n name: 'Alpha',\n components: {\n Checkboard: script$1,\n },\n props: {\n value: Object,\n onChange: Function,\n },\n computed: {\n colors() {\n return this.value;\n },\n gradientColor() {\n const { rgba } = this.colors;\n const rgbStr = [rgba.r, rgba.g, rgba.b].join(',');\n return `linear-gradient(to right, rgba(${rgbStr}, 0) 0%, rgba(${rgbStr}, 1) 100%)`;\n },\n },\n methods: {\n handleChange(e, skip) {\n !skip && e.preventDefault();\n const { container } = this.$refs;\n if (!container) {\n // for some edge cases, container may not exist. see #220\n return;\n }\n const containerWidth = container.clientWidth;\n\n const xOffset = container.getBoundingClientRect().left + window.pageXOffset;\n const pageX = e.pageX || (e.touches ? e.touches[0].pageX : 0);\n const left = pageX - xOffset;\n\n let a;\n if (left < 0)\n a = 0;\n else if (left > containerWidth)\n a = 1;\n else\n a = Math.round(left * 100 / containerWidth) / 100;\n\n if (this.colors.a !== a) {\n this.$emit('change', {\n h: this.colors.hsl.h,\n s: this.colors.hsl.s,\n l: this.colors.hsl.l,\n a,\n source: 'rgba',\n });\n }\n },\n handleMouseDown(e) {\n this.handleChange(e, true);\n window.addEventListener('mousemove', this.handleChange);\n window.addEventListener('mouseup', this.handleMouseUp);\n },\n handleMouseUp() {\n this.unbindEventListeners();\n },\n unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n },\n },\n};\n\nconst _hoisted_1 = { class: \"vc-alpha\" };\nconst _hoisted_2 = { class: \"vc-alpha-checkboard-wrap\" };\nconst _hoisted_3 = /*#__PURE__*/createElementVNode(\"div\", { class: \"vc-alpha-picker\" }, null, -1 /* HOISTED */);\nconst _hoisted_4 = [\n _hoisted_3\n];\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_Checkboard = resolveComponent(\"Checkboard\");\n\n return (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createElementVNode(\"div\", _hoisted_2, [\n createVNode(_component_Checkboard)\n ]),\n createElementVNode(\"div\", {\n class: \"vc-alpha-gradient\",\n style: normalizeStyle({ background: $options.gradientColor })\n }, null, 4 /* STYLE */),\n createElementVNode(\"div\", {\n ref: \"container\",\n class: \"vc-alpha-container\",\n onMousedown: _cache[0] || (_cache[0] = (...args) => ($options.handleMouseDown && $options.handleMouseDown(...args))),\n onTouchmove: _cache[1] || (_cache[1] = (...args) => ($options.handleChange && $options.handleChange(...args))),\n onTouchstart: _cache[2] || (_cache[2] = (...args) => ($options.handleChange && $options.handleChange(...args)))\n }, [\n createElementVNode(\"div\", {\n class: \"vc-alpha-pointer\",\n style: normalizeStyle({ left: `${$options.colors.a * 100}%` })\n }, _hoisted_4, 4 /* STYLE */)\n ], 544 /* HYDRATE_EVENTS, NEED_PATCH */)\n ]))\n}\n\nvar css_248z = \".vc-alpha,.vc-alpha-checkboard-wrap{bottom:0;left:0;position:absolute;right:0;top:0}.vc-alpha-checkboard-wrap{overflow:hidden}.vc-alpha-gradient{bottom:0;left:0;position:absolute;right:0;top:0}.vc-alpha-container{cursor:pointer;height:100%;margin:0 3px;position:relative;z-index:2}.vc-alpha-pointer{position:absolute;z-index:2}.vc-alpha-picker{background:#fff;border-radius:1px;box-shadow:0 0 2px rgba(0,0,0,.6);cursor:pointer;height:8px;margin-top:1px;transform:translateX(-2px);width:4px}\";\nstyleInject(css_248z);\n\nscript.render = render;\nscript.__file = \"src/components/alpha/alpha.vue\";\n\nscript.install = install;\n\nexport { script as default };\n","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util.js';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * <http://www.w3.org/TR/css3-color/>\n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\nimport { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb, } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { boundAlpha, convertToPercentage } from './util.js';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// <http://www.w3.org/TR/css3-values/#integers>\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// <http://www.w3.org/TR/css3-values/#number-value>\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { numberInputToObject, rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util.js';\nvar TinyColor = /** @class */ (function () {\n function TinyColor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n var _a;\n // If input is already a tinycolor, return itself\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n if (typeof color === 'number') {\n color = numberInputToObject(color);\n }\n this.originalInput = color;\n var rgb = inputToRGB(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType;\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this.r < 1) {\n this.r = Math.round(this.r);\n }\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n this.isValid = rgb.ok;\n }\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n TinyColor.prototype.getBrightness = function () {\n // http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n };\n /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = boundAlpha(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns whether the color is monochrome.\n */\n TinyColor.prototype.isMonochrome = function () {\n var s = this.toHsl().s;\n return s === 0;\n };\n /**\n * Returns the object as a HSVA object.\n */\n TinyColor.prototype.toHsv = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHsvString = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a HSLA object.\n */\n TinyColor.prototype.toHsl = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHslString = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # prefixed.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # prefixed.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the shorter hex value of the color depends on its alpha -with a # prefixed.\n * @param allowShortChar will shorten hex value to 3 or 4 char if possible\n */\n TinyColor.prototype.toHexShortString = function (allowShortChar) {\n if (allowShortChar === void 0) { allowShortChar = false; }\n return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar);\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toRgb = function () {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function (x) { return \"\".concat(Math.round(bound01(x, 255) * 100), \"%\"); };\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };\n return this.a === 1\n ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\")\n : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n if (this.a < 1) {\n return false;\n }\n var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (hex === value) {\n return key;\n }\n }\n return false;\n };\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this.a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n };\n TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var rgb = this.toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\n };\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) { amount = 50; }\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n return new TinyColor(rgba);\n };\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) { results = 6; }\n if (slices === void 0) { slices = 30; }\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) { results = 6; }\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n while (results--) {\n res.push(new TinyColor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n return res;\n };\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [\n this,\n new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n };\n /**\n * Compute how the color would appear on a background\n */\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n var alpha = fg.a + bg.a * (1 - fg.a);\n return new TinyColor({\n r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha,\n g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha,\n b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha,\n a: alpha,\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n }\n return result;\n };\n /**\n * compare color vs current color\n */\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n return TinyColor;\n}());\nexport { TinyColor };\n// kept for backwards compatability with v1\nexport function tinycolor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n return new TinyColor(color, opts);\n}\n","import { TinyColor } from '@ctrl/tinycolor';\n\nfunction tinycolor(...args) {\n return new TinyColor(...args);\n}\n\nfunction _colorChange(data, oldHue) {\n const alpha = data && data.a;\n let color;\n\n // hsl is better than hex between conversions\n if (data && data.hsl)\n color = tinycolor(data.hsl);\n else if (data && data.hex && data.hex.length > 0)\n color = tinycolor(data.hex);\n else if (data && data.hsv)\n color = tinycolor(data.hsv);\n else if (data && data.rgba)\n color = tinycolor(data.rgba);\n else if (data && data.rgb)\n color = tinycolor(data.rgb);\n else\n color = tinycolor(data);\n\n if (color && (color._a === undefined || color._a === null))\n color.setAlpha(alpha || color.getAlpha());\n\n const hsl = color.toHsl();\n const hsv = color.toHsv();\n\n if (hsl.s === 0)\n hsv.h = hsl.h = data.h || (data.hsl && data.hsl.h) || oldHue || 0;\n\n /* --- comment this block to fix #109, may cause #25 again --- */\n // when the hsv.v is less than 0.0164 (base on test)\n // because of possible loss of precision\n // the result of hue and saturation would be miscalculated\n if (hsv.v < 0.0164) {\n hsv.h = data.h || (data.hsv && data.hsv.h) || 0;\n hsv.s = data.s || (data.hsv && data.hsv.s) || 0;\n }\n\n if (hsl.l < 0.01) {\n hsl.h = data.h || (data.hsl && data.hsl.h) || 0;\n hsl.s = data.s || (data.hsl && data.hsl.s) || 0;\n }\n /* ------ */\n\n return {\n hsl,\n hex: color.toHexString().toUpperCase(),\n hex8: color.toHex8String().toUpperCase(),\n rgba: color.toRgb(),\n hsv,\n oldHue: data.h || oldHue || hsl.h,\n source: data.source,\n a: color.getAlpha(),\n };\n}\n\nvar colorMixin = {\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n props: ['modelValue'],\n data() {\n return {\n val: _colorChange(this.modelValue),\n };\n },\n computed: {\n colors: {\n get() {\n return this.val;\n },\n set(newVal) {\n this.val = newVal;\n this.$emit('update:modelValue', newVal);\n },\n },\n },\n watch: {\n modelValue(newVal) {\n this.val = _colorChange(newVal);\n },\n },\n methods: {\n colorChange(data, oldHue) {\n this.oldHue = this.colors.hsl.h;\n this.colors = _colorChange(data, oldHue || this.oldHue);\n },\n isValidHex(hex) {\n return tinycolor(hex).isValid;\n },\n simpleCheckForValidColor(data) {\n const keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];\n let checked = 0;\n let passed = 0;\n\n for (let i = 0; i < keysToCheck.length; i++) {\n const letter = keysToCheck[i];\n if (data[letter]) {\n checked++;\n if (!isNaN(data[letter]))\n passed++;\n }\n }\n\n if (checked === passed)\n return data;\n },\n paletteUpperCase(palette) {\n return palette.map(c => c.toUpperCase());\n },\n isTransparent(color) {\n return tinycolor(color).getAlpha() === 0;\n },\n },\n};\n\nexport { colorMixin as default };\n","import { openBlock, createElementBlock, withDirectives, createElementVNode, vModelText, toDisplayString } from 'vue';\nimport { s as styleInject } from '../../style-inject.es-746bb8ed.js';\nimport { install } from '../../utils/compoent.js';\nimport '../../defaultConfig.js';\n\nvar script = {\n name: 'EditableInput',\n props: {\n label: String,\n labelText: String,\n desc: String,\n value: [String, Number],\n max: Number,\n min: Number,\n arrowOffset: {\n type: Number,\n default: 1,\n },\n },\n computed: {\n val: {\n get() {\n return this.value;\n },\n set(v) {\n // TODO: min\n if (!(this.max === undefined) && +v > this.max)\n this.$refs.input.value = this.max;\n else\n return v;\n },\n },\n labelId() {\n return `input__label__${this.label}__${Math.random().toString().slice(2, 5)}`;\n },\n labelSpanText() {\n return this.labelText || this.label;\n },\n },\n methods: {\n update(e) {\n this.handleChange(e.target.value);\n },\n handleChange(newVal) {\n const data = {};\n data[this.label] = newVal;\n if (data.hex === undefined && data['#'] === undefined)\n this.$emit('change', data);\n else if (newVal.length > 5)\n this.$emit('change', data);\n },\n // **** unused\n // handleBlur (e) {\n // console.log(e)\n // },\n handleKeyDown(e) {\n let { val } = this;\n const number = Number(val);\n\n if (number) {\n const amount = this.arrowOffset || 1;\n\n // Up\n if (e.keyCode === 38) {\n val = number + amount;\n this.handleChange(val);\n e.preventDefault();\n }\n\n // Down\n if (e.keyCode === 40) {\n val = number - amount;\n this.handleChange(val);\n e.preventDefault();\n }\n }\n },\n // **** unused\n // handleDrag (e) {\n // console.log(e)\n // },\n // handleMouseDown (e) {\n // console.log(e)\n // }\n },\n};\n\nconst _hoisted_1 = { class: \"vc-editable-input\" };\nconst _hoisted_2 = [\"aria-labelledby\"];\nconst _hoisted_3 = [\"id\", \"for\"];\nconst _hoisted_4 = { class: \"vc-input__desc\" };\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n withDirectives(createElementVNode(\"input\", {\n ref: \"input\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => (($options.val) = $event)),\n \"aria-labelledby\": $options.labelId,\n class: \"vc-input__input\",\n onKeydown: _cache[1] || (_cache[1] = (...args) => ($options.handleKeyDown && $options.handleKeyDown(...args))),\n onInput: _cache[2] || (_cache[2] = (...args) => ($options.update && $options.update(...args)))\n }, null, 40 /* PROPS, HYDRATE_EVENTS */, _hoisted_2), [\n [vModelText, $options.val]\n ]),\n createElementVNode(\"span\", {\n id: $options.labelId,\n for: $props.label,\n class: \"vc-input__label\"\n }, toDisplayString($options.labelSpanText), 9 /* TEXT, PROPS */, _hoisted_3),\n createElementVNode(\"span\", _hoisted_4, toDisplayString($props.desc), 1 /* TEXT */)\n ]))\n}\n\nvar css_248z = \".vc-editable-input{position:relative}.vc-input__input{border:0;outline:none;padding:0}.vc-input__label{text-transform:capitalize}\";\nstyleInject(css_248z);\n\nscript.render = render;\nscript.__file = \"src/components/editable-input/editable-input.vue\";\n\nscript.install = install;\n\nexport { script as default };\n","function clamp(value, min, max) {\n return min < max\n ? (value < min ? min : value > max ? max : value)\n : (value < max ? max : value > min ? min : value);\n}\n\nexport { clamp };\n","import { clamp } from '../../utils/utils.js';\nimport { openBlock, createElementBlock, normalizeStyle, createElementVNode } from 'vue';\nimport { s as styleInject } from '../../style-inject.es-746bb8ed.js';\nimport { install } from '../../utils/compoent.js';\nimport '../../defaultConfig.js';\n\nvar script = {\n name: 'Saturation',\n props: {\n value: Object,\n },\n computed: {\n colors() {\n return this.value;\n },\n bgColor() {\n return `hsl(${this.colors.hsv.h}, 100%, 50%)`;\n },\n pointerTop() {\n return `${(-(this.colors.hsv.v * 100) + 1) + 100}%`;\n },\n pointerLeft() {\n return `${this.colors.hsv.s * 100}%`;\n },\n },\n methods: {\n handleChange(e, skip) {\n !skip && e.preventDefault();\n const { container } = this.$refs;\n if (!container) {\n // for some edge cases, container may not exist. see #220\n return;\n }\n const containerWidth = container.clientWidth;\n const containerHeight = container.clientHeight;\n\n const xOffset = container.getBoundingClientRect().left + window.pageXOffset;\n const yOffset = container.getBoundingClientRect().top + window.pageYOffset;\n const pageX = e.pageX || (e.touches ? e.touches[0].pageX : 0);\n const pageY = e.pageY || (e.touches ? e.touches[0].pageY : 0);\n const left = clamp(pageX - xOffset, 0, containerWidth);\n const top = clamp(pageY - yOffset, 0, containerHeight);\n const saturation = left / containerWidth;\n const bright = clamp(-(top / containerHeight) + 1, 0, 1);\n\n this.onChange({\n h: this.colors.hsv.h,\n s: saturation,\n v: bright,\n a: this.colors.hsv.a,\n source: 'hsva',\n });\n },\n onChange(param) {\n this.$emit('change', param);\n },\n handleMouseDown(e) {\n // this.handleChange(e, true)\n window.addEventListener('mousemove', this.handleChange);\n window.addEventListener('mouseup', this.handleChange);\n window.addEventListener('mouseup', this.handleMouseUp);\n },\n handleMouseUp(e) {\n this.unbindEventListeners();\n },\n unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n },\n },\n};\n\nconst _hoisted_1 = /*#__PURE__*/createElementVNode(\"div\", { class: \"vc-saturation--white\" }, null, -1 /* HOISTED */);\nconst _hoisted_2 = /*#__PURE__*/createElementVNode(\"div\", { class: \"vc-saturation--black\" }, null, -1 /* HOISTED */);\nconst _hoisted_3 = /*#__PURE__*/createElementVNode(\"div\", { class: \"vc-saturation-circle\" }, null, -1 /* HOISTED */);\nconst _hoisted_4 = [\n _hoisted_3\n];\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createElementBlock(\"div\", {\n ref: \"container\",\n class: \"vc-saturation\",\n style: normalizeStyle({ background: $options.bgColor }),\n onMousedown: _cache[0] || (_cache[0] = (...args) => ($options.handleMouseDown && $options.handleMouseDown(...args))),\n onTouchmove: _cache[1] || (_cache[1] = (...args) => ($options.handleChange && $options.handleChange(...args))),\n onTouchstart: _cache[2] || (_cache[2] = (...args) => ($options.handleChange && $options.handleChange(...args)))\n }, [\n _hoisted_1,\n _hoisted_2,\n createElementVNode(\"div\", {\n class: \"vc-saturation-pointer\",\n style: normalizeStyle({ top: $options.pointerTop, left: $options.pointerLeft })\n }, _hoisted_4, 4 /* STYLE */)\n ], 36 /* STYLE, HYDRATE_EVENTS */))\n}\n\nvar css_248z = \".vc-saturation,.vc-saturation--black,.vc-saturation--white{bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0}.vc-saturation--white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.vc-saturation--black{background:linear-gradient(0deg,#000,transparent)}.vc-saturation-pointer{cursor:pointer;position:absolute}.vc-saturation-circle{border-radius:50%;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);cursor:head;height:4px;transform:translate(-2px,-2px);width:4px}\";\nstyleInject(css_248z);\n\nscript.render = render;\nscript.__file = \"src/components/saturation/saturation.vue\";\n\nscript.install = install;\n\nexport { script as default };\n","import { openBlock, createElementBlock, normalizeClass, createElementVNode, normalizeStyle } from 'vue';\nimport { s as styleInject } from '../../style-inject.es-746bb8ed.js';\nimport { install } from '../../utils/compoent.js';\nimport '../../defaultConfig.js';\n\nvar script = {\n name: 'Hue',\n props: {\n value: Object,\n direction: {\n type: String,\n // [horizontal | vertical]\n default: 'horizontal',\n },\n },\n data() {\n return {\n oldHue: 0,\n pullDirection: '',\n };\n },\n computed: {\n colors() {\n return this.value;\n },\n directionClass() {\n return {\n 'vc-hue--horizontal': this.direction === 'horizontal',\n 'vc-hue--vertical': this.direction === 'vertical',\n };\n },\n pointerTop() {\n if (this.direction === 'vertical') {\n if (this.colors.hsl.h === 0 && this.pullDirection === 'right')\n return 0;\n return `${-((this.colors.hsl.h * 100) / 360) + 100}%`;\n }\n return 0;\n },\n pointerLeft() {\n if (this.direction === 'vertical')\n return 0;\n\n if (this.colors.hsl.h === 0 && this.pullDirection === 'right')\n return '100%';\n return `${(this.colors.hsl.h * 100) / 360}%`;\n },\n },\n watch: {\n value: {\n handler(value, oldVal) {\n const { h } = value.hsl;\n if (h !== 0 && h - this.oldHue > 0)\n this.pullDirection = 'right';\n if (h !== 0 && h - this.oldHue < 0)\n this.pullDirection = 'left';\n this.oldHue = h;\n },\n deep: true,\n immediate: true,\n },\n },\n methods: {\n handleChange(e, skip) {\n !skip && e.preventDefault();\n\n const { container } = this.$refs;\n if (!container) {\n // for some edge cases, container may not exist. see #220\n return;\n }\n const containerWidth = container.clientWidth;\n const containerHeight = container.clientHeight;\n\n const xOffset = container.getBoundingClientRect().left + window.pageXOffset;\n const yOffset = container.getBoundingClientRect().top + window.pageYOffset;\n const pageX = e.pageX || (e.touches ? e.touches[0].pageX : 0);\n const pageY = e.pageY || (e.touches ? e.touches[0].pageY : 0);\n const left = pageX - xOffset;\n const top = pageY - yOffset;\n\n let h;\n let percent;\n\n if (this.direction === 'vertical') {\n if (top < 0) {\n h = 360;\n }\n else if (top > containerHeight) {\n h = 0;\n }\n else {\n percent = -(top * 100 / containerHeight) + 100;\n h = (360 * percent / 100);\n }\n\n if (this.colors.hsl.h !== h) {\n this.$emit('change', {\n h,\n s: this.colors.hsl.s,\n l: this.colors.hsl.l,\n a: this.colors.hsl.a,\n source: 'hsl',\n });\n }\n }\n else {\n if (left < 0) {\n h = 0;\n }\n else if (left > containerWidth) {\n h = 360;\n }\n else {\n percent = left * 100 / containerWidth;\n h = (360 * percent / 100);\n }\n\n if (this.colors.hsl.h !== h) {\n this.$emit('change', {\n h,\n s: this.colors.hsl.s,\n l: this.colors.hsl.l,\n a: this.colors.hsl.a,\n source: 'hsl',\n });\n }\n }\n },\n handleMouseDown(e) {\n this.handleChange(e, true);\n window.addEventListener('mousemove', this.handleChange);\n window.addEventListener('mouseup', this.handleChange);\n window.addEventListener('mouseup', this.handleMouseUp);\n },\n handleMouseUp(e) {\n this.unbindEventListeners();\n },\n unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n },\n },\n};\n\nconst _hoisted_1 = [\"aria-valuenow\"];\nconst _hoisted_2 = /*#__PURE__*/createElementVNode(\"div\", { class: \"vc-hue-picker\" }, null, -1 /* HOISTED */);\nconst _hoisted_3 = [\n _hoisted_2\n];\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vc-hue\", [$options.directionClass]])\n }, [\n createElementVNode(\"div\", {\n ref: \"container\",\n class: \"vc-hue-container\",\n role: \"slider\",\n \"aria-valuenow\": $options.colors.hsl.h,\n \"aria-valuemin\": \"0\",\n \"aria-valuemax\": \"360\",\n onMousedown: _cache[0] || (_cache[0] = (...args) => ($options.handleMouseDown && $options.handleMouseDown(...args))),\n onTouchmove: _cache[1] || (_cache[1] = (...args) => ($options.handleChange && $options.handleChange(...args))),\n onTouchstart: _cache[2] || (_cache[2] = (...args) => ($options.handleChange && $options.handleChange(...args)))\n }, [\n createElementVNode(\"div\", {\n class: \"vc-hue-pointer\",\n style: normalizeStyle({ top: $options.pointerTop, left: $options.pointerLeft }),\n role: \"presentation\"\n }, _hoisted_3, 4 /* STYLE */)\n ], 40 /* PROPS, HYDRATE_EVENTS */, _hoisted_1)\n ], 2 /* CLASS */))\n}\n\nvar css_248z = \".vc-hue{border-radius:2px;bottom:0;left:0;position:absolute;right:0;top:0}.vc-hue--horizontal{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.vc-hue--vertical{background:linear-gradient(0deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.vc-hue-container{cursor:pointer;height:100%;margin:0 2px;position:relative}.vc-hue-pointer{position:absolute;z-index:2}.vc-hue-picker{background:#fff;border-radius:1px;box-shadow:0 0 2px rgba(0,0,0,.6);cursor:pointer;height:8px;margin-top:1px;transform:translateX(-2px);width:4px}\";\nstyleInject(css_248z);\n\nscript.render = render;\nscript.__file = \"src/components/hue/hue.vue\";\n\nscript.install = install;\n\nexport { script as default };\n","import colorMixin from '../../mixin/color.js';\nimport script$4 from '../editable-input/index.js';\nimport script$1 from '../saturation/index.js';\nimport script$2 from '../hue/index.js';\nimport script$3 from '../alpha/index.js';\nimport script$5 from '../checkboard/index.js';\nimport { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, createVNode, normalizeStyle, createBlock, createCommentVNode, withDirectives, vShow } from 'vue';\nimport { s as styleInject } from '../../style-inject.es-746bb8ed.js';\nimport { install } from '../../utils/compoent.js';\nimport '@ctrl/tinycolor';\nimport '../../utils/utils.js';\nimport '../../defaultConfig.js';\n\nvar script = {\n name: 'Chrome',\n components: {\n Saturation: script$1,\n Hue: script$2,\n Alpha: script$3,\n EdIn: script$4,\n Checkboard: script$5,\n },\n mixins: [colorMixin],\n props: {\n disableAlpha: {\n type: Boolean,\n default: false,\n },\n disableFields: {\n type: Boolean,\n default: false,\n },\n format: {\n type: String,\n default: 'hex',\n },\n },\n data() {\n return {\n fieldsIndex: 'hex',\n highlight: false,\n };\n },\n computed: {\n hsl() {\n const { h, s, l } = this.colors.hsl;\n return {\n h: h.toFixed(),\n s: `${(s * 100).toFixed()}%`,\n l: `${(l * 100).toFixed()}%`,\n };\n },\n activeColor() {\n const { rgba } = this.colors;\n return `rgba(${[rgba.r, rgba.g, rgba.b, rgba.a].join(',')})`;\n },\n hasAlpha() {\n return this.colors.a < 1;\n },\n },\n watch: {\n format: {\n handler(val) {\n this.fieldsIndex = val;\n },\n immediate: true,\n },\n },\n methods: {\n childChange(data) {\n this.colorChange(data);\n },\n inputChange(data) {\n if (!data)\n return;\n\n if (data.hex) {\n this.isValidHex(data.hex) && this.colorChange({\n hex: data.hex,\n source: 'hex',\n });\n }\n else if (data.r || data.g || data.b || data.a) {\n this.colorChange({\n r: data.r || this.colors.rgba.r,\n g: data.g || this.colors.rgba.g,\n b: data.b || this.colors.rgba.b,\n a: data.a || this.colors.rgba.a,\n source: 'rgba',\n });\n }\n else if (data.h || data.s || data.l) {\n const s = data.s ? (data.s.replace('%', '') / 100) : this.colors.hsl.s;\n const l = data.l ? (data.l.replace('%', '') / 100) : this.colors.hsl.l;\n\n this.colorChange({\n h: data.h || this.colors.hsl.h,\n s,\n l,\n source: 'hsl',\n });\n }\n },\n toggleViews() {\n switch (this.fieldsIndex) {\n case 'hex':\n this.fieldsIndex = `rgb${this.disableAlpha ? '' : 'a'}`;\n break;\n case 'rgb':\n case 'rgba':\n this.fieldsIndex = `hsl${this.disableAlpha ? '' : 'a'}`;\n break;\n default:\n this.fieldsIndex = 'hex';\n break;\n }\n this.$emit('update:format', this.fieldsIndex);\n },\n showHighlight() {\n this.highlight = true;\n },\n hideHighlight() {\n this.highlight = false;\n },\n },\n};\n\nconst _hoisted_1 = { class: \"vc-chrome-saturation-wrap\" };\nconst _hoisted_2 = { class: \"vc-chrome-body\" };\nconst _hoisted_3 = { class: \"vc-chrome-controls\" };\nconst _hoisted_4 = { class: \"vc-chrome-color-wrap\" };\nconst _hoisted_5 = [\"aria-label\"];\nconst _hoisted_6 = { class: \"vc-chrome-sliders\" };\nconst _hoisted_7 = { class: \"vc-chrome-hue-wrap\" };\nconst _hoisted_8 = {\n key: 0,\n class: \"vc-chrome-alpha-wrap\"\n};\nconst _hoisted_9 = {\n key: 0,\n class: \"vc-chrome-fields-wrap\"\n};\nconst _hoisted_10 = { class: \"vc-chrome-fields\" };\nconst _hoisted_11 = { class: \"vc-chrome-field\" };\nconst _hoisted_12 = { class: \"vc-chrome-fields\" };\nconst _hoisted_13 = { class: \"vc-chrome-field\" };\nconst _hoisted_14 = { class: \"vc-chrome-field\" };\nconst _hoisted_15 = { class: \"vc-chrome-field\" };\nconst _hoisted_16 = {\n key: 0,\n class: \"vc-chrome-field\"\n};\nconst _hoisted_17 = { class: \"vc-chrome-fields\" };\nconst _hoisted_18 = { class: \"vc-chrome-field\" };\nconst _hoisted_19 = { class: \"vc-chrome-field\" };\nconst _hoisted_20 = { class: \"vc-chrome-field\" };\nconst _hoisted_21 = {\n key: 0,\n class: \"vc-chrome-field\"\n};\nconst _hoisted_22 = { class: \"vc-chrome-toggle-icon\" };\nconst _hoisted_23 = /*#__PURE__*/createElementVNode(\"path\", {\n fill: \"#333\",\n d: \"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z\"\n}, null, -1 /* HOISTED */);\nconst _hoisted_24 = [\n _hoisted_23\n];\nconst _hoisted_25 = { class: \"vc-chrome-toggle-icon-highlight\" };\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_Saturation = resolveComponent(\"Saturation\");\n const _component_Checkboard = resolveComponent(\"Checkboard\");\n const _component_Hue = resolveComponent(\"Hue\");\n const _component_Alpha = resolveComponent(\"Alpha\");\n const _component_EdIn = resolveComponent(\"EdIn\");\n\n return (openBlock(), createElementBlock(\"div\", {\n role: \"application\",\n \"aria-label\": \"Chrome color picker\",\n class: normalizeClass([\"vc-chrome\", [$props.disableAlpha ? 'vc-chrome__disable-alpha' : '']])\n }, [\n createElementVNode(\"div\", _hoisted_1, [\n createVNode(_component_Saturation, {\n value: _ctx.colors,\n onChange: $options.childChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n createElementVNode(\"div\", _hoisted_2, [\n createElementVNode(\"div\", _hoisted_3, [\n createElementVNode(\"div\", _hoisted_4, [\n createElementVNode(\"div\", {\n \"aria-label\": `current color is ${_ctx.colors.hex}`,\n class: \"vc-chrome-active-color\",\n style: normalizeStyle({ background: $options.activeColor })\n }, null, 12 /* STYLE, PROPS */, _hoisted_5),\n (!$props.disableAlpha)\n ? (openBlock(), createBlock(_component_Checkboard, { key: 0 }))\n : createCommentVNode(\"v-if\", true)\n ]),\n createElementVNode(\"div\", _hoisted_6, [\n createElementVNode(\"div\", _hoisted_7, [\n createVNode(_component_Hue, {\n value: _ctx.colors,\n onChange: $options.childChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n (!$props.disableAlpha)\n ? (openBlock(), createElementBlock(\"div\", _hoisted_8, [\n createVNode(_component_Alpha, {\n value: _ctx.colors,\n onChange: $options.childChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]))\n : createCommentVNode(\"v-if\", true)\n ])\n ]),\n (!$props.disableFields)\n ? (openBlock(), createElementBlock(\"div\", _hoisted_9, [\n withDirectives(createElementVNode(\"div\", _hoisted_10, [\n createCommentVNode(\" hex \"),\n createElementVNode(\"div\", _hoisted_11, [\n (!$options.hasAlpha)\n ? (openBlock(), createBlock(_component_EdIn, {\n key: 0,\n label: \"hex\",\n value: _ctx.colors.hex,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"]))\n : createCommentVNode(\"v-if\", true),\n ($options.hasAlpha)\n ? (openBlock(), createBlock(_component_EdIn, {\n key: 1,\n label: \"hex\",\n value: _ctx.colors.hex8,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"]))\n : createCommentVNode(\"v-if\", true)\n ])\n ], 512 /* NEED_PATCH */), [\n [vShow, $data.fieldsIndex === 'hex']\n ]),\n withDirectives(createElementVNode(\"div\", _hoisted_12, [\n createCommentVNode(\" rgba \"),\n createElementVNode(\"div\", _hoisted_13, [\n createVNode(_component_EdIn, {\n label: \"r\",\n value: _ctx.colors.rgba.r,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n createElementVNode(\"div\", _hoisted_14, [\n createVNode(_component_EdIn, {\n label: \"g\",\n value: _ctx.colors.rgba.g,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n createElementVNode(\"div\", _hoisted_15, [\n createVNode(_component_EdIn, {\n label: \"b\",\n value: _ctx.colors.rgba.b,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n (!$props.disableAlpha)\n ? (openBlock(), createElementBlock(\"div\", _hoisted_16, [\n createVNode(_component_EdIn, {\n label: \"a\",\n value: _ctx.colors.a,\n \"arrow-offset\": 0.01,\n max: 1,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"arrow-offset\", \"onChange\"])\n ]))\n : createCommentVNode(\"v-if\", true)\n ], 512 /* NEED_PATCH */), [\n [vShow, ['rgb', 'rgba'].includes($data.fieldsIndex)]\n ]),\n withDirectives(createElementVNode(\"div\", _hoisted_17, [\n createCommentVNode(\" hsla \"),\n createElementVNode(\"div\", _hoisted_18, [\n createVNode(_component_EdIn, {\n label: \"h\",\n value: $options.hsl.h,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n createElementVNode(\"div\", _hoisted_19, [\n createVNode(_component_EdIn, {\n label: \"s\",\n value: $options.hsl.s,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n createElementVNode(\"div\", _hoisted_20, [\n createVNode(_component_EdIn, {\n label: \"l\",\n value: $options.hsl.l,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n (!$props.disableAlpha)\n ? (openBlock(), createElementBlock(\"div\", _hoisted_21, [\n createVNode(_component_EdIn, {\n label: \"a\",\n value: _ctx.colors.a,\n \"arrow-offset\": 0.01,\n max: 1,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"arrow-offset\", \"onChange\"])\n ]))\n : createCommentVNode(\"v-if\", true)\n ], 512 /* NEED_PATCH */), [\n [vShow, ['hsl', 'hsla'].includes($data.fieldsIndex)]\n ]),\n createCommentVNode(\" btn \"),\n createElementVNode(\"div\", {\n class: \"vc-chrome-toggle-btn\",\n role: \"button\",\n \"aria-label\": \"Change another color definition\",\n onClick: _cache[3] || (_cache[3] = (...args) => ($options.toggleViews && $options.toggleViews(...args)))\n }, [\n createElementVNode(\"div\", _hoisted_22, [\n (openBlock(), createElementBlock(\"svg\", {\n style: {\"width\":\"24px\",\"height\":\"24px\"},\n viewBox: \"0 0 24 24\",\n onMouseover: _cache[0] || (_cache[0] = (...args) => ($options.showHighlight && $options.showHighlight(...args))),\n onMouseenter: _cache[1] || (_cache[1] = (...args) => ($options.showHighlight && $options.showHighlight(...args))),\n onMouseout: _cache[2] || (_cache[2] = (...args) => ($options.hideHighlight && $options.hideHighlight(...args)))\n }, _hoisted_24, 32 /* HYDRATE_EVENTS */))\n ]),\n withDirectives(createElementVNode(\"div\", _hoisted_25, null, 512 /* NEED_PATCH */), [\n [vShow, $data.highlight]\n ])\n ]),\n createCommentVNode(\" btn \")\n ]))\n : createCommentVNode(\"v-if\", true)\n ])\n ], 2 /* CLASS */))\n}\n\nvar css_248z = \".vc-chrome{background:#fff;background-color:#fff;border-radius:2px;box-shadow:0 0 2px rgba(0,0,0,.3),0 4px 8px rgba(0,0,0,.3);box-sizing:initial;font-family:Menlo;width:225px}.vc-chrome-controls{display:flex}.vc-chrome-color-wrap{position:relative;width:36px}.vc-chrome-active-color{border-radius:15px;height:30px;overflow:hidden;position:relative;width:30px;z-index:1}.vc-chrome-color-wrap .vc-checkerboard{background-size:auto;border-radius:15px;height:30px;width:30px}.vc-chrome-sliders{flex:1}.vc-chrome-fields-wrap{display:flex;padding-top:16px}.vc-chrome-fields{display:flex;flex:1;margin-left:-6px}.vc-chrome-field{padding-left:6px;width:100%}.vc-chrome-toggle-btn{position:relative;text-align:right;width:32px}.vc-chrome-toggle-icon{cursor:pointer;margin-right:-4px;margin-top:12px;position:relative;z-index:2}.vc-chrome-toggle-icon-highlight{background:#eee;border-radius:4px;height:28px;left:12px;position:absolute;top:10px;width:24px}.vc-chrome-hue-wrap{margin-bottom:8px}.vc-chrome-alpha-wrap,.vc-chrome-hue-wrap{height:10px;position:relative}.vc-chrome-alpha-wrap .vc-alpha-gradient,.vc-chrome-hue-wrap .vc-hue{border-radius:2px}.vc-chrome-alpha-wrap .vc-alpha-picker,.vc-chrome-hue-wrap .vc-hue-picker{background-color:#f8f8f8;border-radius:6px;box-shadow:0 1px 4px 0 rgba(0,0,0,.37);height:12px;transform:translate(-6px,-2px);width:12px}.vc-chrome-body{background-color:#fff;padding:16px 16px 12px}.vc-chrome-saturation-wrap{border-radius:2px 2px 0 0;overflow:hidden;padding-bottom:55%;position:relative;width:100%}.vc-chrome-saturation-wrap .vc-saturation-circle{height:12px;width:12px}.vc-chrome-fields .vc-input__input{border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #dadada;color:#333;font-size:11px;height:21px;text-align:center;width:100%}.vc-chrome-fields .vc-input__label{color:#969696;display:block;font-size:11px;line-height:11px;margin-top:12px;text-align:center;text-transform:uppercase}.vc-chrome__disable-alpha .vc-chrome-active-color{height:18px;width:18px}.vc-chrome__disable-alpha .vc-chrome-color-wrap{width:30px}.vc-chrome__disable-alpha .vc-chrome-hue-wrap{margin-bottom:4px;margin-top:4px}\";\nstyleInject(css_248z);\n\nscript.render = render;\nscript.__file = \"src/components/chrome/chrome.vue\";\n\nscript.install = install;\n\nexport { script as default };\n","import '../assets/NcColorPicker-CO_Jq2Ow.css';\nimport { defineComponent, mergeModels, useModel, ref, computed, createBlock, openBlock, unref, withCtx, createElementVNode, normalizeClass, createVNode, createElementBlock, createCommentVNode, Transition, Fragment, renderList, normalizeStyle, createTextVNode, toDisplayString, renderSlot, normalizeProps, guardReactiveProps } from \"vue\";\nimport { Chrome } from \"@ckpack/vue-color\";\nimport { d as mdiCheck, u as mdiCloseCircleOutline, v as mdiArrowLeft, w as mdiDotsHorizontal } from \"./mdi-CpchYUUV.mjs\";\nimport { r as register, w as t1, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { d as defaultPalette, a as COLOR_BLACK, b as COLOR_WHITE } from \"./colors-CL_wvNtd.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcButton } from \"./NcButton-CzpKEx4V.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { N as NcPopover } from \"./NcPopover-C-MTaPCs.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t1);\nconst _hoisted_1 = [\"aria-label\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"color-picker__simple\"\n};\nconst _hoisted_3 = [\"aria-label\", \"name\", \"checked\", \"onClick\"];\nconst _hoisted_4 = [\"title\"];\nconst _hoisted_5 = [\"aria-label\", \"name\", \"checked\"];\nconst _hoisted_6 = {\n key: 0,\n class: \"color-picker__navigation\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcColorPicker\",\n props: /* @__PURE__ */ mergeModels({\n advancedFields: { type: Boolean },\n clearable: { type: Boolean },\n container: { default: \"body\" },\n palette: { default: () => [] },\n paletteOnly: { type: Boolean }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {},\n \"open\": { type: Boolean },\n \"openModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"submit\", \"closed\"], [\"update:modelValue\", \"update:open\"]),\n setup(__props, { emit: __emit }) {\n const currentColor = useModel(__props, \"modelValue\");\n const open = useModel(__props, \"open\");\n const props = __props;\n const emit = __emit;\n const HEX_REGEX = /^#([a-f0-9]{3}|[a-f0-9]{6})$/i;\n const id = createElementId();\n const advanced = ref(false);\n const normalizedPalette = computed(() => {\n let palette = props.palette;\n for (const color of palette) {\n if (typeof color === \"string\" && !color.match(HEX_REGEX) || typeof color === \"object\" && !color.color?.match(HEX_REGEX)) {\n logger.error(\"[NcColorPicker] Invalid palette passed\", { color });\n palette = [];\n break;\n }\n }\n if (palette.length === 0) {\n palette = props.clearable ? [...defaultPalette, COLOR_BLACK, COLOR_WHITE] : [...defaultPalette];\n }\n return palette.map((item) => ({\n color: typeof item === \"object\" ? item.color : item,\n name: typeof item === \"object\" && item.name ? item.name : t(\"A color with a HEX value {hex}\", { hex: typeof item === \"string\" ? item : item.color })\n }));\n });\n function handleConfirm(hideCallback) {\n emit(\"submit\", currentColor.value);\n hideCallback();\n advanced.value = false;\n }\n function toggleColor(color) {\n color = typeof color === \"string\" ? color : color.color;\n if (props.clearable && currentColor.value === color) {\n currentColor.value = void 0;\n } else {\n currentColor.value = color;\n }\n }\n function pickCustomColor(color) {\n currentColor.value = color.hex;\n }\n function getContrastColor(color) {\n return calculateLuma(color) > 0.5 ? COLOR_BLACK.color : COLOR_WHITE.color;\n }\n function calculateLuma(color) {\n const [red, green, blue] = hexToRGB(color);\n return (0.2126 * red + 0.7152 * green + 0.0722 * blue) / 255;\n }\n function hexToRGB(hex) {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n if (!result) {\n return [0, 0, 0];\n }\n return [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)];\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcPopover), {\n shown: open.value,\n \"onUpdate:shown\": _cache[3] || (_cache[3] = ($event) => open.value = $event),\n container: _ctx.container,\n \"popup-role\": \"dialog\",\n onApplyHide: _cache[4] || (_cache[4] = ($event) => emit(\"closed\"))\n }, {\n trigger: withCtx((slotProps) => [\n renderSlot(_ctx.$slots, \"default\", normalizeProps(guardReactiveProps(slotProps)), void 0, true)\n ]),\n default: withCtx((slotProps) => [\n createElementVNode(\"div\", {\n role: \"dialog\",\n class: normalizeClass([\"color-picker\", {\n \"color-picker--advanced-fields\": advanced.value && _ctx.advancedFields,\n \"color-picker--clearable\": _ctx.clearable\n }]),\n \"aria-modal\": \"true\",\n \"aria-label\": unref(t)(\"Color picker\")\n }, [\n createVNode(Transition, {\n name: \"slide\",\n mode: \"out-in\"\n }, {\n default: withCtx(() => [\n !advanced.value ? (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(normalizedPalette.value, ({ color, name }, index) => {\n return openBlock(), createElementBlock(\"label\", {\n key: index,\n class: normalizeClass([\"color-picker__simple-color-circle\", { \"color-picker__simple-color-circle--active\": color === currentColor.value }]),\n style: normalizeStyle({\n backgroundColor: color,\n color: getContrastColor(color)\n })\n }, [\n color === currentColor.value ? (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 0,\n path: unref(mdiCheck)\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"input\", {\n type: \"radio\",\n class: \"hidden-visually\",\n \"aria-label\": name,\n name: `color-picker-${unref(id)}`,\n checked: color === currentColor.value,\n onClick: ($event) => toggleColor(color)\n }, null, 8, _hoisted_3)\n ], 6);\n }), 128)),\n _ctx.clearable ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"color-picker__clear\",\n title: unref(t)(\"No color\")\n }, [\n createVNode(unref(NcIconSvgWrapper), {\n size: currentColor.value ? 28 : 34,\n path: unref(mdiCloseCircleOutline)\n }, null, 8, [\"size\", \"path\"]),\n createElementVNode(\"input\", {\n type: \"radio\",\n class: \"hidden-visually\",\n \"aria-label\": unref(t)(\"No color\"),\n name: `color-picker-${unref(id)}`,\n checked: !currentColor.value,\n onClick: _cache[0] || (_cache[0] = ($event) => currentColor.value = void 0)\n }, null, 8, _hoisted_5)\n ], 8, _hoisted_4)) : createCommentVNode(\"\", true)\n ])) : (openBlock(), createBlock(unref(Chrome), {\n key: 1,\n class: \"color-picker__advanced\",\n \"disable-alpha\": true,\n \"disable-fields\": !_ctx.advancedFields,\n \"model-value\": currentColor.value ?? \"#000000\",\n \"onUpdate:modelValue\": pickCustomColor\n }, null, 8, [\"disable-fields\", \"model-value\"]))\n ]),\n _: 1\n }),\n !_ctx.paletteOnly ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n advanced.value ? (openBlock(), createBlock(unref(NcButton), {\n key: 0,\n \"aria-label\": unref(t)(\"Back\"),\n title: unref(t)(\"Back\"),\n variant: \"tertiary\",\n onClick: _cache[1] || (_cache[1] = ($event) => advanced.value = false)\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), {\n directional: \"\",\n path: unref(mdiArrowLeft)\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\"])) : (openBlock(), createBlock(unref(NcButton), {\n key: 1,\n \"aria-label\": unref(t)(\"More options\"),\n title: unref(t)(\"More options\"),\n variant: \"tertiary\",\n onClick: _cache[2] || (_cache[2] = ($event) => advanced.value = true)\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), { path: unref(mdiDotsHorizontal) }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\"])),\n createVNode(unref(NcButton), {\n variant: \"primary\",\n onClick: ($event) => handleConfirm(slotProps.hide)\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Choose\")), 1)\n ]),\n _: 2\n }, 1032, [\"onClick\"])\n ])) : createCommentVNode(\"\", true)\n ], 10, _hoisted_1)\n ]),\n _: 3\n }, 8, [\"shown\", \"container\"]);\n };\n }\n});\nconst NcColorPicker = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-3d24879b\"]]);\nexport {\n NcColorPicker as N\n};\n//# sourceMappingURL=NcColorPicker-3wpX7pKD.mjs.map\n","import '../assets/NcContent-CVIwhwfc.css';\nimport { defineComponent, provide, computed, ref, onBeforeMount, createElementBlock, openBlock, normalizeClass, createBlock, renderSlot, Teleport, createElementVNode, withDirectives, toDisplayString, unref, createVNode, withModifiers, withCtx, createTextVNode, vShow, nextTick } from \"vue\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { N as NcButton } from \"./NcButton-CzpKEx4V.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { r as register, H as t30, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { H as HAS_APP_NAVIGATION_KEY, C as CONTENT_SELECTOR_KEY } from \"./constants-Ciwvl5xb.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t30);\nconst contentSvg = '<!--\\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n<svg width=\"395\" height=\"314\" viewBox=\"0 0 395 314\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<rect width=\"395\" height=\"314\" rx=\"11\" fill=\"#439DCD\"/>\\n<rect x=\"13\" y=\"51\" width=\"366\" height=\"248\" rx=\"8\" fill=\"white\"/>\\n<rect x=\"22\" y=\"111\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"127\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"63\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"191\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"143\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"79\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"159\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"95\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"175\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<path d=\"M288 145C277.56 147.8 265.32 149 254 149C242.68 149 230.44 147.8 220 145L218 153C225.44 155 234 156.32 242 157V209H250V185H258V209H266V157C274 156.32 282.56 155 290 153L288 145ZM254 145C258.4 145 262 141.4 262 137C262 132.6 258.4 129 254 129C249.6 129 246 132.6 246 137C246 141.4 249.6 145 254 145Z\" fill=\"#DEDEDE\"/>\\n<path d=\"M43.5358 13C38.6641 13 34.535 16.2415 33.2552 20.6333C32.143 18.3038 29.7327 16.6718 26.9564 16.6718C23.1385 16.6718 20 19.7521 20 23.4993C20 27.2465 23.1385 30.3282 26.9564 30.3282C29.7327 30.3282 32.1429 28.6952 33.2552 26.3653C34.535 30.7575 38.6641 34 43.5358 34C48.3715 34 52.4796 30.8064 53.7921 26.4637C54.9249 28.7407 57.3053 30.3282 60.0421 30.3282C63.8601 30.3282 67 27.2465 67 23.4993C67 19.7521 63.8601 16.6718 60.0421 16.6718C57.3053 16.6718 54.9249 18.2583 53.7921 20.5349C52.4796 16.1926 48.3715 13 43.5358 13ZM43.5358 17.0079C47.2134 17.0079 50.1512 19.8899 50.1512 23.4993C50.1512 27.1087 47.2134 29.9921 43.5358 29.9921C39.8583 29.9921 36.9218 27.1087 36.9218 23.4993C36.9218 19.8899 39.8583 17.0079 43.5358 17.0079ZM26.9564 20.6797C28.5677 20.6797 29.8307 21.9179 29.8307 23.4993C29.8307 25.0807 28.5677 26.3203 26.9564 26.3203C25.3452 26.3203 24.0836 25.0807 24.0836 23.4993C24.0836 21.9179 25.3452 20.6797 26.9564 20.6797ZM60.0421 20.6797C61.6534 20.6797 62.9164 21.9179 62.9164 23.4993C62.9164 25.0807 61.6534 26.3203 60.0421 26.3203C58.4309 26.3203 57.1693 25.0807 57.1693 23.4993C57.1693 21.9179 58.4309 20.6797 60.0421 20.6797Z\" fill=\"white\"/>\\n<rect x=\"79\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"99\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"119\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"139\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"159\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"179\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 0C5.37258 0 0 5.37259 0 12V302C0 308.627 5.37259 314 12 314H383C389.627 314 395 308.627 395 302V12C395 5.37258 389.627 0 383 0H12ZM140 44C132.268 44 126 50.268 126 58V292C126 299.732 132.268 306 140 306H372C379.732 306 386 299.732 386 292V58C386 50.268 379.732 44 372 44H140Z\" fill=\"black\" fill-opacity=\"0.35\"/>\\n</svg>\\n';\nconst navigationSvg = '<!--\\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n<svg width=\"395\" height=\"314\" viewBox=\"0 0 395 314\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<rect width=\"395\" height=\"314\" rx=\"11\" fill=\"#439DCD\"/>\\n<rect x=\"13\" y=\"51\" width=\"366\" height=\"248\" rx=\"8\" fill=\"white\"/>\\n<rect x=\"22\" y=\"111\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"127\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"63\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"191\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"143\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"79\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"159\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"95\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"175\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<path d=\"M288 145C277.56 147.8 265.32 149 254 149C242.68 149 230.44 147.8 220 145L218 153C225.44 155 234 156.32 242 157V209H250V185H258V209H266V157C274 156.32 282.56 155 290 153L288 145ZM254 145C258.4 145 262 141.4 262 137C262 132.6 258.4 129 254 129C249.6 129 246 132.6 246 137C246 141.4 249.6 145 254 145Z\" fill=\"#DEDEDE\"/>\\n<path d=\"M43.5358 13C38.6641 13 34.535 16.2415 33.2552 20.6333C32.143 18.3038 29.7327 16.6718 26.9564 16.6718C23.1385 16.6718 20 19.7521 20 23.4993C20 27.2465 23.1385 30.3282 26.9564 30.3282C29.7327 30.3282 32.1429 28.6952 33.2552 26.3653C34.535 30.7575 38.6641 34 43.5358 34C48.3715 34 52.4796 30.8064 53.7921 26.4637C54.9249 28.7407 57.3053 30.3282 60.0421 30.3282C63.8601 30.3282 67 27.2465 67 23.4993C67 19.7521 63.8601 16.6718 60.0421 16.6718C57.3053 16.6718 54.9249 18.2583 53.7921 20.5349C52.4796 16.1926 48.3715 13 43.5358 13ZM43.5358 17.0079C47.2134 17.0079 50.1512 19.8899 50.1512 23.4993C50.1512 27.1087 47.2134 29.9921 43.5358 29.9921C39.8583 29.9921 36.9218 27.1087 36.9218 23.4993C36.9218 19.8899 39.8583 17.0079 43.5358 17.0079ZM26.9564 20.6797C28.5677 20.6797 29.8307 21.9179 29.8307 23.4993C29.8307 25.0807 28.5677 26.3203 26.9564 26.3203C25.3452 26.3203 24.0836 25.0807 24.0836 23.4993C24.0836 21.9179 25.3452 20.6797 26.9564 20.6797ZM60.0421 20.6797C61.6534 20.6797 62.9164 21.9179 62.9164 23.4993C62.9164 25.0807 61.6534 26.3203 60.0421 26.3203C58.4309 26.3203 57.1693 25.0807 57.1693 23.4993C57.1693 21.9179 58.4309 20.6797 60.0421 20.6797Z\" fill=\"white\"/>\\n<rect x=\"79\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"99\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"119\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"139\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"159\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"179\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 0C5.37258 0 0 5.37259 0 12V302C0 308.627 5.37259 314 12 314H383C389.627 314 395 308.627 395 302V12C395 5.37258 389.627 0 383 0H12ZM112 44C119.732 44 126 50.268 126 58V292C126 299.732 119.732 306 112 306H20C12.268 306 6 299.732 6 292V58C6 50.268 12.268 44 20 44H112Z\" fill=\"black\" fill-opacity=\"0.35\"/>\\n</svg>\\n';\nconst _hoisted_1 = { class: \"vue-skip-actions__container\" };\nconst _hoisted_2 = { class: \"vue-skip-actions__headline\" };\nconst _hoisted_3 = { class: \"vue-skip-actions__buttons\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcContent\",\n props: {\n appName: {}\n },\n setup(__props) {\n const props = __props;\n provide(HAS_APP_NAVIGATION_KEY, setAppNavigation);\n provide(CONTENT_SELECTOR_KEY, \"#content-vue\");\n provide(\"appName\", computed(() => props.appName));\n const isMobile = useIsMobile();\n const hasAppNavigation = ref(false);\n const currentFocus = ref();\n const currentImage = computed(() => currentFocus.value === \"navigation\" ? navigationSvg : contentSvg);\n onBeforeMount(() => {\n const container = document.getElementById(\"skip-actions\");\n if (container) {\n container.innerHTML = \"\";\n container.classList.add(\"vue-skip-actions\");\n }\n });\n function openAppNavigation() {\n emit(\"toggle-navigation\", { open: true });\n nextTick(() => {\n window.location.hash = \"app-navigation-vue\";\n document.getElementById(\"app-navigation-vue\").focus();\n });\n }\n function setAppNavigation(value) {\n hasAppNavigation.value = value;\n if (!currentFocus.value) {\n currentFocus.value = \"navigation\";\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n id: \"content-vue\",\n class: normalizeClass([\"content\", `app-${_ctx.appName.toLowerCase()}`])\n }, [\n (openBlock(), createBlock(Teleport, { to: \"#skip-actions\" }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"div\", _hoisted_2, toDisplayString(unref(t)(\"Keyboard navigation help\")), 1),\n createElementVNode(\"div\", _hoisted_3, [\n withDirectives(createVNode(NcButton, {\n href: \"#app-navigation-vue\",\n variant: \"tertiary\",\n onClick: withModifiers(openAppNavigation, [\"prevent\"]),\n onFocusin: _cache[0] || (_cache[0] = ($event) => currentFocus.value = \"navigation\"),\n onMouseover: _cache[1] || (_cache[1] = ($event) => currentFocus.value = \"navigation\")\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Skip to app navigation\")), 1)\n ]),\n _: 1\n }, 512), [\n [vShow, hasAppNavigation.value]\n ]),\n createVNode(NcButton, {\n href: \"#app-content-vue\",\n variant: \"tertiary\",\n onFocusin: _cache[2] || (_cache[2] = ($event) => currentFocus.value = \"content\"),\n onMouseover: _cache[3] || (_cache[3] = ($event) => currentFocus.value = \"content\")\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Skip to main content\")), 1)\n ]),\n _: 1\n })\n ]),\n withDirectives(createVNode(NcIconSvgWrapper, {\n class: \"vue-skip-actions__image\",\n svg: currentImage.value,\n size: \"auto\"\n }, null, 8, [\"svg\"]), [\n [vShow, !unref(isMobile)]\n ])\n ])\n ])),\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2);\n };\n }\n});\nconst NcContent = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-d9b0d7e8\"]]);\nexport {\n NcContent as N\n};\n//# sourceMappingURL=NcContent-BrRHLO19.mjs.map\n","import '../assets/NcDashboardWidget-DFY9GRrd.css';\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, createBlock, renderSlot, withCtx, createVNode, Fragment, renderList, toHandlers } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { r as register, z as t35, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { N as NcAvatar } from \"./NcAvatar-CK_dTsmT.mjs\";\nimport { N as NcDashboardWidgetItem } from \"./NcDashboardWidgetItem-BjsN8uF0.mjs\";\nimport { N as NcEmptyContent } from \"./NcEmptyContent-B8-90BSI.mjs\";\nconst _sfc_main$1 = {\n name: \"CheckIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon check-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$1);\n}\nconst Check = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1]]);\nregister(t35);\nconst _sfc_main = {\n name: \"NcDashboardWidget\",\n components: {\n NcAvatar,\n NcDashboardWidgetItem,\n NcEmptyContent,\n Check\n },\n props: {\n /**\n * An array containing the items to show (specific structure must be respected,\n * except if you override item rendering in the default slot).\n */\n items: {\n type: Array,\n default: () => {\n return [];\n }\n },\n /**\n * If this is set, a \"show more\" text is displayed on the widget's bottom.\n * It's a link pointing to this URL.\n */\n showMoreUrl: {\n type: String,\n default: \"\"\n },\n /**\n * The text of show more button.\n *\n * Expected to be in the form \"More {itemName} …\"\n */\n showMoreLabel: {\n type: String,\n default: t(\"More items …\")\n },\n /**\n * A boolean to put the widget in a loading state.\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * An object containing context menu entries that will be displayed for each item.\n */\n itemMenu: {\n type: Object,\n default: () => {\n return {};\n }\n },\n /**\n * Whether both the items and the empty content message are shown.\n * Usefull for e.g. showing \"No mentions\" and a list of elements.\n */\n showItemsAndEmptyContent: {\n type: Boolean,\n default: false\n },\n /**\n * The text to show in the empty content area.\n */\n emptyContentMessage: {\n type: String,\n default: \"\"\n },\n /**\n * The text to show in the half empty content area.\n */\n halfEmptyContentMessage: {\n type: String,\n default: \"\"\n }\n },\n computed: {\n // forward menu events to my parent\n handlers() {\n const h = {};\n for (const evName in this.itemMenu) {\n h[evName] = (it) => {\n this.$emit(evName, it);\n };\n }\n return h;\n },\n displayedItems() {\n const nbItems = this.showMoreUrl && this.items.length >= this.maxItemNumber ? this.maxItemNumber - 1 : this.maxItemNumber;\n return this.items.slice(0, nbItems);\n },\n showHalfEmptyContentArea() {\n return this.showItemsAndEmptyContent && this.halfEmptyContentString && this.items.length !== 0;\n },\n halfEmptyContentString() {\n return this.halfEmptyContentMessage || this.emptyContentMessage;\n },\n maxItemNumber() {\n return this.showItemsAndEmptyContent ? 5 : 7;\n },\n showMore() {\n return this.showMoreUrl && this.items.length >= this.maxItemNumber;\n }\n }\n};\nconst _hoisted_1 = { class: \"dashboard-widget\" };\nconst _hoisted_2 = { key: 1 };\nconst _hoisted_3 = [\"href\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_Check = resolveComponent(\"Check\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n const _component_NcDashboardWidgetItem = resolveComponent(\"NcDashboardWidgetItem\");\n const _component_NcAvatar = resolveComponent(\"NcAvatar\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n $options.showHalfEmptyContentArea ? (openBlock(), createBlock(_component_NcEmptyContent, {\n key: 0,\n description: $options.halfEmptyContentString,\n class: \"half-screen\"\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"halfEmptyContentIcon\", {}, () => [\n createVNode(_component_Check)\n ], true)\n ]),\n _: 3\n }, 8, [\"description\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"ul\", null, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.displayedItems, (item) => {\n return openBlock(), createElementBlock(\"li\", {\n key: item.id\n }, [\n renderSlot(_ctx.$slots, \"default\", { item }, () => [\n createVNode(_component_NcDashboardWidgetItem, mergeProps({ ref_for: true }, item, { \"item-menu\": $props.itemMenu }, toHandlers($options.handlers)), null, 16, [\"item-menu\"])\n ], true)\n ]);\n }), 128))\n ]),\n $props.loading ? (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n (openBlock(), createElementBlock(Fragment, null, renderList(7, (i) => {\n return createElementVNode(\"div\", {\n key: i,\n class: \"item-list__entry\"\n }, [\n createVNode(_component_NcAvatar, {\n class: \"item-avatar\",\n size: 44\n }),\n _cache[0] || (_cache[0] = createElementVNode(\"div\", { class: \"item__details\" }, [\n createElementVNode(\"h3\", null, \" \"),\n createElementVNode(\"p\", { class: \"message\" }, \" \")\n ], -1))\n ]);\n }), 64))\n ])) : $props.items.length === 0 ? renderSlot(_ctx.$slots, \"empty-content\", { key: 2 }, () => [\n $props.emptyContentMessage ? (openBlock(), createBlock(_component_NcEmptyContent, {\n key: 0,\n description: $props.emptyContentMessage\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"emptyContentIcon\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"description\"])) : createCommentVNode(\"\", true)\n ], true) : $options.showMore ? (openBlock(), createElementBlock(\"a\", {\n key: 3,\n href: $props.showMoreUrl,\n target: \"_blank\",\n class: \"more\",\n tabindex: \"0\"\n }, toDisplayString($props.showMoreLabel), 9, _hoisted_3)) : createCommentVNode(\"\", true)\n ]);\n}\nconst NcDashboardWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-6b5fc397\"]]);\nexport {\n NcDashboardWidget as N\n};\n//# sourceMappingURL=NcDashboardWidget-1tax78_e.mjs.map\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate<DateType extends Date>(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addDays} function options.\n */\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n * @param options - An object with options\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n if (!amount) return _date;\n\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addMonths} function options.\n */\n\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be added.\n * @param options - The options object\n *\n * @returns The new date with the months added\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n *\n * // Add one month to 30 January 2023:\n * const result = addMonths(new Date(2023, 0, 30), 1)\n * //=> Tue Feb 28 2023 00:00:00\n */\nexport function addMonths(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n const dayOfMonth = _date.getDate();\n\n // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n const endOfDesiredMonth = constructFrom(options?.in || date, _date.getTime());\n endOfDesiredMonth.setMonth(_date.getMonth() + amount + 1, 0);\n const daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n _date.setFullYear(\n endOfDesiredMonth.getFullYear(),\n endOfDesiredMonth.getMonth(),\n dayOfMonth,\n );\n return _date;\n }\n}\n\n// Fallback for modularized imports:\nexport default addMonths;\n","import { addDays } from \"./addDays.js\";\nimport { addMonths } from \"./addMonths.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link add} function options.\n */\n\n/**\n * @name add\n * @category Common Helpers\n * @summary Add the specified years, months, weeks, days, hours, minutes, and seconds to the given date.\n *\n * @description\n * Add the specified years, months, weeks, days, hours, minutes, and seconds to the given date.\n *\n * @typeParam DateType - The `Date` type the function operates on. Gets inferred from passed arguments. Allows using extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param duration - The object with years, months, weeks, days, hours, minutes, and seconds to be added.\n * @param options - An object with options\n *\n * @returns The new date with the seconds added\n *\n * @example\n * // Add the following duration to 1 September 2014, 10:19:50\n * const result = add(new Date(2014, 8, 1, 10, 19, 50), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30,\n * })\n * //=> Thu Jun 15 2017 15:29:20\n */\nexport function add(date, duration, options) {\n const {\n years = 0,\n months = 0,\n weeks = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n } = duration;\n\n // Add years and months\n const _date = toDate(date, options?.in);\n const dateWithMonths =\n months || years ? addMonths(_date, months + years * 12) : _date;\n\n // Add weeks and days\n const dateWithDays =\n days || weeks ? addDays(dateWithMonths, days + weeks * 7) : dateWithMonths;\n\n // Add days, hours, minutes, and seconds\n const minutesToAdd = minutes + hours * 60;\n const secondsToAdd = seconds + minutesToAdd * 60;\n const msToAdd = secondsToAdd * 1000;\n\n return constructFrom(options?.in || date, +dateWithDays + msToAdd);\n}\n\n// Fallback for modularized imports:\nexport default add;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addMilliseconds} function options.\n */\n\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of milliseconds to be added.\n * @param options - The options object\n *\n * @returns The new date with the milliseconds added\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport function addMilliseconds(date, amount, options) {\n return constructFrom(options?.in || date, +toDate(date) + amount);\n}\n\n// Fallback for modularized imports:\nexport default addMilliseconds;\n","import { addMilliseconds } from \"./addMilliseconds.js\";\nimport { millisecondsInHour } from \"./constants.js\";\n\n/**\n * The {@link addHours} function options.\n */\n\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of hours to be added\n * @param options - An object with options\n *\n * @returns The new date with the hours added\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\nexport function addHours(date, amount, options) {\n return addMilliseconds(date, amount * millisecondsInHour, options);\n}\n\n// Fallback for modularized imports:\nexport default addHours;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfISOWeek} function options.\n */\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date, options) {\n return startOfWeek(date, { ...options, weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeekYear} function options.\n */\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(_date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(_date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { toDate } from \"../toDate.js\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { constructFrom } from \"../constructFrom.js\";\n\nexport function normalizeDates(context, ...dates) {\n const normalize = constructFrom.bind(\n null,\n context || dates.find((date) => typeof date === \"object\"),\n );\n return dates.map(normalize);\n}\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfDay} function options.\n */\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { millisecondsInDay } from \"./constants.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link differenceInCalendarDays} function options.\n */\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - The options object\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const laterStartOfDay = startOfDay(laterDate_);\n const earlierStartOfDay = startOfDay(earlierDate_);\n\n const laterTimestamp =\n +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);\n const earlierTimestamp =\n +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { getISOWeekYear } from \"./getISOWeekYear.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\n\n/**\n * The {@link startOfISOWeekYear} function options.\n */\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date, options) {\n const year = getISOWeekYear(date, options);\n const fourthOfJanuary = constructFrom(options?.in || date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { addMonths } from \"./addMonths.js\";\n\n/**\n * The {@link addQuarters} function options.\n */\n\n/**\n * @name addQuarters\n * @category Quarter Helpers\n * @summary Add the specified number of year quarters to the given date.\n *\n * @description\n * Add the specified number of year quarters to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of quarters to be added.\n * @param options - An object with options\n *\n * @returns The new date with the quarters added\n *\n * @example\n * // Add 1 quarter to 1 September 2014:\n * const result = addQuarters(new Date(2014, 8, 1), 1)\n * //=; Mon Dec 01 2014 00:00:00\n */\nexport function addQuarters(date, amount, options) {\n return addMonths(date, amount * 3, options);\n}\n\n// Fallback for modularized imports:\nexport default addQuarters;\n","import { addMonths } from \"./addMonths.js\";\n\n/**\n * The {@link addYears} function options.\n */\n\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The date to be changed\n * @param amount - The amount of years to be added.\n * @param options - The options\n *\n * @returns The new date with the years added\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\nexport function addYears(date, amount, options) {\n return addMonths(date, amount * 12, options);\n}\n\n// Fallback for modularized imports:\nexport default addYears;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The result of the comparison\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\nexport function compareAsc(dateLeft, dateRight) {\n const diff = +toDate(dateLeft) - +toDate(dateRight);\n\n if (diff < 0) return -1;\n else if (diff > 0) return 1;\n\n // Return 0 if diff is 0; return NaN if diff is NaN\n return diff;\n}\n\n// Fallback for modularized imports:\nexport default compareAsc;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","import { isDate } from \"./isDate.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertible into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n return !((!isDate(date) && typeof date !== \"number\") || isNaN(+toDate(date)));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getQuarter} function options.\n */\n\n/**\n * @name getQuarter\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The quarter\n *\n * @example\n * // Which quarter is 2 July 2014?\n * const result = getQuarter(new Date(2014, 6, 2));\n * //=> 3\n */\nexport function getQuarter(date, options) {\n const _date = toDate(date, options?.in);\n const quarter = Math.trunc(_date.getMonth() / 3) + 1;\n return quarter;\n}\n\n// Fallback for modularized imports:\nexport default getQuarter;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\n\n/**\n * The {@link differenceInCalendarYears} function options.\n */\n\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - An object with options\n\n * @returns The number of calendar years\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * );\n * //=> 2\n */\nexport function differenceInCalendarYears(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return laterDate_.getFullYear() - earlierDate_.getFullYear();\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarYears;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { compareAsc } from \"./compareAsc.js\";\nimport { differenceInCalendarYears } from \"./differenceInCalendarYears.js\";\n\n/**\n * The {@link differenceInYears} function options.\n */\n\n/**\n * @name differenceInYears\n * @category Year Helpers\n * @summary Get the number of full years between the given dates.\n *\n * @description\n * Get the number of full years between the given dates.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - An object with options\n *\n * @returns The number of full years\n *\n * @example\n * // How many full years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInYears(new Date(2015, 1, 11), new Date(2013, 11, 31))\n * //=> 1\n */\nexport function differenceInYears(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n // -1 if the left date is earlier than the right date\n // 2023-12-31 - 2024-01-01 = -1\n const sign = compareAsc(laterDate_, earlierDate_);\n\n // First calculate the difference in calendar years\n // 2024-01-01 - 2023-12-31 = 1 year\n const diff = Math.abs(differenceInCalendarYears(laterDate_, earlierDate_));\n\n // Now we need to calculate if the difference is full. To do that we set\n // both dates to the same year and check if the both date's month and day\n // form a full year.\n laterDate_.setFullYear(1584);\n earlierDate_.setFullYear(1584);\n\n // For it to be true, when the later date is indeed later than the earlier date\n // (2026-02-01 - 2023-12-10 = 3 years), the difference is full if\n // the normalized later date is also later than the normalized earlier date.\n // In our example, 1584-02-01 is earlier than 1584-12-10, so the difference\n // is partial, hence we need to subtract 1 from the difference 3 - 1 = 2.\n const partial = compareAsc(laterDate_, earlierDate_) === -sign;\n\n const result = sign * (diff - +partial);\n\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}\n\n// Fallback for modularized imports:\nexport default differenceInYears;\n","import { normalizeDates } from \"./normalizeDates.js\";\n\nexport function normalizeInterval(context, interval) {\n const [start, end] = normalizeDates(context, interval.start, interval.end);\n return { start, end };\n}\n","import { normalizeInterval } from \"./_lib/normalizeInterval.js\";\nimport { constructFrom } from \"./constructFrom.js\";\n\n/**\n * The {@link eachDayOfInterval} function options.\n */\n\n/**\n * The {@link eachDayOfInterval} function result type. It resolves the proper data type.\n * It uses the first argument date object type, starting from the date argument,\n * then the start interval date, and finally the end interval date. If\n * a context function is passed, it uses the context function return type.\n */\n\n/**\n * @name eachDayOfInterval\n * @category Interval Helpers\n * @summary Return the array of dates within the specified time interval.\n *\n * @description\n * Return the array of dates within the specified time interval.\n *\n * @typeParam IntervalType - Interval type.\n * @typeParam Options - Options type.\n *\n * @param interval - The interval.\n * @param options - An object with options.\n *\n * @returns The array with starts of days from the day of the interval start to the day of the interval end\n *\n * @example\n * // Each day between 6 October 2014 and 10 October 2014:\n * const result = eachDayOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 9, 10)\n * })\n * //=> [\n * // Mon Oct 06 2014 00:00:00,\n * // Tue Oct 07 2014 00:00:00,\n * // Wed Oct 08 2014 00:00:00,\n * // Thu Oct 09 2014 00:00:00,\n * // Fri Oct 10 2014 00:00:00\n * // ]\n */\nexport function eachDayOfInterval(interval, options) {\n const { start, end } = normalizeInterval(options?.in, interval);\n\n let reversed = +start > +end;\n const endTime = reversed ? +start : +end;\n const date = reversed ? end : start;\n date.setHours(0, 0, 0, 0);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+date <= endTime) {\n dates.push(constructFrom(start, date));\n date.setDate(date.getDate() + step);\n date.setHours(0, 0, 0, 0);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n\n// Fallback for modularized imports:\nexport default eachDayOfInterval;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfQuarter} function options.\n */\n\n/**\n * @name startOfQuarter\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a quarter\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * const result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\nexport function startOfQuarter(date, options) {\n const _date = toDate(date, options?.in);\n const currentMonth = _date.getMonth();\n const month = currentMonth - (currentMonth % 3);\n _date.setMonth(month, 1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfQuarter;\n","import { normalizeInterval } from \"./_lib/normalizeInterval.js\";\nimport { addQuarters } from \"./addQuarters.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfQuarter } from \"./startOfQuarter.js\";\n\n/**\n * The {@link eachQuarterOfInterval} function options.\n */\n\n/**\n * The {@link eachQuarterOfInterval} function result type. It resolves the proper data type.\n * It uses the first argument date object type, starting from the date argument,\n * then the start interval date, and finally the end interval date. If\n * a context function is passed, it uses the context function return type.\n */\n\n/**\n * @name eachQuarterOfInterval\n * @category Interval Helpers\n * @summary Return the array of quarters within the specified time interval.\n *\n * @description\n * Return the array of quarters within the specified time interval.\n *\n * @typeParam IntervalType - Interval type.\n * @typeParam Options - Options type.\n *\n * @param interval - The interval\n * @param options - An object with options\n *\n * @returns The array with starts of quarters from the quarter of the interval start to the quarter of the interval end\n *\n * @example\n * // Each quarter within interval 6 February 2014 - 10 August 2014:\n * const result = eachQuarterOfInterval({\n * start: new Date(2014, 1, 6),\n * end: new Date(2014, 7, 10),\n * })\n * //=> [\n * // Wed Jan 01 2014 00:00:00,\n * // Tue Apr 01 2014 00:00:00,\n * // Tue Jul 01 2014 00:00:00,\n * // ]\n */\nexport function eachQuarterOfInterval(interval, options) {\n const { start, end } = normalizeInterval(options?.in, interval);\n\n let reversed = +start > +end;\n const endTime = reversed ? +startOfQuarter(start) : +startOfQuarter(end);\n let date = reversed ? startOfQuarter(end) : startOfQuarter(start);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+date <= endTime) {\n dates.push(constructFrom(start, date));\n date = addQuarters(date, step);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n\n// Fallback for modularized imports:\nexport default eachQuarterOfInterval;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfMonth} function options.\n */\n\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date. The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments.\n * Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed,\n * or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a month\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfMonth(date, options) {\n const _date = toDate(date, options?.in);\n _date.setDate(1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfMonth;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfYear} function options.\n */\n\n/**\n * @name endOfYear\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The end of a year\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * const result = endOfYear(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\nexport function endOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n _date.setFullYear(year + 1, 0, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfYear;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfYear} function options.\n */\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date, options) {\n const date_ = toDate(date, options?.in);\n date_.setFullYear(date_.getFullYear(), 0, 1);\n date_.setHours(0, 0, 0, 0);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfWeek} function options.\n */\n\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a week\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport function endOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n\n _date.setDate(_date.getDate() + diff);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfWeek;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfQuarter} function options.\n */\n\n/**\n * @name endOfQuarter\n * @category Quarter Helpers\n * @summary Return the end of a year quarter for the given date.\n *\n * @description\n * Return the end of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a quarter\n *\n * @example\n * // The end of a quarter for 2 September 2014 11:55:00:\n * const result = endOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport function endOfQuarter(date, options) {\n const _date = toDate(date, options?.in);\n const currentMonth = _date.getMonth();\n const month = currentMonth - (currentMonth % 3) + 3;\n _date.setMonth(month, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfQuarter;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.js\";\nimport { startOfYear } from \"./startOfYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDayOfYear} function options.\n */\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeek} function options.\n */\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(options?.in || date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(options?.in || date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (+_date >= +startOfNextYear) {\n return year + 1;\n } else if (+_date >= +startOfThisYear) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getWeekYear } from \"./getWeekYear.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(options?.in || date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { startOfWeekYear } from \"./startOfWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\nexport function getWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.js\";\nimport { getISOWeek } from \"../../getISOWeek.js\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.js\";\nimport { getWeek } from \"../../getWeek.js\";\nimport { getWeekYear } from \"../../getWeekYear.js\";\n\nimport { addLeadingZeros } from \"../addLeadingZeros.js\";\nimport { lightFormatters } from \"./lightFormatters.js\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(+date / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n return addLeadingZeros(+date, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { formatters } from \"./_lib/format/formatters.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { isValid } from \"./isValid.js\";\nimport { toDate } from \"./toDate.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date, options?.in);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDay} function options.\n */\n\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of week, 0 represents Sunday\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\nexport function getDay(date, options) {\n return toDate(date, options?.in).getDay();\n}\n\n// Fallback for modularized imports:\nexport default getDay;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDaysInMonth} function options.\n */\n\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date, considering the context if provided.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The number of days in a month\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nexport function getDaysInMonth(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n const monthIndex = _date.getMonth();\n const lastDayOfMonth = constructFrom(_date, 0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}\n\n// Fallback for modularized imports:\nexport default getDaysInMonth;\n","import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.js\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getHours} function options.\n */\n\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The hours\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * const result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\nexport function getHours(date, options) {\n return toDate(date, options?.in).getHours();\n}\n\n// Fallback for modularized imports:\nexport default getHours;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISODay} function options.\n */\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date, options) {\n const day = toDate(date, options?.in).getDay();\n return day === 0 ? 7 : day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getMinutes} function options.\n */\n\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The minutes\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\nexport function getMinutes(date, options) {\n return toDate(date, options?.in).getMinutes();\n}\n\n// Fallback for modularized imports:\nexport default getMinutes;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getMonth} function options.\n */\n\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The month index (0-11)\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\nexport function getMonth(date, options) {\n return toDate(date, options?.in).getMonth();\n}\n\n// Fallback for modularized imports:\nexport default getMonth;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * @param date - The given date\n *\n * @returns The seconds\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * const result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\nexport function getSeconds(date) {\n return toDate(date).getSeconds();\n}\n\n// Fallback for modularized imports:\nexport default getSeconds;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getYear} function options.\n */\n\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The year\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\nexport function getYear(date, options) {\n return toDate(date, options?.in).getFullYear();\n}\n\n// Fallback for modularized imports:\nexport default getYear;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param date - The date that should be after the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is after the second date\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport function isAfter(date, dateToCompare) {\n return +toDate(date) > +toDate(dateToCompare);\n}\n\n// Fallback for modularized imports:\nexport default isAfter;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param date - The date that should be before the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is before the second date\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport function isBefore(date, dateToCompare) {\n return +toDate(date) < +toDate(dateToCompare);\n}\n\n// Fallback for modularized imports:\nexport default isBefore;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The dates are equal\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * const result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\nexport function isEqual(leftDate, rightDate) {\n return +toDate(leftDate) === +toDate(rightDate);\n}\n\n// Fallback for modularized imports:\nexport default isEqual;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam InputDate - The input `Date` type derived from the passed argument.\n * @typeParam ResultDate - The result `Date` type derived from the passed constructor.\n *\n * @param date - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(date, constructor) {\n const date_ = isConstructor(constructor)\n ? new constructor(0)\n : constructFrom(constructor, 0);\n date_.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n date_.setHours(\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds(),\n );\n return date_;\n}\n\nfunction isConstructor(constructor) {\n return (\n typeof constructor === \"function\" &&\n constructor.prototype?.constructor === constructor\n );\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { constructFrom } from \"../../constructFrom.js\";\nimport { transpose } from \"../../transpose.js\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\n\nexport class ValueSetter extends Setter {\n constructor(\n value,\n\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\n\nexport class DateTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n\n constructor(context, reference) {\n super();\n this.context = context || ((date) => constructFrom(reference, date));\n }\n\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return constructFrom(date, transpose(date, this.context));\n }\n}\n","import { ValueSetter } from \"./Setter.js\";\n\nexport class Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\n","import { Parser } from \"../Parser.js\";\n\nexport class EraParser extends Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","export const numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n millisecondsInSecond,\n} from \"../../constants.js\";\n\nimport { numericPatterns } from \"./constants.js\";\n\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * millisecondsInHour +\n minutes * millisecondsInMinute +\n seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport class YearParser extends Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { getWeekYear } from \"../../../getWeekYear.js\";\n\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"Yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = getWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = constructFrom(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return startOfISOWeek(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\nexport class ExtendedYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class QuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class StandAloneQuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MonthParser extends Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class StandAloneMonthParser extends Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getWeek } from \"./getWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n const date_ = toDate(date, options?.in);\n const diff = getWeek(date_, options) - week;\n date_.setDate(date_.getDate() - diff * 7);\n return toDate(date_, options?.in);\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setWeek } from \"../../../setWeek.js\";\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return startOfWeek(setWeek(date, value, options), options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { getISOWeek } from \"./getISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISOWeek} function options.\n */\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The `Date` type of the context function.\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week, options) {\n const _date = toDate(date, options?.in);\n const diff = getISOWeek(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { setISOWeek } from \"../../../setISOWeek.js\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return startOfISOWeek(setISOWeek(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return parseNumericPattern(numericPatterns.date, dateString);\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nexport class DayOfYearParser extends Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { addDays } from \"./addDays.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const date_ = toDate(date, options?.in);\n const currentDay = date_.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\n// Day of week\nexport class DayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"eo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"co\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.js\";\nimport { getISODay } from \"./getISODay.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISODay} function options.\n */\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday, etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day, options) {\n const date_ = toDate(date, options?.in);\n const currentDay = getISODay(date_, options);\n const diff = day - currentDay;\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { setISODay } from \"../../../setISODay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return mapValue(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return mapValue(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = setISODay(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMMidnightParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1to12Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0to23Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0To11Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1To24Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MinuteParser extends Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return parseNumericPattern(numericPatterns.minute, dateString);\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class SecondParser extends Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return parseNumericPattern(numericPatterns.second, dateString);\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\nexport class FractionOfSecondParser extends Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"XXXX\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"xxxx\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampSecondsParser extends Parser {\n priority = 40;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampMillisecondsParser extends Parser {\n priority = 20;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { EraParser } from \"./parsers/EraParser.js\";\nimport { YearParser } from \"./parsers/YearParser.js\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.js\";\nimport { QuarterParser } from \"./parsers/QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./parsers/MonthParser.js\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.js\";\nimport { DateParser } from \"./parsers/DateParser.js\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.js\";\nimport { DayParser } from \"./parsers/DayParser.js\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./parsers/ISODayParser.js\";\nimport { AMPMParser } from \"./parsers/AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.js\";\nimport { MinuteParser } from \"./parsers/MinuteParser.js\";\nimport { SecondParser } from \"./parsers/SecondParser.js\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport const parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser(),\n};\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getDefaultOptions } from \"./getDefaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\nimport { DateTimezoneSetter } from \"./parse/_lib/Setter.js\";\nimport { parsers } from \"./parse/_lib/parsers.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangeably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, options) {\n const invalidDate = () => constructFrom(options?.in || referenceDate, NaN);\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n if (!formatStr)\n return dateStr ? invalidDate() : toDate(referenceDate, options?.in);\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will try to use the context or\n // the reference date and fallback to the system time zone.\n const setters = [new DateTimezoneSetter(options?.in, referenceDate)];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return invalidDate();\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return invalidDate();\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return invalidDate();\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = toDate(referenceDate, options?.in);\n\n if (isNaN(+date)) return invalidDate();\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return invalidDate();\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return date;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { startOfQuarter } from \"./startOfQuarter.js\";\n\n/**\n * The {@link isSameQuarter} function options.\n */\n\n/**\n * @name isSameQuarter\n * @category Quarter Helpers\n * @summary Are the given dates in the same quarter (and year)?\n *\n * @description\n * Are the given dates in the same quarter (and year)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same quarter (and year)\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2014, 2, 8))\n * //=> true\n *\n * @example\n * // Are 1 January 2014 and 1 January 2015 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2015, 0, 1))\n * //=> false\n */\nexport function isSameQuarter(laterDate, earlierDate, options) {\n const [dateLeft_, dateRight_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return +startOfQuarter(dateLeft_) === +startOfQuarter(dateRight_);\n}\n\n// Fallback for modularized imports:\nexport default isSameQuarter;\n","import { addDays } from \"./addDays.js\";\n\n/**\n * The {@link subDays} function options.\n */\n\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be subtracted.\n * @param options - An object with options\n *\n * @returns The new date with the days subtracted\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\nexport function subDays(date, amount, options) {\n return addDays(date, -amount, options);\n}\n\n// Fallback for modularized imports:\nexport default subDays;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { getDaysInMonth } from \"./getDaysInMonth.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setMonth} function options.\n */\n\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param month - The month index to set (0-11)\n * @param options - The options\n *\n * @returns The new date with the month set\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\nexport function setMonth(date, month, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n const day = _date.getDate();\n\n const midMonth = constructFrom(options?.in || date, 0);\n midMonth.setFullYear(year, month, 15);\n midMonth.setHours(0, 0, 0, 0);\n const daysInMonth = getDaysInMonth(midMonth);\n\n // Set the earlier date, allows to wrap Jan 31 to Feb 28\n _date.setMonth(month, Math.min(day, daysInMonth));\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setMonth;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { setMonth } from \"./setMonth.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link set} function options.\n */\n\n/**\n * @name set\n * @category Common Helpers\n * @summary Set date values to a given date.\n *\n * @description\n * Set date values to a given date.\n *\n * Sets time values to date from object `values`.\n * A value is not set if it is undefined or null or doesn't exist in `values`.\n *\n * Note about bundle size: `set` does not internally use `setX` functions from date-fns but instead opts\n * to use native `Date#setX` methods. If you use this function, you may not want to include the\n * other `setX` functions that date-fns provides if you are concerned about the bundle size.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param values - The date values to be set\n * @param options - The options\n *\n * @returns The new date with options set\n *\n * @example\n * // Transform 1 September 2014 into 20 October 2015 in a single line:\n * const result = set(new Date(2014, 8, 20), { year: 2015, month: 9, date: 20 })\n * //=> Tue Oct 20 2015 00:00:00\n *\n * @example\n * // Set 12 PM to 1 September 2014 01:23:45 to 1 September 2014 12:00:00:\n * const result = set(new Date(2014, 8, 1, 1, 23, 45), { hours: 12 })\n * //=> Mon Sep 01 2014 12:23:45\n */\nexport function set(date, values, options) {\n let _date = toDate(date, options?.in);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(+_date)) return constructFrom(options?.in || date, NaN);\n\n if (values.year != null) _date.setFullYear(values.year);\n if (values.month != null) _date = setMonth(_date, values.month);\n if (values.date != null) _date.setDate(values.date);\n if (values.hours != null) _date.setHours(values.hours);\n if (values.minutes != null) _date.setMinutes(values.minutes);\n if (values.seconds != null) _date.setSeconds(values.seconds);\n if (values.milliseconds != null) _date.setMilliseconds(values.milliseconds);\n\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default set;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setHours} function options.\n */\n\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param hours - The hours of the new date\n * @param options - An object with options\n *\n * @returns The new date with the hours set\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * const result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\nexport function setHours(date, hours, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(hours);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setHours;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setMilliseconds} function options.\n */\n\n/**\n * @name setMilliseconds\n * @category Millisecond Helpers\n * @summary Set the milliseconds to the given date.\n *\n * @description\n * Set the milliseconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param milliseconds - The milliseconds of the new date\n * @param options - The options\n *\n * @returns The new date with the milliseconds set\n *\n * @example\n * // Set 300 milliseconds to 1 September 2014 11:30:40.500:\n * const result = setMilliseconds(new Date(2014, 8, 1, 11, 30, 40, 500), 300)\n * //=> Mon Sep 01 2014 11:30:40.300\n */\nexport function setMilliseconds(date, milliseconds, options) {\n const _date = toDate(date, options?.in);\n _date.setMilliseconds(milliseconds);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setMilliseconds;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setMinutes} function options.\n */\n\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows using extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, returned from the context function, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param minutes - The minutes of the new date\n * @param options - An object with options\n *\n * @returns The new date with the minutes set\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\nexport function setMinutes(date, minutes, options) {\n const date_ = toDate(date, options?.in);\n date_.setMinutes(minutes);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default setMinutes;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setSeconds} function options.\n */\n\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date, with context support.\n *\n * @description\n * Set the seconds to the given date, with an optional context for time zone specification.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param seconds - The seconds of the new date\n * @param options - An object with options\n *\n * @returns The new date with the seconds set\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * const result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\nexport function setSeconds(date, seconds, options) {\n const _date = toDate(date, options?.in);\n _date.setSeconds(seconds);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setSeconds;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setYear} function options.\n */\n\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param year - The year of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the year set\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\nexport function setYear(date, year, options) {\n const date_ = toDate(date, options?.in);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(+date_)) return constructFrom(options?.in || date, NaN);\n\n date_.setFullYear(year);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default setYear;\n","import { addMonths } from \"./addMonths.js\";\n\n/**\n * The subMonths function options.\n */\n\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be subtracted.\n * @param options - An object with options\n *\n * @returns The new date with the months subtracted\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function subMonths(date, amount, options) {\n return addMonths(date, -amount, options);\n}\n\n// Fallback for modularized imports:\nexport default subMonths;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { subDays } from \"./subDays.js\";\nimport { subMonths } from \"./subMonths.js\";\n\n/**\n * The {@link sub} function options.\n */\n\n/**\n * @name sub\n * @category Common Helpers\n * @summary Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @description\n * Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param duration - The object with years, months, weeks, days, hours, minutes and seconds to be subtracted\n * @param options - An object with options\n *\n * | Key | Description |\n * |---------|------------------------------------|\n * | years | Amount of years to be subtracted |\n * | months | Amount of months to be subtracted |\n * | weeks | Amount of weeks to be subtracted |\n * | days | Amount of days to be subtracted |\n * | hours | Amount of hours to be subtracted |\n * | minutes | Amount of minutes to be subtracted |\n * | seconds | Amount of seconds to be subtracted |\n *\n * All values default to 0\n *\n * @returns The new date with the seconds subtracted\n *\n * @example\n * // Subtract the following duration from 15 June 2017 15:29:20\n * const result = sub(new Date(2017, 5, 15, 15, 29, 20), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30\n * })\n * //=> Mon Sep 1 2014 10:19:50\n */\nexport function sub(date, duration, options) {\n const {\n years = 0,\n months = 0,\n weeks = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n } = duration;\n\n const withoutMonths = subMonths(date, months + years * 12, options);\n const withoutDays = subDays(withoutMonths, days + weeks * 7, options);\n\n const minutesToSub = minutes + hours * 60;\n const secondsToSub = seconds + minutesToSub * 60;\n const msToSub = secondsToSub * 1000;\n\n return constructFrom(options?.in || date, +withoutDays - msToSub);\n}\n\n// Fallback for modularized imports:\nexport default sub;\n","import { addYears } from \"./addYears.js\";\n\n/**\n * The {@link subYears} function options.\n */\n\n/**\n * @name subYears\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of years to be subtracted.\n * @param options - An object with options\n *\n * @returns The new date with the years subtracted\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * const result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\nexport function subYears(date, amount, options) {\n return addYears(date, -amount, options);\n}\n\n// Fallback for modularized imports:\nexport default subYears;\n","import { useAttrs as Jn, createElementBlock as W, openBlock as w, createElementVNode as he, unref as s, reactive as ea, computed as j, ref as Z, toRef as qt, watch as rt, defineComponent as We, onMounted as Ue, onUnmounted as Ut, renderSlot as ie, normalizeProps as ze, mergeProps as He, Fragment as ke, createCommentVNode as Q, normalizeStyle as lt, createTextVNode as gt, toDisplayString as Ke, onBeforeUpdate as Zn, nextTick as at, withModifiers as Xt, normalizeClass as De, withDirectives as ua, renderList as Ce, vShow as ia, createVNode as tt, createBlock as Te, withCtx as we, withKeys as xn, Transition as Vt, createSlots as Ge, useSlots as Yt, guardReactiveProps as Je, resolveDynamicComponent as fa, toValue as el, h as tl, render as nn, getCurrentScope as al, onScopeDispose as nl, getCurrentInstance as ll, isRef as ln, Teleport as rl } from \"vue\";\nimport { format as ft, isEqual as Nt, isValid as da, addMonths as Ct, subMonths as Jt, getMonth as Me, getYear as ye, set as Se, startOfMonth as ol, setMonth as sl, setYear as ut, isAfter as _t, isBefore as Ft, eachDayOfInterval as bn, getSeconds as zt, getMinutes as $t, getHours as yt, startOfWeek as Wa, endOfWeek as kn, setHours as ul, setMinutes as il, setSeconds as wn, setMilliseconds as Dn, parse as Na, isDate as dl, subDays as cl, addDays as kt, addHours as fl, addYears as Mn, subYears as $n, endOfYear as An, startOfYear as Gt, differenceInYears as vl, add as Tn, sub as ml, getWeek as pl, getISOWeek as gl, isSameQuarter as rn, eachQuarterOfInterval as yl, startOfQuarter as hl, endOfQuarter as on, getQuarter as sn, differenceInCalendarDays as bl, getDay as kl } from \"date-fns\";\nfunction jt() {\n const e = Jn();\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\",\n ...e\n },\n [\n he(\"path\", {\n d: \"M29.333 8c0-2.208-1.792-4-4-4h-18.667c-2.208 0-4 1.792-4 4v18.667c0 2.208 1.792 4 4 4h18.667c2.208 0 4-1.792 4-4v-18.667zM26.667 8v18.667c0 0.736-0.597 1.333-1.333 1.333 0 0-18.667 0-18.667 0-0.736 0-1.333-0.597-1.333-1.333 0 0 0-18.667 0-18.667 0-0.736 0.597-1.333 1.333-1.333 0 0 18.667 0 18.667 0 0.736 0 1.333 0.597 1.333 1.333z\"\n }),\n he(\"path\", {\n d: \"M20 2.667v5.333c0 0.736 0.597 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-5.333c0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"\n }),\n he(\"path\", {\n d: \"M9.333 2.667v5.333c0 0.736 0.597 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-5.333c0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"\n }),\n he(\"path\", {\n d: \"M4 14.667h24c0.736 0 1.333-0.597 1.333-1.333s-0.597-1.333-1.333-1.333h-24c-0.736 0-1.333 0.597-1.333 1.333s0.597 1.333 1.333 1.333z\"\n })\n ]\n );\n}\njt.compatConfig = {\n MODE: 3\n};\nfunction Sn() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M23.057 7.057l-16 16c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l16-16c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0z\"\n }),\n he(\"path\", {\n d: \"M7.057 8.943l16 16c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885l-16-16c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z\"\n })\n ]\n );\n}\nSn.compatConfig = {\n MODE: 3\n};\nfunction Ua() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M20.943 23.057l-7.057-7.057c0 0 7.057-7.057 7.057-7.057 0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0l-8 8c-0.521 0.521-0.521 1.365 0 1.885l8 8c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885z\"\n })\n ]\n );\n}\nUa.compatConfig = {\n MODE: 3\n};\nfunction Va() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M12.943 24.943l8-8c0.521-0.521 0.521-1.365 0-1.885l-8-8c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885l7.057 7.057c0 0-7.057 7.057-7.057 7.057-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0z\"\n })\n ]\n );\n}\nVa.compatConfig = {\n MODE: 3\n};\nfunction ja() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M16 1.333c-8.095 0-14.667 6.572-14.667 14.667s6.572 14.667 14.667 14.667c8.095 0 14.667-6.572 14.667-14.667s-6.572-14.667-14.667-14.667zM16 4c6.623 0 12 5.377 12 12s-5.377 12-12 12c-6.623 0-12-5.377-12-12s5.377-12 12-12z\"\n }),\n he(\"path\", {\n d: \"M14.667 8v8c0 0.505 0.285 0.967 0.737 1.193l5.333 2.667c0.658 0.329 1.46 0.062 1.789-0.596s0.062-1.46-0.596-1.789l-4.596-2.298c0 0 0-7.176 0-7.176 0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"\n })\n ]\n );\n}\nja.compatConfig = {\n MODE: 3\n};\nfunction Ka() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M24.943 19.057l-8-8c-0.521-0.521-1.365-0.521-1.885 0l-8 8c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l7.057-7.057c0 0 7.057 7.057 7.057 7.057 0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885z\"\n })\n ]\n );\n}\nKa.compatConfig = {\n MODE: 3\n};\nfunction Ga() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M7.057 12.943l8 8c0.521 0.521 1.365 0.521 1.885 0l8-8c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0l-7.057 7.057c0 0-7.057-7.057-7.057-7.057-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z\"\n })\n ]\n );\n}\nGa.compatConfig = {\n MODE: 3\n};\nconst Ze = (e, t) => t ? new Date(e.toLocaleString(\"en-US\", { timeZone: t })) : new Date(e), Qa = (e, t, l) => {\n const n = La(e, t, l);\n return n || H();\n}, wl = (e, t, l) => {\n const n = t.dateInTz ? Ze(new Date(e), t.dateInTz) : H(e);\n return l ? Fe(n, !0) : n;\n}, La = (e, t, l) => {\n if (!e) return null;\n const n = l ? Fe(H(e), !0) : H(e);\n return t ? t.exactMatch ? wl(e, t, l) : Ze(n, t.timezone) : n;\n}, Dl = (e) => {\n const l = new Date(e.getFullYear(), 0, 1).getTimezoneOffset();\n return e.getTimezoneOffset() < l;\n}, Ml = (e, t) => {\n if (!e) return 0;\n const l = /* @__PURE__ */ new Date(), n = new Date(l.toLocaleString(\"en-US\", { timeZone: \"UTC\" })), a = new Date(l.toLocaleString(\"en-US\", { timeZone: e })), i = (Dl(t ?? a) ? a : t ?? a).getTimezoneOffset() / 60;\n return (+n - +a) / (1e3 * 60 * 60) - i;\n};\nvar ot = /* @__PURE__ */ ((e) => (e.month = \"month\", e.year = \"year\", e))(ot || {}), st = /* @__PURE__ */ ((e) => (e.top = \"top\", e.bottom = \"bottom\", e))(st || {}), Ot = /* @__PURE__ */ ((e) => (e.header = \"header\", e.calendar = \"calendar\", e.timePicker = \"timePicker\", e))(Ot || {}), je = /* @__PURE__ */ ((e) => (e.month = \"month\", e.year = \"year\", e.calendar = \"calendar\", e.time = \"time\", e.minutes = \"minutes\", e.hours = \"hours\", e.seconds = \"seconds\", e))(je || {});\nconst $l = [\"timestamp\", \"date\", \"iso\"];\nvar Qe = /* @__PURE__ */ ((e) => (e.up = \"up\", e.down = \"down\", e.left = \"left\", e.right = \"right\", e))(Qe || {}), Re = /* @__PURE__ */ ((e) => (e.arrowUp = \"ArrowUp\", e.arrowDown = \"ArrowDown\", e.arrowLeft = \"ArrowLeft\", e.arrowRight = \"ArrowRight\", e.enter = \"Enter\", e.space = \" \", e.esc = \"Escape\", e.tab = \"Tab\", e.home = \"Home\", e.end = \"End\", e.pageUp = \"PageUp\", e.pageDown = \"PageDown\", e))(Re || {}), Lt = /* @__PURE__ */ ((e) => (e.MONTH_AND_YEAR = \"MM-yyyy\", e.YEAR = \"yyyy\", e.DATE = \"dd-MM-yyyy\", e))(Lt || {});\nfunction un(e) {\n return (t) => {\n const l = new Intl.DateTimeFormat(e, {\n weekday: \"short\",\n timeZone: \"UTC\"\n }).format(/* @__PURE__ */ new Date(`2017-01-0${t}T00:00:00+00:00`));\n return e === \"ar\" ? l.slice(2, 5) : l.slice(0, 2);\n };\n}\nfunction Al(e) {\n return (t) => ft(Ze(/* @__PURE__ */ new Date(`2017-01-0${t}T00:00:00+00:00`), \"UTC\"), \"EEEEEE\", { locale: e });\n}\nconst Tl = (e, t, l) => {\n const n = [1, 2, 3, 4, 5, 6, 7];\n let a;\n if (e !== null)\n try {\n a = n.map(Al(e));\n } catch {\n a = n.map(un(t));\n }\n else\n a = n.map(un(t));\n const f = a.slice(0, l), i = a.slice(l + 1, a.length);\n return [a[l]].concat(...i).concat(...f);\n}, qa = (e, t, l) => {\n const n = [];\n for (let a = +e[0]; a <= +e[1]; a++)\n n.push({ value: +a, text: Ja(a, t) });\n return l ? n.reverse() : n;\n}, Pn = (e, t, l) => {\n const n = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].map((f) => {\n const i = f < 10 ? `0${f}` : f;\n return /* @__PURE__ */ new Date(`2017-${i}-01T00:00:00+00:00`);\n });\n if (e !== null)\n try {\n const f = l === \"long\" ? \"LLLL\" : \"LLL\";\n return n.map((i, g) => {\n const d = ft(Ze(i, \"UTC\"), f, { locale: e });\n return {\n text: d.charAt(0).toUpperCase() + d.substring(1),\n value: g\n };\n });\n } catch {\n }\n const a = new Intl.DateTimeFormat(t, { month: l, timeZone: \"UTC\" });\n return n.map((f, i) => {\n const g = a.format(f);\n return {\n text: g.charAt(0).toUpperCase() + g.substring(1),\n value: i\n };\n });\n}, Sl = (e) => [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11][e], Le = (e) => {\n const t = s(e);\n return t?.$el ? t?.$el : t;\n}, Pl = (e) => ({ type: \"dot\", ...e ?? {} }), Rn = (e) => Array.isArray(e) ? !!e[0] && !!e[1] : !1, Xa = {\n prop: (e) => `\"${e}\" prop must be enabled!`,\n dateArr: (e) => `You need to use array as \"model-value\" binding in order to support \"${e}\"`\n}, Ne = (e) => e, dn = (e) => e === 0 ? e : !e || isNaN(+e) ? null : +e, cn = (e) => e === null, Cn = (e) => {\n if (e)\n return [...e.querySelectorAll(\"input, button, select, textarea, a[href]\")][0];\n}, Rl = (e) => {\n const t = [], l = (n) => n.filter((a) => a);\n for (let n = 0; n < e.length; n += 3) {\n const a = [e[n], e[n + 1], e[n + 2]];\n t.push(l(a));\n }\n return t;\n}, Zt = (e, t, l) => {\n const n = l != null, a = t != null;\n if (!n && !a) return !1;\n const f = +l, i = +t;\n return n && a ? +e > f || +e < i : n ? +e > f : a ? +e < i : !1;\n}, Ht = (e, t) => Rl(e).map((l) => l.map((n) => {\n const { active: a, disabled: f, isBetween: i, highlighted: g } = t(n);\n return {\n ...n,\n active: a,\n disabled: f,\n className: {\n dp__overlay_cell_active: a,\n dp__overlay_cell: !a,\n dp__overlay_cell_disabled: f,\n dp__overlay_cell_pad: !0,\n dp__overlay_cell_active_disabled: f && a,\n dp__cell_in_between: i,\n \"dp--highlighted\": g\n }\n };\n})), Dt = (e, t, l = !1) => {\n e && t.allowStopPropagation && (l && e.stopImmediatePropagation(), e.stopPropagation());\n}, Cl = () => [\n \"a[href]\",\n \"area[href]\",\n \"input:not([disabled]):not([type='hidden'])\",\n \"select:not([disabled])\",\n \"textarea:not([disabled])\",\n \"button:not([disabled])\",\n \"[tabindex]:not([tabindex='-1'])\",\n \"[data-datepicker-instance]\"\n].join(\", \");\nfunction Ol(e, t) {\n let l = [...document.querySelectorAll(Cl())];\n l = l.filter((a) => !e.contains(a) || a.hasAttribute(\"data-datepicker-instance\"));\n const n = l.indexOf(e);\n if (n >= 0 && (t ? n - 1 >= 0 : n + 1 <= l.length))\n return l[n + (t ? -1 : 1)];\n}\nconst Fa = (e, t) => e?.querySelector(`[data-dp-element=\"${t}\"]`), Ja = (e, t) => new Intl.NumberFormat(t, { useGrouping: !1, style: \"decimal\" }).format(e), Za = (e, t) => ft(e, t ?? Lt.DATE), Ta = (e) => Array.isArray(e), ca = (e, t, l) => t.get(Za(e, l)), Bl = (e, t) => e ? t ? t instanceof Map ? !!ca(e, t) : t(H(e)) : !1 : !0, qe = (e, t, l = !1, n) => {\n if (e.key === Re.enter || e.key === Re.space)\n return l && e.preventDefault(), t();\n if (n) return n(e);\n}, _l = () => \"ontouchstart\" in window || navigator.maxTouchPoints > 0, On = (e, t) => e ? Lt.MONTH_AND_YEAR : t ? Lt.YEAR : Lt.DATE, Bn = (e) => e < 10 ? `0${e}` : e, fn = (e, t, l, n, a, f) => {\n const i = Na(e, t.slice(0, e.length), /* @__PURE__ */ new Date(), { locale: f });\n return da(i) && dl(i) ? n || a ? i : Se(i, {\n hours: +l.hours,\n minutes: +l?.minutes,\n seconds: +l?.seconds,\n milliseconds: 0\n }) : null;\n}, Yl = (e, t, l, n, a, f) => {\n const i = Array.isArray(l) ? l[0] : l;\n if (typeof t == \"string\")\n return fn(e, t, i, n, a, f);\n if (Array.isArray(t)) {\n let g = null;\n for (const d of t)\n if (g = fn(e, d, i, n, a, f), g)\n break;\n return g;\n }\n return typeof t == \"function\" ? t(e) : null;\n}, H = (e) => e ? new Date(e) : /* @__PURE__ */ new Date(), Il = (e, t, l) => {\n if (t) {\n const a = (e.getMonth() + 1).toString().padStart(2, \"0\"), f = e.getDate().toString().padStart(2, \"0\"), i = e.getHours().toString().padStart(2, \"0\"), g = e.getMinutes().toString().padStart(2, \"0\"), d = l ? e.getSeconds().toString().padStart(2, \"0\") : \"00\";\n return `${e.getFullYear()}-${a}-${f}T${i}:${g}:${d}.000Z`;\n }\n const n = Date.UTC(\n e.getUTCFullYear(),\n e.getUTCMonth(),\n e.getUTCDate(),\n e.getUTCHours(),\n e.getUTCMinutes(),\n e.getUTCSeconds()\n );\n return new Date(n).toISOString();\n}, Fe = (e, t) => {\n const l = H(JSON.parse(JSON.stringify(e))), n = Se(l, { hours: 0, minutes: 0, seconds: 0, milliseconds: 0 });\n return t ? ol(n) : n;\n}, Mt = (e, t, l, n) => {\n let a = e ? H(e) : H();\n return (t || t === 0) && (a = ul(a, +t)), (l || l === 0) && (a = il(a, +l)), (n || n === 0) && (a = wn(a, +n)), Dn(a, 0);\n}, Be = (e, t) => !e || !t ? !1 : Ft(Fe(e), Fe(t)), $e = (e, t) => !e || !t ? !1 : Nt(Fe(e), Fe(t)), Ee = (e, t) => !e || !t ? !1 : _t(Fe(e), Fe(t)), xt = (e, t, l) => e?.[0] && e?.[1] ? Ee(l, e[0]) && Be(l, e[1]) : e?.[0] && t ? Ee(l, e[0]) && Be(l, t) || Be(l, e[0]) && Ee(l, t) : !1, it = (e) => {\n const t = Se(new Date(e), { date: 1 });\n return Fe(t);\n}, Sa = (e, t, l) => t && (l || l === 0) ? Object.fromEntries(\n [\"hours\", \"minutes\", \"seconds\"].map((n) => n === t ? [n, l] : [n, isNaN(+e[n]) ? void 0 : +e[n]])\n) : {\n hours: isNaN(+e.hours) ? void 0 : +e.hours,\n minutes: isNaN(+e.minutes) ? void 0 : +e.minutes,\n seconds: isNaN(+e.seconds) ? void 0 : +e.seconds\n}, Bt = (e) => ({\n hours: yt(e),\n minutes: $t(e),\n seconds: zt(e)\n}), _n = (e, t) => {\n if (t) {\n const l = ye(H(t));\n if (l > e) return 12;\n if (l === e) return Me(H(t));\n }\n}, Yn = (e, t) => {\n if (t) {\n const l = ye(H(t));\n return l < e ? -1 : l === e ? Me(H(t)) : void 0;\n }\n}, Wt = (e) => {\n if (e) return ye(H(e));\n}, In = (e, t) => {\n const l = Ee(e, t) ? t : e, n = Ee(t, e) ? t : e;\n return bn({ start: l, end: n });\n}, El = (e) => {\n const t = Ct(e, 1);\n return { month: Me(t), year: ye(t) };\n}, mt = (e, t) => {\n const l = Wa(e, { weekStartsOn: +t }), n = kn(e, { weekStartsOn: +t });\n return [l, n];\n}, En = (e, t) => {\n const l = {\n hours: yt(H()),\n minutes: $t(H()),\n seconds: t ? zt(H()) : 0\n };\n return Object.assign(l, e);\n}, wt = (e, t, l) => [Se(H(e), { date: 1 }), Se(H(), { month: t, year: l, date: 1 })], pt = (e, t, l) => {\n let n = e ? H(e) : H();\n return (t || t === 0) && (n = sl(n, t)), l && (n = ut(n, l)), n;\n}, Nn = (e, t, l, n, a) => {\n if (!n || a && !t || !a && !l) return !1;\n const f = a ? Ct(e, 1) : Jt(e, 1), i = [Me(f), ye(f)];\n return a ? !Ll(...i, t) : !Nl(...i, l);\n}, Nl = (e, t, l) => Be(...wt(l, e, t)) || $e(...wt(l, e, t)), Ll = (e, t, l) => Ee(...wt(l, e, t)) || $e(...wt(l, e, t)), Ln = (e, t, l, n, a, f, i) => {\n if (typeof t == \"function\" && !i) return t(e);\n const g = l ? { locale: l } : void 0;\n return Array.isArray(e) ? `${ft(e[0], f, g)}${a && !e[1] ? \"\" : n}${e[1] ? ft(e[1], f, g) : \"\"}` : ft(e, f, g);\n}, It = (e) => {\n if (e) return null;\n throw new Error(Xa.prop(\"partial-range\"));\n}, oa = (e, t) => {\n if (t) return e();\n throw new Error(Xa.prop(\"range\"));\n}, za = (e) => Array.isArray(e) ? da(e[0]) && (e[1] ? da(e[1]) : !0) : e ? da(e) : !1, Fl = (e, t) => Se(t ?? H(), {\n hours: +e.hours || 0,\n minutes: +e.minutes || 0,\n seconds: +e.seconds || 0\n}), Pa = (e, t, l, n) => {\n if (!e) return !0;\n if (n) {\n const a = l === \"max\" ? Ft(e, t) : _t(e, t), f = { seconds: 0, milliseconds: 0 };\n return a || Nt(Se(e, f), Se(t, f));\n }\n return l === \"max\" ? e.getTime() <= t.getTime() : e.getTime() >= t.getTime();\n}, Ra = (e, t, l) => e ? Fl(e, t) : H(l ?? t), vn = (e, t, l, n, a) => {\n if (Array.isArray(n)) {\n const i = Ra(e, n[0], t), g = Ra(e, n[1], t);\n return Pa(n[0], i, l, !!t) && Pa(n[1], g, l, !!t) && a;\n }\n const f = Ra(e, n, t);\n return Pa(n, f, l, !!t) && a;\n}, Ca = (e) => Se(H(), Bt(e)), zl = (e, t, l) => {\n if (e instanceof Map) {\n const n = `${Bn(l + 1)}-${t}`;\n return e.size ? e.has(n) : !1;\n }\n return typeof e == \"function\" ? e(Fe(Se(H(), { month: l, year: t }), !0)) : !1;\n}, Hl = (e, t, l) => {\n if (e instanceof Map) {\n const n = `${Bn(l + 1)}-${t}`;\n return e.size ? e.has(n) : !0;\n }\n return !0;\n}, Fn = (e, t, l) => typeof e == \"function\" ? e({ month: t, year: l }) : !!e.months.find((n) => n.month === t && n.year === l), xa = (e, t) => typeof e == \"function\" ? e(t) : e.years.includes(t), Ha = (e) => `dp-${ft(e, \"yyyy-MM-dd\")}`, mn = (e, t) => {\n const l = cl(Fe(t), e), n = kt(Fe(t), e);\n return { before: l, after: n };\n}, zn = (e, t) => t < +e[0] || t > +e[1], Kt = ea({\n menuFocused: !1,\n shiftKeyInMenu: !1\n}), Hn = () => {\n const e = (n) => {\n Kt.menuFocused = n;\n }, t = (n) => {\n Kt.shiftKeyInMenu !== n && (Kt.shiftKeyInMenu = n);\n };\n return {\n control: j(() => ({ shiftKeyInMenu: Kt.shiftKeyInMenu, menuFocused: Kt.menuFocused })),\n setMenuFocused: e,\n setShiftKey: t\n };\n}, Pe = ea({\n monthYear: [],\n calendar: [],\n time: [],\n actionRow: [],\n selectionGrid: [],\n timePicker: {\n 0: [],\n 1: []\n },\n monthPicker: []\n}), Oa = Z(null), sa = Z(!1), Ba = Z(!1), _a = Z(!1), Ya = Z(!1), Ve = Z(0), Ie = Z(0), At = () => {\n const e = j(() => sa.value ? [...Pe.selectionGrid, Pe.actionRow].filter((M) => M.length) : Ba.value ? [\n ...Pe.timePicker[0],\n ...Pe.timePicker[1],\n Ya.value ? [] : [Oa.value],\n Pe.actionRow\n ].filter((M) => M.length) : _a.value ? [...Pe.monthPicker, Pe.actionRow] : [Pe.monthYear, ...Pe.calendar, Pe.time, Pe.actionRow].filter((M) => M.length)), t = (M) => {\n Ve.value = M ? Ve.value + 1 : Ve.value - 1;\n let A = null;\n e.value[Ie.value] && (A = e.value[Ie.value][Ve.value]), !A && e.value[Ie.value + (M ? 1 : -1)] ? (Ie.value = Ie.value + (M ? 1 : -1), Ve.value = M ? 0 : e.value[Ie.value].length - 1) : A || (Ve.value = M ? Ve.value - 1 : Ve.value + 1);\n }, l = (M) => {\n if (Ie.value === 0 && !M || Ie.value === e.value.length && M) return;\n Ie.value = M ? Ie.value + 1 : Ie.value - 1, e.value[Ie.value] ? e.value[Ie.value] && !e.value[Ie.value][Ve.value] && Ve.value !== 0 && (Ve.value = e.value[Ie.value].length - 1) : Ie.value = M ? Ie.value - 1 : Ie.value + 1;\n }, n = (M) => {\n let A = null;\n e.value[Ie.value] && (A = e.value[Ie.value][Ve.value]), A ? A.focus({ preventScroll: !sa.value }) : Ve.value = M ? Ve.value - 1 : Ve.value + 1;\n }, a = () => {\n t(!0), n(!0);\n }, f = () => {\n t(!1), n(!1);\n }, i = () => {\n l(!1), n(!0);\n }, g = () => {\n l(!0), n(!0);\n }, d = (M, A) => {\n Pe[A] = M;\n }, P = (M, A) => {\n Pe[A] = M;\n }, v = () => {\n Ve.value = 0, Ie.value = 0;\n };\n return {\n buildMatrix: d,\n buildMultiLevelMatrix: P,\n setTimePickerBackRef: (M) => {\n Oa.value = M;\n },\n setSelectionGrid: (M) => {\n sa.value = M, v(), M || (Pe.selectionGrid = []);\n },\n setTimePicker: (M, A = !1) => {\n Ba.value = M, Ya.value = A, v(), M || (Pe.timePicker[0] = [], Pe.timePicker[1] = []);\n },\n setTimePickerElements: (M, A = 0) => {\n Pe.timePicker[A] = M;\n },\n arrowRight: a,\n arrowLeft: f,\n arrowUp: i,\n arrowDown: g,\n clearArrowNav: () => {\n Pe.monthYear = [], Pe.calendar = [], Pe.time = [], Pe.actionRow = [], Pe.selectionGrid = [], Pe.timePicker[0] = [], Pe.timePicker[1] = [], sa.value = !1, Ba.value = !1, Ya.value = !1, _a.value = !1, v(), Oa.value = null;\n },\n setMonthPicker: (M) => {\n _a.value = M, v();\n },\n refSets: Pe\n // exposed for testing\n };\n}, pn = (e) => ({\n menuAppearTop: \"dp-menu-appear-top\",\n menuAppearBottom: \"dp-menu-appear-bottom\",\n open: \"dp-slide-down\",\n close: \"dp-slide-up\",\n next: \"calendar-next\",\n previous: \"calendar-prev\",\n vNext: \"dp-slide-up\",\n vPrevious: \"dp-slide-down\",\n ...e ?? {}\n}), Wl = (e) => ({\n toggleOverlay: \"Toggle overlay\",\n menu: \"Datepicker menu\",\n input: \"Datepicker input\",\n openTimePicker: \"Open time picker\",\n closeTimePicker: \"Close time Picker\",\n incrementValue: (t) => `Increment ${t}`,\n decrementValue: (t) => `Decrement ${t}`,\n openTpOverlay: (t) => `Open ${t} overlay`,\n amPmButton: \"Switch AM/PM mode\",\n openYearsOverlay: \"Open years overlay\",\n openMonthsOverlay: \"Open months overlay\",\n nextMonth: \"Next month\",\n prevMonth: \"Previous month\",\n nextYear: \"Next year\",\n prevYear: \"Previous year\",\n day: void 0,\n weekDay: void 0,\n clearInput: \"Clear value\",\n calendarIcon: \"Calendar icon\",\n timePicker: \"Time picker\",\n monthPicker: (t) => `Month picker${t ? \" overlay\" : \"\"}`,\n yearPicker: (t) => `Year picker${t ? \" overlay\" : \"\"}`,\n timeOverlay: (t) => `${t} overlay`,\n ...e ?? {}\n}), gn = (e) => e ? typeof e == \"boolean\" ? e ? 2 : 0 : +e >= 2 ? +e : 2 : 0, Ul = (e) => {\n const t = typeof e == \"object\" && e, l = {\n static: !0,\n solo: !1\n };\n if (!e) return { ...l, count: gn(!1) };\n const n = t ? e : {}, a = t ? n.count ?? !0 : e, f = gn(a);\n return Object.assign(l, n, { count: f });\n}, Vl = (e, t, l) => e || (typeof l == \"string\" ? l : t), jl = (e) => typeof e == \"boolean\" ? e ? pn({}) : !1 : pn(e), Kl = (e) => {\n const t = {\n enterSubmit: !0,\n tabSubmit: !0,\n openMenu: \"open\",\n selectOnFocus: !1,\n rangeSeparator: \" - \",\n escClose: !0\n };\n return typeof e == \"object\" ? { ...t, ...e ?? {}, enabled: !0 } : { ...t, enabled: e };\n}, Gl = (e) => ({\n months: [],\n years: [],\n times: { hours: [], minutes: [], seconds: [] },\n ...e ?? {}\n}), Ql = (e) => ({\n showSelect: !0,\n showCancel: !0,\n showNow: !1,\n showPreview: !0,\n ...e ?? {}\n}), ql = (e) => {\n const t = { input: !1 };\n return typeof e == \"object\" ? { ...t, ...e ?? {}, enabled: !0 } : {\n enabled: e,\n ...t\n };\n}, Xl = (e) => ({ ...{\n allowStopPropagation: !0,\n closeOnScroll: !1,\n modeHeight: 255,\n allowPreventDefault: !1,\n closeOnClearValue: !0,\n closeOnAutoApply: !0,\n noSwipe: !1,\n keepActionRow: !1,\n onClickOutside: void 0,\n tabOutClosesMenu: !0,\n arrowLeft: void 0,\n keepViewOnOffsetClick: !1,\n timeArrowHoldThreshold: 0,\n shadowDom: !1,\n mobileBreakpoint: 600,\n setDateOnMenuClose: !1\n}, ...e ?? {} }), Jl = (e) => {\n const t = {\n dates: Array.isArray(e) ? e.map((l) => H(l)) : [],\n years: [],\n months: [],\n quarters: [],\n weeks: [],\n weekdays: [],\n options: { highlightDisabled: !1 }\n };\n return typeof e == \"function\" ? e : { ...t, ...e ?? {} };\n}, Zl = (e) => typeof e == \"object\" ? {\n type: e?.type ?? \"local\",\n hideOnOffsetDates: e?.hideOnOffsetDates ?? !1\n} : {\n type: e,\n hideOnOffsetDates: !1\n}, xl = (e) => {\n const t = {\n noDisabledRange: !1,\n showLastInRange: !0,\n minMaxRawRange: !1,\n partialRange: !0,\n disableTimeRangeValidation: !1,\n maxRange: void 0,\n minRange: void 0,\n autoRange: void 0,\n fixedStart: !1,\n fixedEnd: !1\n };\n return typeof e == \"object\" ? { enabled: !0, ...t, ...e } : {\n enabled: e,\n ...t\n };\n}, er = (e) => e ? typeof e == \"string\" ? {\n timezone: e,\n exactMatch: !1,\n dateInTz: void 0,\n emitTimezone: void 0,\n convertModel: !0\n} : {\n timezone: e.timezone,\n exactMatch: e.exactMatch ?? !1,\n dateInTz: e.dateInTz ?? void 0,\n emitTimezone: e.emitTimezone ?? void 0,\n convertModel: e.convertModel ?? !0\n} : { timezone: void 0, exactMatch: !1, emitTimezone: void 0 }, Ia = (e, t, l, n) => new Map(\n e.map((a) => {\n const f = Qa(a, t, n);\n return [Za(f, l), f];\n })\n), tr = (e, t) => e.length ? new Map(\n e.map((l) => {\n const n = Qa(l.date, t);\n return [Za(n, Lt.DATE), l];\n })\n) : null, ar = (e) => {\n const t = On(e.isMonthPicker, e.isYearPicker);\n return {\n minDate: La(e.minDate, e.timezone, e.isSpecific),\n maxDate: La(e.maxDate, e.timezone, e.isSpecific),\n disabledDates: Ta(e.disabledDates) ? Ia(e.disabledDates, e.timezone, t, e.isSpecific) : e.disabledDates,\n allowedDates: Ta(e.allowedDates) ? Ia(e.allowedDates, e.timezone, t, e.isSpecific) : null,\n highlight: typeof e.highlight == \"object\" && Ta(e.highlight?.dates) ? Ia(e.highlight.dates, e.timezone, t) : e.highlight,\n markers: tr(e.markers, e.timezone)\n };\n}, nr = (e) => typeof e == \"boolean\" ? { enabled: e, dragSelect: !0, limit: null } : {\n enabled: !!e,\n limit: e.limit ? +e.limit : null,\n dragSelect: e.dragSelect ?? !0\n}, lr = (e) => ({\n ...Object.fromEntries(\n Object.keys(e).map((l) => {\n const n = l, a = e[n], f = typeof e[n] == \"string\" ? { [a]: !0 } : Object.fromEntries(a.map((i) => [i, !0]));\n return [l, f];\n })\n )\n}), Oe = (e) => {\n const t = () => {\n const U = e.enableSeconds ? \":ss\" : \"\", $ = e.enableMinutes ? \":mm\" : \"\";\n return e.is24 ? `HH${$}${U}` : `hh${$}${U} aa`;\n }, l = () => e.format ? e.format : e.monthPicker ? \"MM/yyyy\" : e.timePicker ? t() : e.weekPicker ? `${C.value?.type === \"iso\" ? \"II\" : \"ww\"}-RR` : e.yearPicker ? \"yyyy\" : e.quarterPicker ? \"QQQ/yyyy\" : e.enableTimePicker ? `MM/dd/yyyy, ${t()}` : \"MM/dd/yyyy\", n = (U) => En(U, e.enableSeconds), a = () => z.value.enabled ? e.startTime && Array.isArray(e.startTime) ? [n(e.startTime[0]), n(e.startTime[1])] : null : e.startTime && !Array.isArray(e.startTime) ? n(e.startTime) : null, f = j(() => Ul(e.multiCalendars)), i = j(() => a()), g = j(() => Wl(e.ariaLabels)), d = j(() => Gl(e.filters)), P = j(() => jl(e.transitions)), v = j(() => Ql(e.actionRow)), R = j(\n () => Vl(e.previewFormat, e.format, l())\n ), h = j(() => Kl(e.textInput)), T = j(() => ql(e.inline)), F = j(() => Xl(e.config)), _ = j(() => Jl(e.highlight)), C = j(() => Zl(e.weekNumbers)), M = j(() => er(e.timezone)), A = j(() => nr(e.multiDates)), m = j(\n () => ar({\n minDate: e.minDate,\n maxDate: e.maxDate,\n disabledDates: e.disabledDates,\n allowedDates: e.allowedDates,\n highlight: _.value,\n markers: e.markers,\n timezone: M.value,\n isSpecific: e.monthPicker || e.yearPicker || e.quarterPicker,\n isMonthPicker: e.monthPicker,\n isYearPicker: e.yearPicker\n })\n ), z = j(() => xl(e.range)), L = j(() => lr(e.ui));\n return {\n defaultedTransitions: P,\n defaultedMultiCalendars: f,\n defaultedStartTime: i,\n defaultedAriaLabels: g,\n defaultedFilters: d,\n defaultedActionRow: v,\n defaultedPreviewFormat: R,\n defaultedTextInput: h,\n defaultedInline: T,\n defaultedConfig: F,\n defaultedHighlight: _,\n defaultedWeekNumbers: C,\n defaultedRange: z,\n propDates: m,\n defaultedTz: M,\n defaultedMultiDates: A,\n defaultedUI: L,\n getDefaultPattern: l,\n getDefaultStartTime: a,\n handleEventPropagation: (U) => {\n F.value.allowStopPropagation && U.stopPropagation(), F.value.allowPreventDefault && U.preventDefault();\n }\n };\n}, rr = (e, t, { isInputFocused: l, isTextInputDate: n }) => {\n const a = Z(), { defaultedTextInput: f, defaultedRange: i, defaultedTz: g, defaultedMultiDates: d, getDefaultPattern: P } = Oe(t), v = Z(\"\"), R = qt(t, \"format\"), h = qt(t, \"formatLocale\");\n rt(\n a,\n () => {\n typeof t.onInternalModelChange == \"function\" && e(\"internal-model-change\", a.value, x(!0));\n },\n { deep: !0 }\n ), rt(i, (o, X) => {\n o.enabled !== X.enabled && (a.value = null);\n }), rt(R, () => {\n S();\n });\n const T = (o) => g.value.timezone && g.value.convertModel ? Ze(o, g.value.timezone) : o, F = (o) => {\n if (g.value.timezone && g.value.convertModel) {\n const X = Ml(g.value.timezone, o);\n return fl(o, X);\n }\n return o;\n }, _ = (o, X, B = !1) => Ln(\n o,\n t.format,\n t.formatLocale,\n f.value.rangeSeparator,\n t.modelAuto,\n X ?? P(),\n B\n ), C = (o) => o ? t.modelType ? k(o) : {\n hours: yt(o),\n minutes: $t(o),\n seconds: t.enableSeconds ? zt(o) : 0\n } : null, M = (o) => t.modelType ? k(o) : { month: Me(o), year: ye(o) }, A = (o) => Array.isArray(o) ? d.value.enabled ? o.map((X) => m(X, ut(H(), X))) : oa(\n () => [\n ut(H(), o[0]),\n o[1] ? ut(H(), o[1]) : It(i.value.partialRange)\n ],\n i.value.enabled\n ) : ut(H(), +o), m = (o, X) => (typeof o == \"string\" || typeof o == \"number\") && t.modelType ? q(o) : X, z = (o) => Array.isArray(o) ? [\n m(\n o[0],\n Mt(null, +o[0].hours, +o[0].minutes, o[0].seconds)\n ),\n m(\n o[1],\n Mt(null, +o[1].hours, +o[1].minutes, o[1].seconds)\n )\n ] : m(o, Mt(null, o.hours, o.minutes, o.seconds)), L = (o) => {\n const X = Se(H(), { date: 1 });\n return Array.isArray(o) ? d.value.enabled ? o.map((B) => m(B, pt(X, +B.month, +B.year))) : oa(\n () => [\n m(o[0], pt(X, +o[0].month, +o[0].year)),\n m(\n o[1],\n o[1] ? pt(X, +o[1].month, +o[1].year) : It(i.value.partialRange)\n )\n ],\n i.value.enabled\n ) : m(o, pt(X, +o.month, +o.year));\n }, le = (o) => {\n if (Array.isArray(o))\n return o.map((X) => q(X));\n throw new Error(Xa.dateArr(\"multi-dates\"));\n }, U = (o) => {\n if (Array.isArray(o) && i.value.enabled) {\n const X = o[0], B = o[1];\n return [\n H(Array.isArray(X) ? X[0] : null),\n Array.isArray(B) && B.length ? H(B[0]) : null\n ];\n }\n return H(o[0]);\n }, $ = (o) => t.modelAuto ? Array.isArray(o) ? [q(o[0]), q(o[1])] : t.autoApply ? [q(o)] : [q(o), null] : Array.isArray(o) ? oa(\n () => o[1] ? [\n q(o[0]),\n o[1] ? q(o[1]) : It(i.value.partialRange)\n ] : [q(o[0])],\n i.value.enabled\n ) : q(o), ee = () => {\n Array.isArray(a.value) && i.value.enabled && a.value.length === 1 && a.value.push(It(i.value.partialRange));\n }, O = () => {\n const o = a.value;\n return [\n k(o[0]),\n o[1] ? k(o[1]) : It(i.value.partialRange)\n ];\n }, J = () => Array.isArray(a.value) ? a.value[1] ? O() : k(Ne(a.value[0])) : [], ce = () => (a.value || []).map((o) => k(o)), pe = (o = !1) => (o || ee(), t.modelAuto ? J() : d.value.enabled ? ce() : Array.isArray(a.value) ? oa(() => O(), i.value.enabled) : k(Ne(a.value))), p = (o) => !o || Array.isArray(o) && !o.length ? null : t.timePicker ? z(Ne(o)) : t.monthPicker ? L(Ne(o)) : t.yearPicker ? A(Ne(o)) : d.value.enabled ? le(Ne(o)) : t.weekPicker ? U(Ne(o)) : $(Ne(o)), Y = (o) => {\n if (n.value) return;\n const X = p(o);\n za(Ne(X)) ? (a.value = Ne(X), S()) : (a.value = null, v.value = \"\");\n }, te = () => {\n const o = (X) => ft(X, f.value.format);\n return `${o(a.value[0])} ${f.value.rangeSeparator} ${a.value[1] ? o(a.value[1]) : \"\"}`;\n }, y = () => l.value && a.value ? Array.isArray(a.value) ? te() : ft(a.value, f.value.format) : _(a.value), V = () => a.value ? d.value.enabled ? a.value.map((o) => _(o)).join(\"; \") : f.value.enabled && typeof f.value.format == \"string\" ? y() : _(a.value) : \"\", S = () => {\n !t.format || typeof t.format == \"string\" || f.value.enabled && typeof f.value.format == \"string\" ? v.value = V() : v.value = t.format(a.value);\n }, q = (o) => {\n if (t.utc) {\n const X = new Date(o);\n return t.utc === \"preserve\" ? new Date(X.getTime() + X.getTimezoneOffset() * 6e4) : X;\n }\n return t.modelType ? $l.includes(t.modelType) ? T(new Date(o)) : t.modelType === \"format\" && (typeof t.format == \"string\" || !t.format) ? T(\n Na(o, P(), /* @__PURE__ */ new Date(), { locale: h.value })\n ) : T(\n Na(o, t.modelType, /* @__PURE__ */ new Date(), { locale: h.value })\n ) : T(new Date(o));\n }, k = (o) => o ? t.utc ? Il(o, t.utc === \"preserve\", t.enableSeconds) : t.modelType ? t.modelType === \"timestamp\" ? +F(o) : t.modelType === \"iso\" ? F(o).toISOString() : t.modelType === \"format\" && (typeof t.format == \"string\" || !t.format) ? _(F(o)) : _(F(o), t.modelType, !0) : F(o) : \"\", se = (o, X = !1, B = !1) => {\n if (B) return o;\n if (e(\"update:model-value\", o), g.value.emitTimezone && X) {\n const be = Array.isArray(o) ? o.map((Ae) => Ze(Ne(Ae), g.value.emitTimezone)) : Ze(Ne(o), g.value.emitTimezone);\n e(\"update:model-timezone-value\", be);\n }\n }, u = (o) => Array.isArray(a.value) ? d.value.enabled ? a.value.map((X) => o(X)) : [\n o(a.value[0]),\n a.value[1] ? o(a.value[1]) : It(i.value.partialRange)\n ] : o(Ne(a.value)), re = () => {\n if (Array.isArray(a.value)) {\n const o = mt(a.value[0], t.weekStart), X = a.value[1] ? mt(a.value[1], t.weekStart) : [];\n return [o.map((B) => H(B)), X.map((B) => H(B))];\n }\n return mt(a.value, t.weekStart).map((o) => H(o));\n }, G = (o, X) => se(Ne(u(o)), !1, X), I = (o) => {\n const X = re();\n return o ? X : e(\"update:model-value\", re());\n }, x = (o = !1) => (o || S(), t.monthPicker ? G(M, o) : t.timePicker ? G(C, o) : t.yearPicker ? G(ye, o) : t.weekPicker ? I(o) : se(pe(o), !0, o));\n return {\n inputValue: v,\n internalModelValue: a,\n checkBeforeEmit: () => a.value ? i.value.enabled ? i.value.partialRange ? a.value.length >= 1 : a.value.length === 2 : !!a.value : !1,\n parseExternalModelValue: Y,\n formatInputValue: S,\n emitModelValue: x\n };\n}, or = (e, t) => {\n const { defaultedFilters: l, propDates: n } = Oe(e), { validateMonthYearInRange: a } = Tt(e), f = (v, R) => {\n let h = v;\n return l.value.months.includes(Me(h)) ? (h = R ? Ct(v, 1) : Jt(v, 1), f(h, R)) : h;\n }, i = (v, R) => {\n let h = v;\n return l.value.years.includes(ye(h)) ? (h = R ? Mn(v, 1) : $n(v, 1), i(h, R)) : h;\n }, g = (v, R = !1) => {\n const h = Se(H(), { month: e.month, year: e.year });\n let T = v ? Ct(h, 1) : Jt(h, 1);\n e.disableYearSelect && (T = ut(T, e.year));\n let F = Me(T), _ = ye(T);\n l.value.months.includes(F) && (T = f(T, v), F = Me(T), _ = ye(T)), l.value.years.includes(_) && (T = i(T, v), _ = ye(T)), a(F, _, v, e.preventMinMaxNavigation) && d(F, _, R);\n }, d = (v, R, h) => {\n t(\"update-month-year\", { month: v, year: R, fromNav: h });\n }, P = j(() => (v) => Nn(\n Se(H(), { month: e.month, year: e.year }),\n n.value.maxDate,\n n.value.minDate,\n e.preventMinMaxNavigation,\n v\n ));\n return { handleMonthYearChange: g, isDisabled: P, updateMonthYear: d };\n}, va = {\n multiCalendars: { type: [Boolean, Number, String, Object], default: void 0 },\n modelValue: { type: [String, Date, Array, Object, Number], default: null },\n modelType: { type: String, default: null },\n position: { type: String, default: \"center\" },\n dark: { type: Boolean, default: !1 },\n format: {\n type: [String, Function],\n default: () => null\n },\n autoPosition: { type: [Boolean, String], default: !0 },\n altPosition: { type: Function, default: null },\n transitions: { type: [Boolean, Object], default: !0 },\n formatLocale: { type: Object, default: null },\n utc: { type: [Boolean, String], default: !1 },\n ariaLabels: { type: Object, default: () => ({}) },\n offset: { type: [Number, String], default: 10 },\n hideNavigation: { type: Array, default: () => [] },\n timezone: { type: [String, Object], default: null },\n vertical: { type: Boolean, default: !1 },\n disableMonthYearSelect: { type: Boolean, default: !1 },\n disableYearSelect: { type: Boolean, default: !1 },\n dayClass: {\n type: Function,\n default: null\n },\n yearRange: { type: Array, default: () => [1900, 2100] },\n enableTimePicker: { type: Boolean, default: !0 },\n autoApply: { type: Boolean, default: !1 },\n disabledDates: { type: [Array, Function], default: () => [] },\n monthNameFormat: { type: String, default: \"short\" },\n startDate: { type: [Date, String], default: null },\n startTime: { type: [Object, Array], default: null },\n hideOffsetDates: { type: Boolean, default: !1 },\n noToday: { type: Boolean, default: !1 },\n disabledWeekDays: { type: Array, default: () => [] },\n allowedDates: { type: Array, default: null },\n nowButtonLabel: { type: String, default: \"Now\" },\n markers: { type: Array, default: () => [] },\n escClose: { type: Boolean, default: !0 },\n spaceConfirm: { type: Boolean, default: !0 },\n monthChangeOnArrows: { type: Boolean, default: !0 },\n presetDates: { type: Array, default: () => [] },\n flow: { type: Array, default: () => [] },\n partialFlow: { type: Boolean, default: !1 },\n preventMinMaxNavigation: { type: Boolean, default: !1 },\n reverseYears: { type: Boolean, default: !1 },\n weekPicker: { type: Boolean, default: !1 },\n filters: { type: Object, default: () => ({}) },\n arrowNavigation: { type: Boolean, default: !1 },\n highlight: {\n type: [Function, Object],\n default: null\n },\n teleport: { type: [Boolean, String, Object], default: null },\n teleportCenter: { type: Boolean, default: !1 },\n locale: { type: String, default: \"en-Us\" },\n weekNumName: { type: String, default: \"W\" },\n weekStart: { type: [Number, String], default: 1 },\n weekNumbers: {\n type: [String, Function, Object],\n default: null\n },\n monthChangeOnScroll: { type: [Boolean, String], default: !0 },\n dayNames: {\n type: [Function, Array],\n default: null\n },\n monthPicker: { type: Boolean, default: !1 },\n customProps: { type: Object, default: null },\n yearPicker: { type: Boolean, default: !1 },\n modelAuto: { type: Boolean, default: !1 },\n selectText: { type: String, default: \"Select\" },\n cancelText: { type: String, default: \"Cancel\" },\n previewFormat: {\n type: [String, Function],\n default: () => \"\"\n },\n multiDates: { type: [Object, Boolean], default: !1 },\n ignoreTimeValidation: { type: Boolean, default: !1 },\n minDate: { type: [Date, String], default: null },\n maxDate: { type: [Date, String], default: null },\n minTime: { type: Object, default: null },\n maxTime: { type: Object, default: null },\n name: { type: String, default: null },\n placeholder: { type: String, default: \"\" },\n hideInputIcon: { type: Boolean, default: !1 },\n clearable: { type: Boolean, default: !0 },\n alwaysClearable: { type: Boolean, default: !1 },\n state: { type: Boolean, default: null },\n required: { type: Boolean, default: !1 },\n autocomplete: { type: String, default: \"off\" },\n timePicker: { type: Boolean, default: !1 },\n enableSeconds: { type: Boolean, default: !1 },\n is24: { type: Boolean, default: !0 },\n noHoursOverlay: { type: Boolean, default: !1 },\n noMinutesOverlay: { type: Boolean, default: !1 },\n noSecondsOverlay: { type: Boolean, default: !1 },\n hoursGridIncrement: { type: [String, Number], default: 1 },\n minutesGridIncrement: { type: [String, Number], default: 5 },\n secondsGridIncrement: { type: [String, Number], default: 5 },\n hoursIncrement: { type: [Number, String], default: 1 },\n minutesIncrement: { type: [Number, String], default: 1 },\n secondsIncrement: { type: [Number, String], default: 1 },\n range: { type: [Boolean, Object], default: !1 },\n uid: { type: String, default: null },\n disabled: { type: Boolean, default: !1 },\n readonly: { type: Boolean, default: !1 },\n inline: { type: [Boolean, Object], default: !1 },\n textInput: { type: [Boolean, Object], default: !1 },\n sixWeeks: { type: [Boolean, String], default: !1 },\n actionRow: { type: Object, default: () => ({}) },\n focusStartDate: { type: Boolean, default: !1 },\n disabledTimes: { type: [Function, Array], default: void 0 },\n timePickerInline: { type: Boolean, default: !1 },\n calendar: { type: Function, default: null },\n config: { type: Object, default: void 0 },\n quarterPicker: { type: Boolean, default: !1 },\n yearFirst: { type: Boolean, default: !1 },\n loading: { type: Boolean, default: !1 },\n onInternalModelChange: { type: [Function, Object], default: null },\n enableMinutes: { type: Boolean, default: !0 },\n ui: { type: Object, default: () => ({}) }\n}, dt = {\n ...va,\n shadow: { type: Boolean, default: !1 },\n flowStep: { type: Number, default: 0 },\n internalModelValue: { type: [Date, Array], default: null },\n noOverlayFocus: { type: Boolean, default: !1 },\n collapse: { type: Boolean, default: !1 },\n menuWrapRef: { type: Object, default: null },\n getInputRect: { type: Function, default: () => ({}) },\n isTextInputDate: { type: Boolean, default: !1 },\n isMobile: { type: Boolean, default: void 0 }\n}, sr = [\"title\"], ur = [\"disabled\"], ir = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"ActionRow\",\n props: {\n menuMount: { type: Boolean, default: !1 },\n calendarWidth: { type: Number, default: 0 },\n ...dt\n },\n emits: [\"close-picker\", \"select-date\", \"select-now\", \"invalid-select\"],\n setup(e, { emit: t }) {\n const l = t, n = e, {\n defaultedActionRow: a,\n defaultedPreviewFormat: f,\n defaultedMultiCalendars: i,\n defaultedTextInput: g,\n defaultedInline: d,\n defaultedRange: P,\n defaultedMultiDates: v\n } = Oe(n), { isTimeValid: R, isMonthValid: h } = Tt(n), { buildMatrix: T } = At(), F = Z(null), _ = Z(null), C = Z(!1), M = Z({}), A = Z(null), m = Z(null);\n Ue(() => {\n n.arrowNavigation && T([Le(F), Le(_)], \"actionRow\"), z(), window.addEventListener(\"resize\", z);\n }), Ut(() => {\n window.removeEventListener(\"resize\", z);\n });\n const z = () => {\n C.value = !1, setTimeout(() => {\n const p = A.value?.getBoundingClientRect(), Y = m.value?.getBoundingClientRect();\n p && Y && (M.value.maxWidth = `${Y.width - p.width - 20}px`), C.value = !0;\n }, 0);\n }, L = j(() => P.value.enabled && !P.value.partialRange && n.internalModelValue ? n.internalModelValue.length === 2 : !0), le = j(\n () => !R.value(n.internalModelValue) || !h.value(n.internalModelValue) || !L.value\n ), U = () => {\n const p = f.value;\n return n.timePicker || n.monthPicker, p(Ne(n.internalModelValue));\n }, $ = () => {\n const p = n.internalModelValue;\n return i.value.count > 0 ? `${ee(p[0])} - ${ee(p[1])}` : [ee(p[0]), ee(p[1])];\n }, ee = (p) => Ln(\n p,\n f.value,\n n.formatLocale,\n g.value.rangeSeparator,\n n.modelAuto,\n f.value\n ), O = j(() => !n.internalModelValue || !n.menuMount ? \"\" : typeof f.value == \"string\" ? Array.isArray(n.internalModelValue) ? n.internalModelValue.length === 2 && n.internalModelValue[1] ? $() : v.value.enabled ? n.internalModelValue.map((p) => `${ee(p)}`) : n.modelAuto ? `${ee(n.internalModelValue[0])}` : `${ee(n.internalModelValue[0])} -` : ee(n.internalModelValue) : U()), J = () => v.value.enabled ? \"; \" : \" - \", ce = j(\n () => Array.isArray(O.value) ? O.value.join(J()) : O.value\n ), pe = () => {\n R.value(n.internalModelValue) && h.value(n.internalModelValue) && L.value ? l(\"select-date\") : l(\"invalid-select\");\n };\n return (p, Y) => (w(), W(\"div\", {\n ref_key: \"actionRowRef\",\n ref: m,\n class: \"dp__action_row\"\n }, [\n p.$slots[\"action-row\"] ? ie(p.$slots, \"action-row\", ze(He({ key: 0 }, {\n internalModelValue: p.internalModelValue,\n disabled: le.value,\n selectDate: () => p.$emit(\"select-date\"),\n closePicker: () => p.$emit(\"close-picker\")\n }))) : (w(), W(ke, { key: 1 }, [\n s(a).showPreview ? (w(), W(\"div\", {\n key: 0,\n class: \"dp__selection_preview\",\n title: ce.value,\n style: lt(M.value)\n }, [\n p.$slots[\"action-preview\"] && C.value ? ie(p.$slots, \"action-preview\", {\n key: 0,\n value: p.internalModelValue\n }) : Q(\"\", !0),\n !p.$slots[\"action-preview\"] && C.value ? (w(), W(ke, { key: 1 }, [\n gt(Ke(ce.value), 1)\n ], 64)) : Q(\"\", !0)\n ], 12, sr)) : Q(\"\", !0),\n he(\"div\", {\n ref_key: \"actionBtnContainer\",\n ref: A,\n class: \"dp__action_buttons\",\n \"data-dp-element\": \"action-row\"\n }, [\n p.$slots[\"action-buttons\"] ? ie(p.$slots, \"action-buttons\", {\n key: 0,\n value: p.internalModelValue\n }) : Q(\"\", !0),\n p.$slots[\"action-buttons\"] ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n !s(d).enabled && s(a).showCancel ? (w(), W(\"button\", {\n key: 0,\n ref_key: \"cancelButtonRef\",\n ref: F,\n type: \"button\",\n class: \"dp__action_button dp__action_cancel\",\n onClick: Y[0] || (Y[0] = (te) => p.$emit(\"close-picker\")),\n onKeydown: Y[1] || (Y[1] = (te) => s(qe)(te, () => p.$emit(\"close-picker\")))\n }, Ke(p.cancelText), 545)) : Q(\"\", !0),\n s(a).showNow ? (w(), W(\"button\", {\n key: 1,\n type: \"button\",\n class: \"dp__action_button dp__action_cancel\",\n onClick: Y[2] || (Y[2] = (te) => p.$emit(\"select-now\")),\n onKeydown: Y[3] || (Y[3] = (te) => s(qe)(te, () => p.$emit(\"select-now\")))\n }, Ke(p.nowButtonLabel), 33)) : Q(\"\", !0),\n s(a).showSelect ? (w(), W(\"button\", {\n key: 2,\n ref_key: \"selectButtonRef\",\n ref: _,\n type: \"button\",\n class: \"dp__action_button dp__action_select\",\n disabled: le.value,\n \"data-test-id\": \"select-button\",\n onKeydown: Y[4] || (Y[4] = (te) => s(qe)(te, () => pe())),\n onClick: pe\n }, Ke(p.selectText), 41, ur)) : Q(\"\", !0)\n ], 64))\n ], 512)\n ], 64))\n ], 512));\n }\n}), dr = [\"role\", \"aria-label\", \"tabindex\"], cr = { class: \"dp__selection_grid_header\" }, fr = [\"aria-selected\", \"aria-disabled\", \"data-test-id\", \"onClick\", \"onKeydown\", \"onMouseover\"], vr = [\"aria-label\"], ta = /* @__PURE__ */ We({\n __name: \"SelectionOverlay\",\n props: {\n items: {},\n type: {},\n isLast: { type: Boolean },\n arrowNavigation: { type: Boolean },\n skipButtonRef: { type: Boolean },\n headerRefs: {},\n hideNavigation: {},\n escClose: { type: Boolean },\n useRelative: { type: Boolean },\n height: {},\n textInput: { type: [Boolean, Object] },\n config: {},\n noOverlayFocus: { type: Boolean },\n focusValue: {},\n menuWrapRef: {},\n ariaLabels: {},\n overlayLabel: {}\n },\n emits: [\"selected\", \"toggle\", \"reset-flow\", \"hover-value\"],\n setup(e, { expose: t, emit: l }) {\n const { setSelectionGrid: n, buildMultiLevelMatrix: a, setMonthPicker: f } = At(), i = l, g = e, { defaultedAriaLabels: d, defaultedTextInput: P, defaultedConfig: v, handleEventPropagation: R } = Oe(\n g\n ), { hideNavigationButtons: h } = ga(), T = Z(!1), F = Z(null), _ = Z(null), C = Z([]), M = Z(), A = Z(null), m = Z(0), z = Z(null);\n Zn(() => {\n F.value = null;\n }), Ue(() => {\n at().then(() => ce()), g.noOverlayFocus || le(), L(!0);\n }), Ut(() => L(!1));\n const L = (u) => {\n g.arrowNavigation && (g.headerRefs?.length ? f(u) : n(u));\n }, le = () => {\n const u = Le(_);\n u && (P.value.enabled || (F.value ? F.value?.focus({ preventScroll: !0 }) : u.focus({ preventScroll: !0 })), T.value = u.clientHeight < u.scrollHeight);\n }, U = j(\n () => ({\n dp__overlay: !0,\n \"dp--overlay-absolute\": !g.useRelative,\n \"dp--overlay-relative\": g.useRelative\n })\n ), $ = j(\n () => g.useRelative ? { height: `${g.height}px`, width: \"var(--dp-menu-min-width)\" } : void 0\n ), ee = j(() => ({\n dp__overlay_col: !0\n })), O = j(\n () => ({\n dp__btn: !0,\n dp__button: !0,\n dp__overlay_action: !0,\n dp__over_action_scroll: T.value,\n dp__button_bottom: g.isLast\n })\n ), J = j(() => ({\n dp__overlay_container: !0,\n dp__container_flex: g.items?.length <= 6,\n dp__container_block: g.items?.length > 6\n }));\n rt(\n () => g.items,\n () => ce(!1),\n { deep: !0 }\n );\n const ce = (u = !0) => {\n at().then(() => {\n const re = Le(F), G = Le(_), I = Le(A), x = Le(z), c = I ? I.getBoundingClientRect().height : 0;\n G && (G.getBoundingClientRect().height ? m.value = G.getBoundingClientRect().height - c : m.value = v.value.modeHeight - c), re && x && u && (x.scrollTop = re.offsetTop - x.offsetTop - (m.value / 2 - re.getBoundingClientRect().height) - c);\n });\n }, pe = (u) => {\n u.disabled || i(\"selected\", u.value);\n }, p = () => {\n i(\"toggle\"), i(\"reset-flow\");\n }, Y = (u) => {\n g.escClose && (p(), R(u));\n }, te = (u, re, G, I) => {\n u && ((re.active || re.value === g.focusValue) && (F.value = u), g.arrowNavigation && (Array.isArray(C.value[G]) ? C.value[G][I] = u : C.value[G] = [u], y()));\n }, y = () => {\n const u = g.headerRefs?.length ? [g.headerRefs].concat(C.value) : C.value.concat([g.skipButtonRef ? [] : [A.value]]);\n a(Ne(u), g.headerRefs?.length ? \"monthPicker\" : \"selectionGrid\");\n }, V = (u) => {\n g.arrowNavigation || Dt(u, v.value, !0);\n }, S = (u) => {\n M.value = u, i(\"hover-value\", u);\n }, q = () => {\n if (p(), !g.isLast) {\n const u = Fa(g.menuWrapRef ?? null, \"action-row\");\n u && Cn(u)?.focus();\n }\n }, k = (u) => {\n switch (u.key) {\n case Re.esc:\n return Y(u);\n case Re.arrowLeft:\n return V(u);\n case Re.arrowRight:\n return V(u);\n case Re.arrowUp:\n return V(u);\n case Re.arrowDown:\n return V(u);\n default:\n return;\n }\n }, se = (u) => {\n if (u.key === Re.enter) return p();\n if (u.key === Re.tab) return q();\n };\n return t({ focusGrid: le }), (u, re) => (w(), W(\"div\", {\n ref_key: \"gridWrapRef\",\n ref: _,\n class: De(U.value),\n style: lt($.value),\n role: e.useRelative ? void 0 : \"dialog\",\n \"aria-label\": e.overlayLabel,\n tabindex: e.useRelative ? void 0 : \"0\",\n onKeydown: k,\n onClick: re[0] || (re[0] = Xt(() => {\n }, [\"prevent\"]))\n }, [\n he(\"div\", {\n ref_key: \"containerRef\",\n ref: z,\n class: De(J.value),\n style: lt({ \"--dp-overlay-height\": `${m.value}px` }),\n role: \"grid\"\n }, [\n he(\"div\", cr, [\n ie(u.$slots, \"header\")\n ]),\n u.$slots.overlay ? ie(u.$slots, \"overlay\", { key: 0 }) : (w(!0), W(ke, { key: 1 }, Ce(e.items, (G, I) => (w(), W(\"div\", {\n key: I,\n class: De([\"dp__overlay_row\", { dp__flex_row: e.items.length >= 3 }]),\n role: \"row\"\n }, [\n (w(!0), W(ke, null, Ce(G, (x, c) => (w(), W(\"div\", {\n key: x.value,\n ref_for: !0,\n ref: (o) => te(o, x, I, c),\n role: \"gridcell\",\n class: De(ee.value),\n \"aria-selected\": x.active || void 0,\n \"aria-disabled\": x.disabled || void 0,\n tabindex: \"0\",\n \"data-test-id\": x.text,\n onClick: Xt((o) => pe(x), [\"prevent\"]),\n onKeydown: (o) => s(qe)(o, () => pe(x), !0),\n onMouseover: (o) => S(x.value)\n }, [\n he(\"div\", {\n class: De(x.className)\n }, [\n u.$slots.item ? ie(u.$slots, \"item\", {\n key: 0,\n item: x\n }) : Q(\"\", !0),\n u.$slots.item ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(x.text), 1)\n ], 64))\n ], 2)\n ], 42, fr))), 128))\n ], 2))), 128))\n ], 6),\n u.$slots[\"button-icon\"] ? ua((w(), W(\"button\", {\n key: 0,\n ref_key: \"toggleButton\",\n ref: A,\n type: \"button\",\n \"aria-label\": s(d)?.toggleOverlay,\n class: De(O.value),\n tabindex: \"0\",\n onClick: p,\n onKeydown: se\n }, [\n ie(u.$slots, \"button-icon\")\n ], 42, vr)), [\n [ia, !s(h)(e.hideNavigation, e.type)]\n ]) : Q(\"\", !0)\n ], 46, dr));\n }\n}), mr = [\"data-dp-mobile\"], ma = /* @__PURE__ */ We({\n __name: \"InstanceWrap\",\n props: {\n multiCalendars: {},\n stretch: { type: Boolean },\n collapse: { type: Boolean },\n isMobile: { type: Boolean }\n },\n setup(e) {\n const t = e, l = j(\n () => t.multiCalendars > 0 ? [...Array(t.multiCalendars).keys()] : [0]\n ), n = j(() => ({\n dp__instance_calendar: t.multiCalendars > 0\n }));\n return (a, f) => (w(), W(\"div\", {\n class: De({\n dp__menu_inner: !e.stretch,\n \"dp--menu--inner-stretched\": e.stretch,\n dp__flex_display: e.multiCalendars > 0,\n \"dp--flex-display-collapsed\": e.collapse\n }),\n \"data-dp-mobile\": e.isMobile\n }, [\n (w(!0), W(ke, null, Ce(l.value, (i, g) => (w(), W(\"div\", {\n key: i,\n class: De(n.value)\n }, [\n ie(a.$slots, \"default\", {\n instance: i,\n index: g\n })\n ], 2))), 128))\n ], 10, mr));\n }\n}), pr = [\"data-dp-element\", \"aria-label\", \"aria-disabled\"], Qt = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"ArrowBtn\",\n props: {\n ariaLabel: {},\n elName: {},\n disabled: { type: Boolean }\n },\n emits: [\"activate\", \"set-ref\"],\n setup(e, { emit: t }) {\n const l = t, n = Z(null);\n return Ue(() => l(\"set-ref\", n)), (a, f) => (w(), W(\"button\", {\n ref_key: \"elRef\",\n ref: n,\n type: \"button\",\n \"data-dp-element\": e.elName,\n class: \"dp__btn dp--arrow-btn-nav\",\n tabindex: \"0\",\n \"aria-label\": e.ariaLabel,\n \"aria-disabled\": e.disabled || void 0,\n onClick: f[0] || (f[0] = (i) => l(\"activate\")),\n onKeydown: f[1] || (f[1] = (i) => s(qe)(i, () => l(\"activate\"), !0))\n }, [\n he(\"span\", {\n class: De([\"dp__inner_nav\", { dp__inner_nav_disabled: e.disabled }])\n }, [\n ie(a.$slots, \"default\")\n ], 2)\n ], 40, pr));\n }\n}), gr = [\"aria-label\", \"data-test-id\"], Wn = /* @__PURE__ */ We({\n __name: \"YearModePicker\",\n props: {\n ...dt,\n showYearPicker: { type: Boolean, default: !1 },\n items: { type: Array, default: () => [] },\n instance: { type: Number, default: 0 },\n year: { type: Number, default: 0 },\n isDisabled: { type: Function, default: () => !1 }\n },\n emits: [\"toggle-year-picker\", \"year-select\", \"handle-year\"],\n setup(e, { emit: t }) {\n const l = t, n = e, { showRightIcon: a, showLeftIcon: f } = ga(), { defaultedConfig: i, defaultedMultiCalendars: g, defaultedAriaLabels: d, defaultedTransitions: P, defaultedUI: v } = Oe(n), { showTransition: R, transitionName: h } = aa(P), T = Z(!1), F = j(() => Ja(n.year, n.locale)), _ = (A = !1, m) => {\n T.value = !T.value, l(\"toggle-year-picker\", { flow: A, show: m });\n }, C = (A) => {\n T.value = !1, l(\"year-select\", A);\n }, M = (A = !1) => {\n l(\"handle-year\", A);\n };\n return (A, m) => (w(), W(ke, null, [\n he(\"div\", {\n class: De([\"dp--year-mode-picker\", { \"dp--hidden-el\": T.value }])\n }, [\n s(f)(s(g), e.instance) ? (w(), Te(Qt, {\n key: 0,\n ref: \"mpPrevIconRef\",\n \"aria-label\": s(d)?.prevYear,\n disabled: e.isDisabled(!1),\n class: De(s(v)?.navBtnPrev),\n onActivate: m[0] || (m[0] = (z) => M(!1))\n }, {\n default: we(() => [\n A.$slots[\"arrow-left\"] ? ie(A.$slots, \"arrow-left\", { key: 0 }) : Q(\"\", !0),\n A.$slots[\"arrow-left\"] ? Q(\"\", !0) : (w(), Te(s(Ua), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Q(\"\", !0),\n he(\"button\", {\n ref: \"mpYearButtonRef\",\n class: \"dp__btn dp--year-select\",\n type: \"button\",\n \"aria-label\": `${e.year}-${s(d)?.openYearsOverlay}`,\n \"data-test-id\": `year-mode-btn-${e.instance}`,\n onClick: m[1] || (m[1] = () => _(!1)),\n onKeydown: m[2] || (m[2] = xn(() => _(!1), [\"enter\"]))\n }, [\n A.$slots.year ? ie(A.$slots, \"year\", {\n key: 0,\n year: e.year,\n text: F.value,\n value: e.year\n }) : Q(\"\", !0),\n A.$slots.year ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(F.value), 1)\n ], 64))\n ], 40, gr),\n s(a)(s(g), e.instance) ? (w(), Te(Qt, {\n key: 1,\n ref: \"mpNextIconRef\",\n \"aria-label\": s(d)?.nextYear,\n disabled: e.isDisabled(!0),\n class: De(s(v)?.navBtnNext),\n onActivate: m[3] || (m[3] = (z) => M(!0))\n }, {\n default: we(() => [\n A.$slots[\"arrow-right\"] ? ie(A.$slots, \"arrow-right\", { key: 0 }) : Q(\"\", !0),\n A.$slots[\"arrow-right\"] ? Q(\"\", !0) : (w(), Te(s(Va), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Q(\"\", !0)\n ], 2),\n tt(Vt, {\n name: s(h)(e.showYearPicker),\n css: s(R)\n }, {\n default: we(() => [\n e.showYearPicker ? (w(), Te(ta, {\n key: 0,\n items: e.items,\n \"text-input\": A.textInput,\n \"esc-close\": A.escClose,\n config: A.config,\n \"is-last\": A.autoApply && !s(i).keepActionRow,\n \"hide-navigation\": A.hideNavigation,\n \"aria-labels\": A.ariaLabels,\n \"overlay-label\": s(d)?.yearPicker?.(!0),\n type: \"year\",\n onToggle: _,\n onSelected: m[4] || (m[4] = (z) => C(z))\n }, Ge({\n \"button-icon\": we(() => [\n A.$slots[\"calendar-icon\"] ? ie(A.$slots, \"calendar-icon\", { key: 0 }) : Q(\"\", !0),\n A.$slots[\"calendar-icon\"] ? Q(\"\", !0) : (w(), Te(s(jt), { key: 1 }))\n ]),\n _: 2\n }, [\n A.$slots[\"year-overlay-value\"] ? {\n name: \"item\",\n fn: we(({ item: z }) => [\n ie(A.$slots, \"year-overlay-value\", {\n text: z.text,\n value: z.value\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"items\", \"text-input\", \"esc-close\", \"config\", \"is-last\", \"hide-navigation\", \"aria-labels\", \"overlay-label\"])) : Q(\"\", !0)\n ]),\n _: 3\n }, 8, [\"name\", \"css\"])\n ], 64));\n }\n}), en = (e, t, l) => {\n if (t.value && Array.isArray(t.value))\n if (t.value.some((n) => $e(e, n))) {\n const n = t.value.filter((a) => !$e(a, e));\n t.value = n.length ? n : null;\n } else (l && +l > t.value.length || !l) && t.value.push(e);\n else\n t.value = [e];\n}, tn = (e, t, l) => {\n let n = e.value ? e.value.slice() : [];\n return n.length === 2 && n[1] !== null && (n = []), n.length ? (Be(t, n[0]) ? n.unshift(t) : n[1] = t, l(\"range-end\", t)) : (n = [t], l(\"range-start\", t)), n;\n}, pa = (e, t, l, n) => {\n e && (e[0] && e[1] && l && t(\"auto-apply\"), e[0] && !e[1] && n && l && t(\"auto-apply\"));\n}, Un = (e) => {\n Array.isArray(e.value) && e.value.length <= 2 && e.range ? e.modelValue.value = e.value.map((t) => Ze(H(t), e.timezone)) : Array.isArray(e.value) || (e.modelValue.value = Ze(H(e.value), e.timezone));\n}, Vn = (e, t, l, n) => Array.isArray(t.value) && (t.value.length === 2 || t.value.length === 1 && n.value.partialRange) ? n.value.fixedStart && (Ee(e, t.value[0]) || $e(e, t.value[0])) ? [t.value[0], e] : n.value.fixedEnd && (Be(e, t.value[1]) || $e(e, t.value[1])) ? [e, t.value[1]] : (l(\"invalid-fixed-range\", e), t.value) : [], jn = ({\n multiCalendars: e,\n range: t,\n highlight: l,\n propDates: n,\n calendars: a,\n modelValue: f,\n props: i,\n filters: g,\n year: d,\n month: P,\n emit: v\n}) => {\n const R = j(() => qa(i.yearRange, i.locale, i.reverseYears)), h = Z([!1]), T = j(() => (O, J) => {\n const ce = Se(it(/* @__PURE__ */ new Date()), {\n month: P.value(O),\n year: d.value(O)\n }), pe = J ? An(ce) : Gt(ce);\n return Nn(\n pe,\n n.value.maxDate,\n n.value.minDate,\n i.preventMinMaxNavigation,\n J\n );\n }), F = () => Array.isArray(f.value) && e.value.solo && f.value[1], _ = () => {\n for (let O = 0; O < e.value.count; O++)\n if (O === 0)\n a.value[O] = a.value[0];\n else if (O === e.value.count - 1 && F())\n a.value[O] = {\n month: Me(f.value[1]),\n year: ye(f.value[1])\n };\n else {\n const J = Se(H(), a.value[O - 1]);\n a.value[O] = { month: Me(J), year: ye(Mn(J, 1)) };\n }\n }, C = (O) => {\n if (!O) return _();\n const J = Se(H(), a.value[O]);\n return a.value[0].year = ye($n(J, e.value.count - 1)), _();\n }, M = (O, J) => {\n const ce = vl(J, O);\n return t.value.showLastInRange && ce > 1 ? J : O;\n }, A = (O) => i.focusStartDate || e.value.solo ? O[0] : O[1] ? M(O[0], O[1]) : O[0], m = () => {\n if (f.value) {\n const O = Array.isArray(f.value) ? A(f.value) : f.value;\n a.value[0] = { month: Me(O), year: ye(O) };\n }\n }, z = () => {\n m(), e.value.count && _();\n };\n rt(f, (O, J) => {\n i.isTextInputDate && JSON.stringify(O ?? {}) !== JSON.stringify(J ?? {}) && z();\n }), Ue(() => {\n z();\n });\n const L = (O, J) => {\n a.value[J].year = O, v(\"update-month-year\", { instance: J, year: O, month: a.value[J].month }), e.value.count && !e.value.solo && C(J);\n }, le = j(() => (O) => Ht(R.value, (J) => {\n const ce = d.value(O) === J.value, pe = Zt(\n J.value,\n Wt(n.value.minDate),\n Wt(n.value.maxDate)\n ) || g.value.years?.includes(d.value(O)), p = xa(l.value, J.value);\n return { active: ce, disabled: pe, highlighted: p };\n })), U = (O, J) => {\n L(O, J), ee(J);\n }, $ = (O, J = !1) => {\n if (!T.value(O, J)) {\n const ce = J ? d.value(O) + 1 : d.value(O) - 1;\n L(ce, O);\n }\n }, ee = (O, J = !1, ce) => {\n J || v(\"reset-flow\"), ce !== void 0 ? h.value[O] = ce : h.value[O] = !h.value[O], h.value[O] ? v(\"overlay-toggle\", { open: !0, overlay: je.year }) : (v(\"overlay-closed\"), v(\"overlay-toggle\", { open: !1, overlay: je.year }));\n };\n return {\n isDisabled: T,\n groupedYears: le,\n showYearPicker: h,\n selectYear: L,\n toggleYearPicker: ee,\n handleYearSelect: U,\n handleYear: $\n };\n}, yr = (e, t) => {\n const {\n defaultedMultiCalendars: l,\n defaultedAriaLabels: n,\n defaultedTransitions: a,\n defaultedConfig: f,\n defaultedRange: i,\n defaultedHighlight: g,\n propDates: d,\n defaultedTz: P,\n defaultedFilters: v,\n defaultedMultiDates: R\n } = Oe(e), h = () => {\n e.isTextInputDate && z(ye(H(e.startDate)), 0);\n }, { modelValue: T, year: F, month: _, calendars: C } = na(e, t, h), M = j(() => Pn(e.formatLocale, e.locale, e.monthNameFormat)), A = Z(null), { checkMinMaxRange: m } = Tt(e), {\n selectYear: z,\n groupedYears: L,\n showYearPicker: le,\n toggleYearPicker: U,\n handleYearSelect: $,\n handleYear: ee,\n isDisabled: O\n } = jn({\n modelValue: T,\n multiCalendars: l,\n range: i,\n highlight: g,\n calendars: C,\n year: F,\n propDates: d,\n month: _,\n filters: v,\n props: e,\n emit: t\n });\n Ue(() => {\n e.startDate && (T.value && e.focusStartDate || !T.value) && z(ye(H(e.startDate)), 0);\n });\n const J = (I) => I ? { month: Me(I), year: ye(I) } : { month: null, year: null }, ce = () => T.value ? Array.isArray(T.value) ? T.value.map((I) => J(I)) : J(T.value) : J(), pe = (I, x) => {\n const c = C.value[I], o = ce();\n return Array.isArray(o) ? o.some((X) => X.year === c?.year && X.month === x) : c?.year === o.year && x === o.month;\n }, p = (I, x, c) => {\n const o = ce();\n return Array.isArray(o) ? F.value(x) === o[c]?.year && I === o[c]?.month : !1;\n }, Y = (I, x) => {\n if (i.value.enabled) {\n const c = ce();\n if (Array.isArray(T.value) && Array.isArray(c)) {\n const o = p(I, x, 0) || p(I, x, 1), X = pt(it(H()), I, F.value(x));\n return xt(T.value, A.value, X) && !o;\n }\n return !1;\n }\n return !1;\n }, te = j(() => (I) => Ht(M.value, (x) => {\n const c = pe(I, x.value), o = Zt(\n x.value,\n _n(F.value(I), d.value.minDate),\n Yn(F.value(I), d.value.maxDate)\n ) || zl(d.value.disabledDates, F.value(I), x.value) || v.value.months?.includes(x.value) || !Hl(d.value.allowedDates, F.value(I), x.value) || zn(e.yearRange, F.value(I)), X = Y(x.value, I), B = Fn(g.value, x.value, F.value(I));\n return { active: c, disabled: o, isBetween: X, highlighted: B };\n })), y = (I, x) => pt(it(H()), I, F.value(x)), V = (I, x) => {\n const c = T.value ? T.value : it(/* @__PURE__ */ new Date());\n T.value = pt(c, I, F.value(x)), t(\"auto-apply\"), t(\"update-flow-step\");\n }, S = (I, x) => {\n const c = y(I, x);\n i.value.fixedEnd || i.value.fixedStart ? T.value = Vn(c, T, t, i) : T.value ? m(c, T.value) && (T.value = tn(T, y(I, x), t)) : T.value = [y(I, x)], at().then(() => {\n pa(T.value, t, e.autoApply, e.modelAuto);\n });\n }, q = (I, x) => {\n en(y(I, x), T, R.value.limit), t(\"auto-apply\", !0);\n }, k = (I, x) => (C.value[x].month = I, u(x, C.value[x].year, I), R.value.enabled ? q(I, x) : i.value.enabled ? S(I, x) : V(I, x)), se = (I, x) => {\n z(I, x), u(x, I, null);\n }, u = (I, x, c) => {\n let o = c;\n if (!o && o !== 0) {\n const X = ce();\n o = Array.isArray(X) ? X[I].month : X.month;\n }\n t(\"update-month-year\", { instance: I, year: x, month: o });\n };\n return {\n groupedMonths: te,\n groupedYears: L,\n year: F,\n isDisabled: O,\n defaultedMultiCalendars: l,\n defaultedAriaLabels: n,\n defaultedTransitions: a,\n defaultedConfig: f,\n showYearPicker: le,\n modelValue: T,\n presetDate: (I, x) => {\n Un({\n value: I,\n modelValue: T,\n range: i.value.enabled,\n timezone: x ? void 0 : P.value.timezone\n }), t(\"auto-apply\");\n },\n setHoverDate: (I, x) => {\n A.value = y(I, x);\n },\n selectMonth: k,\n selectYear: se,\n toggleYearPicker: U,\n handleYearSelect: $,\n handleYear: ee,\n getModelMonthYear: ce\n };\n}, hr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"MonthPicker\",\n props: {\n ...dt\n },\n emits: [\n \"update:internal-model-value\",\n \"overlay-closed\",\n \"reset-flow\",\n \"range-start\",\n \"range-end\",\n \"auto-apply\",\n \"update-month-year\",\n \"update-flow-step\",\n \"mount\",\n \"invalid-fixed-range\",\n \"overlay-toggle\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = Yt(), f = et(a, \"yearMode\"), i = e;\n Ue(() => {\n i.shadow || n(\"mount\", null);\n });\n const {\n groupedMonths: g,\n groupedYears: d,\n year: P,\n isDisabled: v,\n defaultedMultiCalendars: R,\n defaultedConfig: h,\n showYearPicker: T,\n modelValue: F,\n presetDate: _,\n setHoverDate: C,\n selectMonth: M,\n selectYear: A,\n toggleYearPicker: m,\n handleYearSelect: z,\n handleYear: L,\n getModelMonthYear: le\n } = yr(i, n);\n return t({ getSidebarProps: () => ({\n modelValue: F,\n year: P,\n getModelMonthYear: le,\n selectMonth: M,\n selectYear: A,\n handleYear: L\n }), presetDate: _, toggleYearPicker: ($) => m(0, $) }), ($, ee) => (w(), Te(ma, {\n \"multi-calendars\": s(R).count,\n collapse: $.collapse,\n stretch: \"\",\n \"is-mobile\": $.isMobile\n }, {\n default: we(({ instance: O }) => [\n $.$slots[\"top-extra\"] ? ie($.$slots, \"top-extra\", {\n key: 0,\n value: $.internalModelValue\n }) : Q(\"\", !0),\n $.$slots[\"month-year\"] ? ie($.$slots, \"month-year\", ze(He({ key: 1 }, {\n year: s(P),\n months: s(g)(O),\n years: s(d)(O),\n selectMonth: s(M),\n selectYear: s(A),\n instance: O\n }))) : (w(), Te(ta, {\n key: 2,\n items: s(g)(O),\n \"arrow-navigation\": $.arrowNavigation,\n \"is-last\": $.autoApply && !s(h).keepActionRow,\n \"esc-close\": $.escClose,\n height: s(h).modeHeight,\n config: $.config,\n \"no-overlay-focus\": !!($.noOverlayFocus || $.textInput),\n \"use-relative\": \"\",\n type: \"month\",\n onSelected: (J) => s(M)(J, O),\n onHoverValue: (J) => s(C)(J, O)\n }, Ge({\n header: we(() => [\n tt(Wn, He($.$props, {\n items: s(d)(O),\n instance: O,\n \"show-year-picker\": s(T)[O],\n year: s(P)(O),\n \"is-disabled\": (J) => s(v)(O, J),\n onHandleYear: (J) => s(L)(O, J),\n onYearSelect: (J) => s(z)(J, O),\n onToggleYearPicker: (J) => s(m)(O, J?.flow, J?.show)\n }), Ge({ _: 2 }, [\n Ce(s(f), (J, ce) => ({\n name: J,\n fn: we((pe) => [\n ie($.$slots, J, ze(Je(pe)))\n ])\n }))\n ]), 1040, [\"items\", \"instance\", \"show-year-picker\", \"year\", \"is-disabled\", \"onHandleYear\", \"onYearSelect\", \"onToggleYearPicker\"])\n ]),\n _: 2\n }, [\n $.$slots[\"month-overlay-value\"] ? {\n name: \"item\",\n fn: we(({ item: J }) => [\n ie($.$slots, \"month-overlay-value\", {\n text: J.text,\n value: J.value\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"items\", \"arrow-navigation\", \"is-last\", \"esc-close\", \"height\", \"config\", \"no-overlay-focus\", \"onSelected\", \"onHoverValue\"]))\n ]),\n _: 3\n }, 8, [\"multi-calendars\", \"collapse\", \"is-mobile\"]));\n }\n}), br = (e, t) => {\n const l = () => {\n e.isTextInputDate && (v.value = ye(H(e.startDate)));\n }, { modelValue: n } = na(e, t, l), a = Z(null), { defaultedHighlight: f, defaultedMultiDates: i, defaultedFilters: g, defaultedRange: d, propDates: P } = Oe(e), v = Z();\n Ue(() => {\n e.startDate && (n.value && e.focusStartDate || !n.value) && (v.value = ye(H(e.startDate)));\n });\n const R = (m) => Array.isArray(n.value) ? n.value.some((z) => ye(z) === m) : n.value ? ye(n.value) === m : !1, h = (m) => d.value.enabled && Array.isArray(n.value) ? xt(n.value, a.value, C(m)) : !1, T = (m) => P.value.allowedDates instanceof Map ? P.value.allowedDates.size ? P.value.allowedDates.has(`${m}`) : !1 : !0, F = (m) => P.value.disabledDates instanceof Map ? P.value.disabledDates.size ? P.value.disabledDates.has(`${m}`) : !1 : typeof P.value.disabledDates == \"function\" ? P.value.disabledDates(ut(Fe(Gt(H())), m)) : !0, _ = j(() => Ht(qa(e.yearRange, e.locale, e.reverseYears), (m) => {\n const z = R(m.value), L = Zt(\n m.value,\n Wt(P.value.minDate),\n Wt(P.value.maxDate)\n ) || g.value.years.includes(m.value) || !T(m.value) || F(m.value), le = h(m.value) && !z, U = xa(f.value, m.value);\n return { active: z, disabled: L, isBetween: le, highlighted: U };\n })), C = (m) => ut(it(Gt(/* @__PURE__ */ new Date())), m);\n return {\n groupedYears: _,\n modelValue: n,\n focusYear: v,\n setHoverValue: (m) => {\n a.value = ut(it(/* @__PURE__ */ new Date()), m);\n },\n selectYear: (m) => {\n if (t(\"update-month-year\", { instance: 0, year: m }), i.value.enabled)\n return n.value ? Array.isArray(n.value) && ((n.value?.map((L) => ye(L))).includes(m) ? n.value = n.value.filter((L) => ye(L) !== m) : n.value.push(ut(Fe(H()), m))) : n.value = [ut(Fe(Gt(H())), m)], t(\"auto-apply\", !0);\n d.value.enabled ? (n.value = tn(n, C(m), t), at().then(() => {\n pa(n.value, t, e.autoApply, e.modelAuto);\n })) : (n.value = C(m), t(\"auto-apply\"));\n }\n };\n}, kr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"YearPicker\",\n props: {\n ...dt\n },\n emits: [\n \"update:internal-model-value\",\n \"reset-flow\",\n \"range-start\",\n \"range-end\",\n \"auto-apply\",\n \"update-month-year\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, { groupedYears: f, modelValue: i, focusYear: g, selectYear: d, setHoverValue: P } = br(a, n), { defaultedConfig: v } = Oe(a);\n return t({ getSidebarProps: () => ({\n modelValue: i,\n selectYear: d\n }) }), (h, T) => (w(), W(\"div\", null, [\n h.$slots[\"top-extra\"] ? ie(h.$slots, \"top-extra\", {\n key: 0,\n value: h.internalModelValue\n }) : Q(\"\", !0),\n h.$slots[\"month-year\"] ? ie(h.$slots, \"month-year\", ze(He({ key: 1 }, {\n years: s(f),\n selectYear: s(d)\n }))) : (w(), Te(ta, {\n key: 2,\n items: s(f),\n \"is-last\": h.autoApply && !s(v).keepActionRow,\n height: s(v).modeHeight,\n config: h.config,\n \"no-overlay-focus\": !!(h.noOverlayFocus || h.textInput),\n \"focus-value\": s(g),\n type: \"year\",\n \"use-relative\": \"\",\n onSelected: s(d),\n onHoverValue: s(P)\n }, Ge({ _: 2 }, [\n h.$slots[\"year-overlay-value\"] ? {\n name: \"item\",\n fn: we(({ item: F }) => [\n ie(h.$slots, \"year-overlay-value\", {\n text: F.text,\n value: F.value\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"items\", \"is-last\", \"height\", \"config\", \"no-overlay-focus\", \"focus-value\", \"onSelected\", \"onHoverValue\"]))\n ]));\n }\n}), wr = {\n key: 0,\n class: \"dp__time_input\"\n}, Dr = [\"data-compact\", \"data-collapsed\"], Mr = [\"data-test-id\", \"aria-label\", \"onKeydown\", \"onClick\", \"onMousedown\"], $r = [\"aria-label\", \"disabled\", \"data-test-id\", \"onKeydown\", \"onClick\"], Ar = [\"data-test-id\", \"aria-label\", \"onKeydown\", \"onClick\", \"onMousedown\"], Tr = { key: 0 }, Sr = [\"aria-label\", \"data-compact\"], Pr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"TimeInput\",\n props: {\n hours: { type: Number, default: 0 },\n minutes: { type: Number, default: 0 },\n seconds: { type: Number, default: 0 },\n closeTimePickerBtn: { type: Object, default: null },\n order: { type: Number, default: 0 },\n disabledTimesConfig: { type: Function, default: null },\n validateTime: { type: Function, default: () => !1 },\n ...dt\n },\n emits: [\n \"set-hours\",\n \"set-minutes\",\n \"update:hours\",\n \"update:minutes\",\n \"update:seconds\",\n \"reset-flow\",\n \"mounted\",\n \"overlay-closed\",\n \"overlay-opened\",\n \"am-pm-change\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, { setTimePickerElements: f, setTimePickerBackRef: i } = At(), {\n defaultedAriaLabels: g,\n defaultedTransitions: d,\n defaultedFilters: P,\n defaultedConfig: v,\n defaultedRange: R,\n defaultedMultiCalendars: h\n } = Oe(a), { transitionName: T, showTransition: F } = aa(d), _ = ea({\n hours: !1,\n minutes: !1,\n seconds: !1\n }), C = Z(\"AM\"), M = Z(null), A = Z([]), m = Z(), z = Z(!1);\n Ue(() => {\n n(\"mounted\");\n });\n const L = (r) => Se(/* @__PURE__ */ new Date(), {\n hours: r.hours,\n minutes: r.minutes,\n seconds: a.enableSeconds ? r.seconds : 0,\n milliseconds: 0\n }), le = j(\n () => (r) => S(r, a[r]) || $(r, a[r])\n ), U = j(() => ({ hours: a.hours, minutes: a.minutes, seconds: a.seconds })), $ = (r, E) => R.value.enabled && !R.value.disableTimeRangeValidation ? !a.validateTime(r, E) : !1, ee = (r, E) => {\n if (R.value.enabled && !R.value.disableTimeRangeValidation) {\n const K = E ? +a[`${r}Increment`] : -+a[`${r}Increment`], oe = a[r] + K;\n return !a.validateTime(r, oe);\n }\n return !1;\n }, O = j(() => (r) => !re(+a[r] + +a[`${r}Increment`], r) || ee(r, !0)), J = j(() => (r) => !re(+a[r] - +a[`${r}Increment`], r) || ee(r, !1)), ce = (r, E) => Tn(Se(H(), r), E), pe = (r, E) => ml(Se(H(), r), E), p = j(\n () => ({\n dp__time_col: !0,\n dp__time_col_block: !a.timePickerInline,\n dp__time_col_reg_block: !a.enableSeconds && a.is24 && !a.timePickerInline,\n dp__time_col_reg_inline: !a.enableSeconds && a.is24 && a.timePickerInline,\n dp__time_col_reg_with_button: !a.enableSeconds && !a.is24,\n dp__time_col_sec: a.enableSeconds && a.is24,\n dp__time_col_sec_with_button: a.enableSeconds && !a.is24\n })\n ), Y = j(\n () => a.timePickerInline && R.value.enabled && !h.value.count\n ), te = j(() => {\n const r = [{ type: \"hours\" }];\n return a.enableMinutes && r.push({ type: \"\", separator: !0 }, {\n type: \"minutes\"\n }), a.enableSeconds && r.push({ type: \"\", separator: !0 }, {\n type: \"seconds\"\n }), r;\n }), y = j(() => te.value.filter((r) => !r.separator)), V = j(() => (r) => {\n if (r === \"hours\") {\n const E = X(+a.hours);\n return { text: E < 10 ? `0${E}` : `${E}`, value: E };\n }\n return { text: a[r] < 10 ? `0${a[r]}` : `${a[r]}`, value: a[r] };\n }), S = (r, E) => {\n if (!a.disabledTimesConfig) return !1;\n const K = a.disabledTimesConfig(a.order, r === \"hours\" ? E : void 0);\n return K[r] ? !!K[r]?.includes(E) : !0;\n }, q = (r, E) => E !== \"hours\" || C.value === \"AM\" ? r : r + 12, k = (r) => {\n const E = a.is24 ? 24 : 12, K = r === \"hours\" ? E : 60, oe = +a[`${r}GridIncrement`], ge = r === \"hours\" && !a.is24 ? oe : 0, _e = [];\n for (let Ye = ge; Ye < K; Ye += oe)\n _e.push({ value: a.is24 ? Ye : q(Ye, r), text: Ye < 10 ? `0${Ye}` : `${Ye}` });\n return r === \"hours\" && !a.is24 && _e.unshift({ value: C.value === \"PM\" ? 12 : 0, text: \"12\" }), Ht(_e, (Ye) => ({ active: !1, disabled: P.value.times[r].includes(Ye.value) || !re(Ye.value, r) || S(r, Ye.value) || $(r, Ye.value) }));\n }, se = (r) => r >= 0 ? r : 59, u = (r) => r >= 0 ? r : 23, re = (r, E) => {\n const K = a.minTime ? L(Sa(a.minTime)) : null, oe = a.maxTime ? L(Sa(a.maxTime)) : null, ge = L(\n Sa(\n U.value,\n E,\n E === \"minutes\" || E === \"seconds\" ? se(r) : u(r)\n )\n );\n return K && oe ? (Ft(ge, oe) || Nt(ge, oe)) && (_t(ge, K) || Nt(ge, K)) : K ? _t(ge, K) || Nt(ge, K) : oe ? Ft(ge, oe) || Nt(ge, oe) : !0;\n }, G = (r) => a[`no${r[0].toUpperCase() + r.slice(1)}Overlay`], I = (r) => {\n G(r) || (_[r] = !_[r], _[r] ? (z.value = !0, n(\"overlay-opened\", r)) : (z.value = !1, n(\"overlay-closed\", r)));\n }, x = (r) => r === \"hours\" ? yt : r === \"minutes\" ? $t : zt, c = () => {\n m.value && clearTimeout(m.value);\n }, o = (r, E = !0, K) => {\n const oe = E ? ce : pe, ge = E ? +a[`${r}Increment`] : -+a[`${r}Increment`];\n re(+a[r] + ge, r) && n(\n `update:${r}`,\n x(r)(oe({ [r]: +a[r] }, { [r]: +a[`${r}Increment`] }))\n ), !K?.keyboard && v.value.timeArrowHoldThreshold && (m.value = setTimeout(() => {\n o(r, E);\n }, v.value.timeArrowHoldThreshold));\n }, X = (r) => a.is24 ? r : (r >= 12 ? C.value = \"PM\" : C.value = \"AM\", Sl(r)), B = () => {\n C.value === \"PM\" ? (C.value = \"AM\", n(\"update:hours\", a.hours - 12)) : (C.value = \"PM\", n(\"update:hours\", a.hours + 12)), n(\"am-pm-change\", C.value);\n }, be = (r) => {\n _[r] = !0;\n }, Ae = (r, E, K) => {\n if (r && a.arrowNavigation) {\n Array.isArray(A.value[E]) ? A.value[E][K] = r : A.value[E] = [r];\n const oe = A.value.reduce(\n (ge, _e) => _e.map((Ye, nt) => [...ge[nt] || [], _e[nt]]),\n []\n );\n i(a.closeTimePickerBtn), M.value && (oe[1] = oe[1].concat(M.value)), f(oe, a.order);\n }\n }, ne = (r, E) => (I(r), n(`update:${r}`, E));\n return t({ openChildCmp: be }), (r, E) => r.disabled ? Q(\"\", !0) : (w(), W(\"div\", wr, [\n (w(!0), W(ke, null, Ce(te.value, (K, oe) => (w(), W(\"div\", {\n key: oe,\n class: De(p.value),\n \"data-compact\": Y.value && !r.enableSeconds,\n \"data-collapsed\": Y.value && r.enableSeconds\n }, [\n K.separator ? (w(), W(ke, { key: 0 }, [\n z.value ? Q(\"\", !0) : (w(), W(ke, { key: 0 }, [\n gt(\":\")\n ], 64))\n ], 64)) : (w(), W(ke, { key: 1 }, [\n he(\"button\", {\n ref_for: !0,\n ref: (ge) => Ae(ge, oe, 0),\n type: \"button\",\n class: De({\n dp__btn: !0,\n dp__inc_dec_button: !r.timePickerInline,\n dp__inc_dec_button_inline: r.timePickerInline,\n dp__tp_inline_btn_top: r.timePickerInline,\n dp__inc_dec_button_disabled: O.value(K.type),\n \"dp--hidden-el\": z.value\n }),\n \"data-test-id\": `${K.type}-time-inc-btn-${a.order}`,\n \"aria-label\": s(g)?.incrementValue(K.type),\n tabindex: \"0\",\n onKeydown: (ge) => s(qe)(ge, () => o(K.type, !0, { keyboard: !0 }), !0),\n onClick: (ge) => s(v).timeArrowHoldThreshold ? void 0 : o(K.type, !0),\n onMousedown: (ge) => s(v).timeArrowHoldThreshold ? o(K.type, !0) : void 0,\n onMouseup: c\n }, [\n a.timePickerInline ? (w(), W(ke, { key: 1 }, [\n r.$slots[\"tp-inline-arrow-up\"] ? ie(r.$slots, \"tp-inline-arrow-up\", { key: 0 }) : (w(), W(ke, { key: 1 }, [\n E[2] || (E[2] = he(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_l\" }, null, -1)),\n E[3] || (E[3] = he(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_r\" }, null, -1))\n ], 64))\n ], 64)) : (w(), W(ke, { key: 0 }, [\n r.$slots[\"arrow-up\"] ? ie(r.$slots, \"arrow-up\", { key: 0 }) : Q(\"\", !0),\n r.$slots[\"arrow-up\"] ? Q(\"\", !0) : (w(), Te(s(Ka), { key: 1 }))\n ], 64))\n ], 42, Mr),\n he(\"button\", {\n ref_for: !0,\n ref: (ge) => Ae(ge, oe, 1),\n type: \"button\",\n \"aria-label\": `${V.value(K.type).text}-${s(g)?.openTpOverlay(K.type)}`,\n class: De({\n dp__time_display: !0,\n dp__time_display_block: !r.timePickerInline,\n dp__time_display_inline: r.timePickerInline,\n \"dp--time-invalid\": le.value(K.type),\n \"dp--time-overlay-btn\": !le.value(K.type),\n \"dp--hidden-el\": z.value\n }),\n disabled: G(K.type),\n tabindex: \"0\",\n \"data-test-id\": `${K.type}-toggle-overlay-btn-${a.order}`,\n onKeydown: (ge) => s(qe)(ge, () => I(K.type), !0),\n onClick: (ge) => I(K.type)\n }, [\n r.$slots[K.type] ? ie(r.$slots, K.type, {\n key: 0,\n text: V.value(K.type).text,\n value: V.value(K.type).value\n }) : Q(\"\", !0),\n r.$slots[K.type] ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(V.value(K.type).text), 1)\n ], 64))\n ], 42, $r),\n he(\"button\", {\n ref_for: !0,\n ref: (ge) => Ae(ge, oe, 2),\n type: \"button\",\n class: De({\n dp__btn: !0,\n dp__inc_dec_button: !r.timePickerInline,\n dp__inc_dec_button_inline: r.timePickerInline,\n dp__tp_inline_btn_bottom: r.timePickerInline,\n dp__inc_dec_button_disabled: J.value(K.type),\n \"dp--hidden-el\": z.value\n }),\n \"data-test-id\": `${K.type}-time-dec-btn-${a.order}`,\n \"aria-label\": s(g)?.decrementValue(K.type),\n tabindex: \"0\",\n onKeydown: (ge) => s(qe)(ge, () => o(K.type, !1, { keyboard: !0 }), !0),\n onClick: (ge) => s(v).timeArrowHoldThreshold ? void 0 : o(K.type, !1),\n onMousedown: (ge) => s(v).timeArrowHoldThreshold ? o(K.type, !1) : void 0,\n onMouseup: c\n }, [\n a.timePickerInline ? (w(), W(ke, { key: 1 }, [\n r.$slots[\"tp-inline-arrow-down\"] ? ie(r.$slots, \"tp-inline-arrow-down\", { key: 0 }) : (w(), W(ke, { key: 1 }, [\n E[4] || (E[4] = he(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_l\" }, null, -1)),\n E[5] || (E[5] = he(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_r\" }, null, -1))\n ], 64))\n ], 64)) : (w(), W(ke, { key: 0 }, [\n r.$slots[\"arrow-down\"] ? ie(r.$slots, \"arrow-down\", { key: 0 }) : Q(\"\", !0),\n r.$slots[\"arrow-down\"] ? Q(\"\", !0) : (w(), Te(s(Ga), { key: 1 }))\n ], 64))\n ], 42, Ar)\n ], 64))\n ], 10, Dr))), 128)),\n r.is24 ? Q(\"\", !0) : (w(), W(\"div\", Tr, [\n r.$slots[\"am-pm-button\"] ? ie(r.$slots, \"am-pm-button\", {\n key: 0,\n toggle: B,\n value: C.value\n }) : Q(\"\", !0),\n r.$slots[\"am-pm-button\"] ? Q(\"\", !0) : (w(), W(\"button\", {\n key: 1,\n ref_key: \"amPmButton\",\n ref: M,\n type: \"button\",\n class: \"dp__pm_am_button\",\n role: \"button\",\n \"aria-label\": s(g)?.amPmButton,\n tabindex: \"0\",\n \"data-compact\": Y.value,\n onClick: B,\n onKeydown: E[0] || (E[0] = (K) => s(qe)(K, () => B(), !0))\n }, Ke(C.value), 41, Sr))\n ])),\n (w(!0), W(ke, null, Ce(y.value, (K, oe) => (w(), Te(Vt, {\n key: oe,\n name: s(T)(_[K.type]),\n css: s(F)\n }, {\n default: we(() => [\n _[K.type] ? (w(), Te(ta, {\n key: 0,\n items: k(K.type),\n \"is-last\": r.autoApply && !s(v).keepActionRow,\n \"esc-close\": r.escClose,\n type: K.type,\n \"text-input\": r.textInput,\n config: r.config,\n \"arrow-navigation\": r.arrowNavigation,\n \"aria-labels\": r.ariaLabels,\n \"overlay-label\": s(g).timeOverlay?.(K.type),\n onSelected: (ge) => ne(K.type, ge),\n onToggle: (ge) => I(K.type),\n onResetFlow: E[1] || (E[1] = (ge) => r.$emit(\"reset-flow\"))\n }, Ge({\n \"button-icon\": we(() => [\n r.$slots[\"clock-icon\"] ? ie(r.$slots, \"clock-icon\", { key: 0 }) : Q(\"\", !0),\n r.$slots[\"clock-icon\"] ? Q(\"\", !0) : (w(), Te(fa(r.timePickerInline ? s(jt) : s(ja)), { key: 1 }))\n ]),\n _: 2\n }, [\n r.$slots[`${K.type}-overlay-value`] ? {\n name: \"item\",\n fn: we(({ item: ge }) => [\n ie(r.$slots, `${K.type}-overlay-value`, {\n text: ge.text,\n value: ge.value\n })\n ]),\n key: \"0\"\n } : void 0,\n r.$slots[`${K.type}-overlay-header`] ? {\n name: \"header\",\n fn: we(() => [\n ie(r.$slots, `${K.type}-overlay-header`, {\n toggle: () => I(K.type)\n })\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"items\", \"is-last\", \"esc-close\", \"type\", \"text-input\", \"config\", \"arrow-navigation\", \"aria-labels\", \"overlay-label\", \"onSelected\", \"onToggle\"])) : Q(\"\", !0)\n ]),\n _: 2\n }, 1032, [\"name\", \"css\"]))), 128))\n ]));\n }\n}), Rr = [\"data-dp-mobile\"], Cr = [\"aria-label\", \"tabindex\"], Or = [\"role\", \"aria-label\", \"tabindex\"], Br = [\"aria-label\"], Kn = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"TimePicker\",\n props: {\n hours: { type: [Number, Array], default: 0 },\n minutes: { type: [Number, Array], default: 0 },\n seconds: { type: [Number, Array], default: 0 },\n disabledTimesConfig: { type: Function, default: null },\n validateTime: {\n type: Function,\n default: () => !1\n },\n ...dt\n },\n emits: [\n \"update:hours\",\n \"update:minutes\",\n \"update:seconds\",\n \"mount\",\n \"reset-flow\",\n \"overlay-opened\",\n \"overlay-closed\",\n \"am-pm-change\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, { buildMatrix: f, setTimePicker: i } = At(), g = Yt(), { defaultedTransitions: d, defaultedAriaLabels: P, defaultedTextInput: v, defaultedConfig: R, defaultedRange: h } = Oe(a), { transitionName: T, showTransition: F } = aa(d), { hideNavigationButtons: _ } = ga(), C = Z(null), M = Z(null), A = Z([]), m = Z(null), z = Z(!1);\n Ue(() => {\n n(\"mount\"), !a.timePicker && a.arrowNavigation ? f([Le(C.value)], \"time\") : i(!0, a.timePicker);\n });\n const L = j(() => h.value.enabled && a.modelAuto ? Rn(a.internalModelValue) : !0), le = Z(!1), U = (S) => ({\n hours: Array.isArray(a.hours) ? a.hours[S] : a.hours,\n minutes: Array.isArray(a.minutes) ? a.minutes[S] : a.minutes,\n seconds: Array.isArray(a.seconds) ? a.seconds[S] : a.seconds\n }), $ = j(() => {\n const S = [];\n if (h.value.enabled)\n for (let q = 0; q < 2; q++)\n S.push(U(q));\n else\n S.push(U(0));\n return S;\n }), ee = (S, q = !1, k = \"\") => {\n q || n(\"reset-flow\"), le.value = S, n(S ? \"overlay-opened\" : \"overlay-closed\", je.time), a.arrowNavigation && i(S), at(() => {\n k !== \"\" && A.value[0] && A.value[0].openChildCmp(k);\n });\n }, O = j(() => ({\n dp__btn: !0,\n dp__button: !0,\n dp__button_bottom: a.autoApply && !R.value.keepActionRow\n })), J = et(g, \"timePicker\"), ce = (S, q, k) => h.value.enabled ? q === 0 ? [S, $.value[1][k]] : [$.value[0][k], S] : S, pe = (S) => {\n n(\"update:hours\", S);\n }, p = (S) => {\n n(\"update:minutes\", S);\n }, Y = (S) => {\n n(\"update:seconds\", S);\n }, te = () => {\n if (m.value && !v.value.enabled && !a.noOverlayFocus) {\n const S = Cn(m.value);\n S && S.focus({ preventScroll: !0 });\n }\n }, y = (S) => {\n z.value = !1, n(\"overlay-closed\", S);\n }, V = (S) => {\n z.value = !0, n(\"overlay-opened\", S);\n };\n return t({ toggleTimePicker: ee }), (S, q) => (w(), W(\"div\", {\n class: \"dp--tp-wrap\",\n \"data-dp-mobile\": S.isMobile\n }, [\n !S.timePicker && !S.timePickerInline ? ua((w(), W(\"button\", {\n key: 0,\n ref_key: \"openTimePickerBtn\",\n ref: C,\n type: \"button\",\n class: De({ ...O.value, \"dp--hidden-el\": le.value }),\n \"aria-label\": s(P)?.openTimePicker,\n tabindex: S.noOverlayFocus ? void 0 : 0,\n \"data-test-id\": \"open-time-picker-btn\",\n onKeydown: q[0] || (q[0] = (k) => s(qe)(k, () => ee(!0))),\n onClick: q[1] || (q[1] = (k) => ee(!0))\n }, [\n S.$slots[\"clock-icon\"] ? ie(S.$slots, \"clock-icon\", { key: 0 }) : Q(\"\", !0),\n S.$slots[\"clock-icon\"] ? Q(\"\", !0) : (w(), Te(s(ja), { key: 1 }))\n ], 42, Cr)), [\n [ia, !s(_)(S.hideNavigation, \"time\")]\n ]) : Q(\"\", !0),\n tt(Vt, {\n name: s(T)(le.value),\n css: s(F) && !S.timePickerInline\n }, {\n default: we(() => [\n le.value || S.timePicker || S.timePickerInline ? (w(), W(\"div\", {\n key: 0,\n ref_key: \"overlayRef\",\n ref: m,\n role: S.timePickerInline ? void 0 : \"dialog\",\n class: De({\n dp__overlay: !S.timePickerInline,\n \"dp--overlay-absolute\": !a.timePicker && !S.timePickerInline,\n \"dp--overlay-relative\": a.timePicker\n }),\n style: lt(S.timePicker ? { height: `${s(R).modeHeight}px` } : void 0),\n \"aria-label\": s(P)?.timePicker,\n tabindex: S.timePickerInline ? void 0 : 0\n }, [\n he(\"div\", {\n class: De(\n S.timePickerInline ? \"dp__time_picker_inline_container\" : \"dp__overlay_container dp__container_flex dp__time_picker_overlay_container\"\n ),\n style: { display: \"flex\" }\n }, [\n S.$slots[\"time-picker-overlay\"] ? ie(S.$slots, \"time-picker-overlay\", {\n key: 0,\n hours: e.hours,\n minutes: e.minutes,\n seconds: e.seconds,\n setHours: pe,\n setMinutes: p,\n setSeconds: Y\n }) : Q(\"\", !0),\n S.$slots[\"time-picker-overlay\"] ? Q(\"\", !0) : (w(), W(\"div\", {\n key: 1,\n class: De(S.timePickerInline ? \"dp__flex\" : \"dp__overlay_row dp__flex_row\")\n }, [\n (w(!0), W(ke, null, Ce($.value, (k, se) => ua((w(), Te(Pr, He({ key: se }, { ref_for: !0 }, {\n ...S.$props,\n order: se,\n hours: k.hours,\n minutes: k.minutes,\n seconds: k.seconds,\n closeTimePickerBtn: M.value,\n disabledTimesConfig: e.disabledTimesConfig,\n disabled: se === 0 ? s(h).fixedStart : s(h).fixedEnd\n }, {\n ref_for: !0,\n ref_key: \"timeInputRefs\",\n ref: A,\n \"validate-time\": (u, re) => e.validateTime(u, ce(re, se, u)),\n \"onUpdate:hours\": (u) => pe(ce(u, se, \"hours\")),\n \"onUpdate:minutes\": (u) => p(ce(u, se, \"minutes\")),\n \"onUpdate:seconds\": (u) => Y(ce(u, se, \"seconds\")),\n onMounted: te,\n onOverlayClosed: y,\n onOverlayOpened: V,\n onAmPmChange: q[2] || (q[2] = (u) => S.$emit(\"am-pm-change\", u))\n }), Ge({ _: 2 }, [\n Ce(s(J), (u, re) => ({\n name: u,\n fn: we((G) => [\n ie(S.$slots, u, He({ ref_for: !0 }, G))\n ])\n }))\n ]), 1040, [\"validate-time\", \"onUpdate:hours\", \"onUpdate:minutes\", \"onUpdate:seconds\"])), [\n [ia, se === 0 ? !0 : L.value]\n ])), 128))\n ], 2)),\n !S.timePicker && !S.timePickerInline ? ua((w(), W(\"button\", {\n key: 2,\n ref_key: \"closeTimePickerBtn\",\n ref: M,\n type: \"button\",\n class: De({ ...O.value, \"dp--hidden-el\": z.value }),\n \"aria-label\": s(P)?.closeTimePicker,\n tabindex: \"0\",\n onKeydown: q[3] || (q[3] = (k) => s(qe)(k, () => ee(!1))),\n onClick: q[4] || (q[4] = (k) => ee(!1))\n }, [\n S.$slots[\"calendar-icon\"] ? ie(S.$slots, \"calendar-icon\", { key: 0 }) : Q(\"\", !0),\n S.$slots[\"calendar-icon\"] ? Q(\"\", !0) : (w(), Te(s(jt), { key: 1 }))\n ], 42, Br)), [\n [ia, !s(_)(S.hideNavigation, \"time\")]\n ]) : Q(\"\", !0)\n ], 2)\n ], 14, Or)) : Q(\"\", !0)\n ]),\n _: 3\n }, 8, [\"name\", \"css\"])\n ], 8, Rr));\n }\n}), Gn = (e, t, l, n) => {\n const { defaultedRange: a } = Oe(e), f = (m, z) => Array.isArray(t[m]) ? t[m][z] : t[m], i = (m) => e.enableSeconds ? Array.isArray(t.seconds) ? t.seconds[m] : t.seconds : 0, g = (m, z) => m ? z !== void 0 ? Mt(m, f(\"hours\", z), f(\"minutes\", z), i(z)) : Mt(m, t.hours, t.minutes, i()) : wn(H(), i(z)), d = (m, z) => {\n t[m] = z;\n }, P = j(() => e.modelAuto && a.value.enabled ? Array.isArray(l.value) ? l.value.length > 1 : !1 : a.value.enabled), v = (m, z) => {\n const L = Object.fromEntries(\n Object.keys(t).map((le) => le === m ? [le, z] : [le, t[le]].slice())\n );\n if (P.value && !a.value.disableTimeRangeValidation) {\n const le = ($) => l.value ? Mt(\n l.value[$],\n L.hours[$],\n L.minutes[$],\n L.seconds[$]\n ) : null, U = ($) => Dn(l.value[$], 0);\n return !($e(le(0), le(1)) && (_t(le(0), U(1)) || Ft(le(1), U(0))));\n }\n return !0;\n }, R = (m, z) => {\n v(m, z) && (d(m, z), n && n());\n }, h = (m) => {\n R(\"hours\", m);\n }, T = (m) => {\n R(\"minutes\", m);\n }, F = (m) => {\n R(\"seconds\", m);\n }, _ = (m, z, L, le) => {\n z && h(m), !z && !L && T(m), L && F(m), l.value && le(l.value);\n }, C = (m) => {\n if (m) {\n const z = Array.isArray(m), L = z ? [+m[0].hours, +m[1].hours] : +m.hours, le = z ? [+m[0].minutes, +m[1].minutes] : +m.minutes, U = z ? [+m[0].seconds, +m[1].seconds] : +m.seconds;\n d(\"hours\", L), d(\"minutes\", le), e.enableSeconds && d(\"seconds\", U);\n }\n }, M = (m, z) => {\n const L = {\n hours: Array.isArray(t.hours) ? t.hours[m] : t.hours,\n disabledArr: []\n };\n return (z || z === 0) && (L.hours = z), Array.isArray(e.disabledTimes) && (L.disabledArr = a.value.enabled && Array.isArray(e.disabledTimes[m]) ? e.disabledTimes[m] : e.disabledTimes), L;\n }, A = j(() => (m, z) => {\n if (Array.isArray(e.disabledTimes)) {\n const { disabledArr: L, hours: le } = M(m, z), U = L.filter(($) => +$.hours === le);\n return U[0]?.minutes === \"*\" ? { hours: [le], minutes: void 0, seconds: void 0 } : {\n hours: [],\n minutes: U?.map(($) => +$.minutes) ?? [],\n seconds: U?.map(($) => $.seconds ? +$.seconds : void 0) ?? []\n };\n }\n return { hours: [], minutes: [], seconds: [] };\n });\n return {\n setTime: d,\n updateHours: h,\n updateMinutes: T,\n updateSeconds: F,\n getSetDateTime: g,\n updateTimeValues: _,\n getSecondsValue: i,\n assignStartTime: C,\n validateTime: v,\n disabledTimesConfig: A\n };\n}, _r = (e, t) => {\n const l = () => {\n e.isTextInputDate && z();\n }, { modelValue: n, time: a } = na(e, t, l), { defaultedStartTime: f, defaultedRange: i, defaultedTz: g } = Oe(e), { updateTimeValues: d, getSetDateTime: P, setTime: v, assignStartTime: R, disabledTimesConfig: h, validateTime: T } = Gn(e, a, n, F);\n function F() {\n t(\"update-flow-step\");\n }\n const _ = (U) => {\n const { hours: $, minutes: ee, seconds: O } = U;\n return { hours: +$, minutes: +ee, seconds: O ? +O : 0 };\n }, C = () => {\n if (e.startTime) {\n if (Array.isArray(e.startTime)) {\n const $ = _(e.startTime[0]), ee = _(e.startTime[1]);\n return [Se(H(), $), Se(H(), ee)];\n }\n const U = _(e.startTime);\n return Se(H(), U);\n }\n return i.value.enabled ? [null, null] : null;\n }, M = () => {\n if (i.value.enabled) {\n const [U, $] = C();\n n.value = [\n Ze(P(U, 0), g.value.timezone),\n Ze(P($, 1), g.value.timezone)\n ];\n } else\n n.value = Ze(P(C()), g.value.timezone);\n }, A = (U) => Array.isArray(U) ? [Bt(H(U[0])), Bt(H(U[1]))] : [Bt(U ?? H())], m = (U, $, ee) => {\n v(\"hours\", U), v(\"minutes\", $), v(\"seconds\", e.enableSeconds ? ee : 0);\n }, z = () => {\n const [U, $] = A(n.value);\n return i.value.enabled ? m(\n [U.hours, $.hours],\n [U.minutes, $.minutes],\n [U.seconds, $.seconds]\n ) : m(U.hours, U.minutes, U.seconds);\n };\n Ue(() => {\n if (!e.shadow)\n return R(f.value), n.value ? z() : M();\n });\n const L = () => {\n Array.isArray(n.value) ? n.value = n.value.map((U, $) => U && P(U, $)) : n.value = P(n.value), t(\"time-update\");\n };\n return {\n modelValue: n,\n time: a,\n disabledTimesConfig: h,\n updateTime: (U, $ = !0, ee = !1) => {\n d(U, $, ee, L);\n },\n validateTime: T\n };\n}, Yr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"TimePickerSolo\",\n props: {\n ...dt\n },\n emits: [\n \"update:internal-model-value\",\n \"time-update\",\n \"am-pm-change\",\n \"mount\",\n \"reset-flow\",\n \"update-flow-step\",\n \"overlay-toggle\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, f = Yt(), i = et(f, \"timePicker\"), g = Z(null), { time: d, modelValue: P, disabledTimesConfig: v, updateTime: R, validateTime: h } = _r(a, n);\n return Ue(() => {\n a.shadow || n(\"mount\", null);\n }), t({ getSidebarProps: () => ({\n modelValue: P,\n time: d,\n updateTime: R\n }), toggleTimePicker: (_, C = !1, M = \"\") => {\n g.value?.toggleTimePicker(_, C, M);\n } }), (_, C) => (w(), Te(ma, {\n \"multi-calendars\": 0,\n stretch: \"\",\n \"is-mobile\": _.isMobile\n }, {\n default: we(() => [\n tt(Kn, He({\n ref_key: \"tpRef\",\n ref: g\n }, _.$props, {\n hours: s(d).hours,\n minutes: s(d).minutes,\n seconds: s(d).seconds,\n \"internal-model-value\": _.internalModelValue,\n \"disabled-times-config\": s(v),\n \"validate-time\": s(h),\n \"onUpdate:hours\": C[0] || (C[0] = (M) => s(R)(M)),\n \"onUpdate:minutes\": C[1] || (C[1] = (M) => s(R)(M, !1)),\n \"onUpdate:seconds\": C[2] || (C[2] = (M) => s(R)(M, !1, !0)),\n onAmPmChange: C[3] || (C[3] = (M) => _.$emit(\"am-pm-change\", M)),\n onResetFlow: C[4] || (C[4] = (M) => _.$emit(\"reset-flow\")),\n onOverlayClosed: C[5] || (C[5] = (M) => _.$emit(\"overlay-toggle\", { open: !1, overlay: M })),\n onOverlayOpened: C[6] || (C[6] = (M) => _.$emit(\"overlay-toggle\", { open: !0, overlay: M }))\n }), Ge({ _: 2 }, [\n Ce(s(i), (M, A) => ({\n name: M,\n fn: we((m) => [\n ie(_.$slots, M, ze(Je(m)))\n ])\n }))\n ]), 1040, [\"hours\", \"minutes\", \"seconds\", \"internal-model-value\", \"disabled-times-config\", \"validate-time\"])\n ]),\n _: 3\n }, 8, [\"is-mobile\"]));\n }\n}), Ir = { class: \"dp--header-wrap\" }, Er = {\n key: 0,\n class: \"dp__month_year_wrap\"\n}, Nr = { key: 0 }, Lr = { class: \"dp__month_year_wrap\" }, Fr = [\"data-dp-element\", \"aria-label\", \"data-test-id\", \"onClick\", \"onKeydown\"], zr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"DpHeader\",\n props: {\n month: { type: Number, default: 0 },\n year: { type: Number, default: 0 },\n instance: { type: Number, default: 0 },\n years: { type: Array, default: () => [] },\n months: { type: Array, default: () => [] },\n ...dt\n },\n emits: [\"update-month-year\", \"mount\", \"reset-flow\", \"overlay-closed\", \"overlay-opened\"],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, {\n defaultedTransitions: f,\n defaultedAriaLabels: i,\n defaultedMultiCalendars: g,\n defaultedFilters: d,\n defaultedConfig: P,\n defaultedHighlight: v,\n propDates: R,\n defaultedUI: h\n } = Oe(a), { transitionName: T, showTransition: F } = aa(f), { buildMatrix: _ } = At(), { handleMonthYearChange: C, isDisabled: M, updateMonthYear: A } = or(a, n), { showLeftIcon: m, showRightIcon: z } = ga(), L = Z(!1), le = Z(!1), U = Z(!1), $ = Z([null, null, null, null]);\n Ue(() => {\n n(\"mount\");\n });\n const ee = (u) => ({\n get: () => a[u],\n set: (re) => {\n const G = u === ot.month ? ot.year : ot.month;\n n(\"update-month-year\", { [u]: re, [G]: a[G] }), u === ot.month ? y(!0) : V(!0);\n }\n }), O = j(ee(ot.month)), J = j(ee(ot.year)), ce = j(() => (u) => ({\n month: a.month,\n year: a.year,\n items: u === ot.month ? a.months : a.years,\n instance: a.instance,\n updateMonthYear: A,\n toggle: u === ot.month ? y : V\n })), pe = j(() => {\n const u = a.months.find((re) => re.value === a.month);\n return u || { text: \"\", value: 0 };\n }), p = j(() => Ht(a.months, (u) => {\n const re = a.month === u.value, G = Zt(\n u.value,\n _n(a.year, R.value.minDate),\n Yn(a.year, R.value.maxDate)\n ) || d.value.months.includes(u.value), I = Fn(v.value, u.value, a.year);\n return { active: re, disabled: G, highlighted: I };\n })), Y = j(() => Ht(a.years, (u) => {\n const re = a.year === u.value, G = Zt(\n u.value,\n Wt(R.value.minDate),\n Wt(R.value.maxDate)\n ) || d.value.years.includes(u.value), I = xa(v.value, u.value);\n return { active: re, disabled: G, highlighted: I };\n })), te = (u, re, G) => {\n G !== void 0 ? u.value = G : u.value = !u.value, u.value ? (U.value = !0, n(\"overlay-opened\", re)) : (U.value = !1, n(\"overlay-closed\", re));\n }, y = (u = !1, re) => {\n S(u), te(L, je.month, re);\n }, V = (u = !1, re) => {\n S(u), te(le, je.year, re);\n }, S = (u) => {\n u || n(\"reset-flow\");\n }, q = (u, re) => {\n a.arrowNavigation && ($.value[re] = Le(u), _($.value, \"monthYear\"));\n }, k = j(() => [\n {\n type: ot.month,\n index: 1,\n toggle: y,\n modelValue: O.value,\n updateModelValue: (u) => O.value = u,\n text: pe.value.text,\n showSelectionGrid: L.value,\n items: p.value,\n ariaLabel: i.value?.openMonthsOverlay,\n overlayLabel: i.value.monthPicker?.(!0) ?? void 0\n },\n {\n type: ot.year,\n index: 2,\n toggle: V,\n modelValue: J.value,\n updateModelValue: (u) => J.value = u,\n text: Ja(a.year, a.locale),\n showSelectionGrid: le.value,\n items: Y.value,\n ariaLabel: i.value?.openYearsOverlay,\n overlayLabel: i.value.yearPicker?.(!0) ?? void 0\n }\n ]), se = j(() => a.disableYearSelect ? [k.value[0]] : a.yearFirst ? [...k.value].reverse() : k.value);\n return t({\n toggleMonthPicker: y,\n toggleYearPicker: V,\n handleMonthYearChange: C\n }), (u, re) => (w(), W(\"div\", Ir, [\n u.$slots[\"month-year\"] ? (w(), W(\"div\", Er, [\n ie(u.$slots, \"month-year\", ze(Je({\n month: e.month,\n year: e.year,\n months: e.months,\n years: e.years,\n updateMonthYear: s(A),\n handleMonthYearChange: s(C),\n instance: e.instance,\n isDisabled: s(M)\n })))\n ])) : (w(), W(ke, { key: 1 }, [\n u.$slots[\"top-extra\"] ? (w(), W(\"div\", Nr, [\n ie(u.$slots, \"top-extra\", { value: u.internalModelValue })\n ])) : Q(\"\", !0),\n he(\"div\", Lr, [\n s(m)(s(g), e.instance) && !u.vertical ? (w(), Te(Qt, {\n key: 0,\n \"aria-label\": s(i)?.prevMonth,\n disabled: s(M)(!1),\n class: De(s(h)?.navBtnPrev),\n \"el-name\": \"action-prev\",\n onActivate: re[0] || (re[0] = (G) => s(C)(!1, !0)),\n onSetRef: re[1] || (re[1] = (G) => q(G, 0))\n }, {\n default: we(() => [\n u.$slots[\"arrow-left\"] ? ie(u.$slots, \"arrow-left\", { key: 0 }) : Q(\"\", !0),\n u.$slots[\"arrow-left\"] ? Q(\"\", !0) : (w(), Te(s(Ua), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Q(\"\", !0),\n he(\"div\", {\n class: De([\"dp__month_year_wrap\", {\n dp__year_disable_select: u.disableYearSelect\n }])\n }, [\n (w(!0), W(ke, null, Ce(se.value, (G, I) => (w(), W(ke, {\n key: G.type\n }, [\n he(\"button\", {\n ref_for: !0,\n ref: (x) => q(x, I + 1),\n type: \"button\",\n \"data-dp-element\": `overlay-${G.type}`,\n class: De([\"dp__btn dp__month_year_select\", { \"dp--hidden-el\": U.value }]),\n \"aria-label\": `${G.text}-${G.ariaLabel}`,\n \"data-test-id\": `${G.type}-toggle-overlay-${e.instance}`,\n onClick: G.toggle,\n onKeydown: (x) => s(qe)(x, () => G.toggle(), !0)\n }, [\n u.$slots[G.type] ? ie(u.$slots, G.type, {\n key: 0,\n text: G.text,\n value: a[G.type]\n }) : Q(\"\", !0),\n u.$slots[G.type] ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(G.text), 1)\n ], 64))\n ], 42, Fr),\n tt(Vt, {\n name: s(T)(G.showSelectionGrid),\n css: s(F)\n }, {\n default: we(() => [\n G.showSelectionGrid ? (w(), Te(ta, {\n key: 0,\n items: G.items,\n \"arrow-navigation\": u.arrowNavigation,\n \"hide-navigation\": u.hideNavigation,\n \"is-last\": u.autoApply && !s(P).keepActionRow,\n \"skip-button-ref\": !1,\n config: u.config,\n type: G.type,\n \"header-refs\": [],\n \"esc-close\": u.escClose,\n \"menu-wrap-ref\": u.menuWrapRef,\n \"text-input\": u.textInput,\n \"aria-labels\": u.ariaLabels,\n \"overlay-label\": G.overlayLabel,\n onSelected: G.updateModelValue,\n onToggle: G.toggle\n }, Ge({\n \"button-icon\": we(() => [\n u.$slots[\"calendar-icon\"] ? ie(u.$slots, \"calendar-icon\", { key: 0 }) : Q(\"\", !0),\n u.$slots[\"calendar-icon\"] ? Q(\"\", !0) : (w(), Te(s(jt), { key: 1 }))\n ]),\n _: 2\n }, [\n u.$slots[`${G.type}-overlay-value`] ? {\n name: \"item\",\n fn: we(({ item: x }) => [\n ie(u.$slots, `${G.type}-overlay-value`, {\n text: x.text,\n value: x.value\n })\n ]),\n key: \"0\"\n } : void 0,\n u.$slots[`${G.type}-overlay`] ? {\n name: \"overlay\",\n fn: we(() => [\n ie(u.$slots, `${G.type}-overlay`, He({ ref_for: !0 }, ce.value(G.type)))\n ]),\n key: \"1\"\n } : void 0,\n u.$slots[`${G.type}-overlay-header`] ? {\n name: \"header\",\n fn: we(() => [\n ie(u.$slots, `${G.type}-overlay-header`, {\n toggle: G.toggle\n })\n ]),\n key: \"2\"\n } : void 0\n ]), 1032, [\"items\", \"arrow-navigation\", \"hide-navigation\", \"is-last\", \"config\", \"type\", \"esc-close\", \"menu-wrap-ref\", \"text-input\", \"aria-labels\", \"overlay-label\", \"onSelected\", \"onToggle\"])) : Q(\"\", !0)\n ]),\n _: 2\n }, 1032, [\"name\", \"css\"])\n ], 64))), 128))\n ], 2),\n s(m)(s(g), e.instance) && u.vertical ? (w(), Te(Qt, {\n key: 1,\n \"aria-label\": s(i)?.prevMonth,\n \"el-name\": \"action-prev\",\n disabled: s(M)(!1),\n class: De(s(h)?.navBtnPrev),\n onActivate: re[2] || (re[2] = (G) => s(C)(!1, !0))\n }, {\n default: we(() => [\n u.$slots[\"arrow-up\"] ? ie(u.$slots, \"arrow-up\", { key: 0 }) : Q(\"\", !0),\n u.$slots[\"arrow-up\"] ? Q(\"\", !0) : (w(), Te(s(Ka), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Q(\"\", !0),\n s(z)(s(g), e.instance) ? (w(), Te(Qt, {\n key: 2,\n ref: \"rightIcon\",\n \"el-name\": \"action-next\",\n disabled: s(M)(!0),\n \"aria-label\": s(i)?.nextMonth,\n class: De(s(h)?.navBtnNext),\n onActivate: re[3] || (re[3] = (G) => s(C)(!0, !0)),\n onSetRef: re[4] || (re[4] = (G) => q(G, u.disableYearSelect ? 2 : 3))\n }, {\n default: we(() => [\n u.$slots[u.vertical ? \"arrow-down\" : \"arrow-right\"] ? ie(u.$slots, u.vertical ? \"arrow-down\" : \"arrow-right\", { key: 0 }) : Q(\"\", !0),\n u.$slots[u.vertical ? \"arrow-down\" : \"arrow-right\"] ? Q(\"\", !0) : (w(), Te(fa(u.vertical ? s(Ga) : s(Va)), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"disabled\", \"aria-label\", \"class\"])) : Q(\"\", !0)\n ])\n ], 64))\n ]));\n }\n}), Hr = {\n class: \"dp__calendar_header\",\n role: \"row\"\n}, Wr = {\n key: 0,\n class: \"dp__calendar_header_item\",\n role: \"gridcell\"\n}, Ur = [\"aria-label\"], Vr = {\n key: 0,\n class: \"dp__calendar_item dp__week_num\",\n role: \"gridcell\"\n}, jr = { class: \"dp__cell_inner\" }, Kr = [\"id\", \"aria-selected\", \"aria-disabled\", \"aria-label\", \"tabindex\", \"data-test-id\", \"onClick\", \"onTouchend\", \"onKeydown\", \"onMouseenter\", \"onMouseleave\", \"onMousedown\"], Gr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"DpCalendar\",\n props: {\n mappedDates: { type: Array, default: () => [] },\n instance: { type: Number, default: 0 },\n month: { type: Number, default: 0 },\n year: { type: Number, default: 0 },\n ...dt\n },\n emits: [\n \"select-date\",\n \"set-hover-date\",\n \"handle-scroll\",\n \"mount\",\n \"handle-swipe\",\n \"handle-space\",\n \"tooltip-open\",\n \"tooltip-close\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, { buildMultiLevelMatrix: f } = At(), {\n defaultedTransitions: i,\n defaultedConfig: g,\n defaultedAriaLabels: d,\n defaultedMultiCalendars: P,\n defaultedWeekNumbers: v,\n defaultedMultiDates: R,\n defaultedUI: h\n } = Oe(a), T = Z(null), F = Z({\n bottom: \"\",\n left: \"\",\n transform: \"\"\n }), _ = Z([]), C = Z(null), M = Z(!0), A = Z(\"\"), m = Z({ startX: 0, endX: 0, startY: 0, endY: 0 }), z = Z([]), L = Z({ left: \"50%\" }), le = Z(!1), U = j(() => a.calendar ? a.calendar(a.mappedDates) : a.mappedDates), $ = j(() => a.dayNames ? Array.isArray(a.dayNames) ? a.dayNames : a.dayNames(a.locale, +a.weekStart) : Tl(a.formatLocale, a.locale, +a.weekStart));\n Ue(() => {\n n(\"mount\", { cmp: \"calendar\", refs: _ }), g.value.noSwipe || C.value && (C.value.addEventListener(\"touchstart\", q, { passive: !1 }), C.value.addEventListener(\"touchend\", k, { passive: !1 }), C.value.addEventListener(\"touchmove\", se, { passive: !1 })), a.monthChangeOnScroll && C.value && C.value.addEventListener(\"wheel\", G, { passive: !1 });\n }), Ut(() => {\n g.value.noSwipe || C.value && (C.value.removeEventListener(\"touchstart\", q), C.value.removeEventListener(\"touchend\", k), C.value.removeEventListener(\"touchmove\", se)), a.monthChangeOnScroll && C.value && C.value.removeEventListener(\"wheel\", G);\n });\n const ee = (B) => B ? a.vertical ? \"vNext\" : \"next\" : a.vertical ? \"vPrevious\" : \"previous\", O = (B, be) => {\n if (a.transitions) {\n const Ae = Fe(pt(H(), a.month, a.year));\n A.value = Ee(Fe(pt(H(), B, be)), Ae) ? i.value[ee(!0)] : i.value[ee(!1)], M.value = !1, at(() => {\n M.value = !0;\n });\n }\n }, J = j(\n () => ({\n ...h.value.calendar ?? {}\n })\n ), ce = j(() => (B) => {\n const be = Pl(B);\n return {\n dp__marker_dot: be.type === \"dot\",\n dp__marker_line: be.type === \"line\"\n };\n }), pe = j(() => (B) => $e(B, T.value)), p = j(() => ({\n dp__calendar: !0,\n dp__calendar_next: P.value.count > 0 && a.instance !== 0\n })), Y = j(() => (B) => a.hideOffsetDates ? B.current : !0), te = async (B, be) => {\n const { width: Ae, height: ne } = B.getBoundingClientRect();\n T.value = be.value;\n let r = { left: `${Ae / 2}px` }, E = -50;\n if (await at(), z.value[0]) {\n const { left: K, width: oe } = z.value[0].getBoundingClientRect();\n K < 0 && (r = { left: \"0\" }, E = 0, L.value.left = `${Ae / 2}px`), window.innerWidth < K + oe && (r = { right: \"0\" }, E = 0, L.value.left = `${oe - Ae / 2}px`);\n }\n F.value = {\n bottom: `${ne}px`,\n ...r,\n transform: `translateX(${E}%)`\n };\n }, y = async (B, be, Ae) => {\n const ne = Le(_.value[be][Ae]);\n ne && (B.marker?.customPosition && B.marker?.tooltip?.length ? F.value = B.marker.customPosition(ne) : await te(ne, B), n(\"tooltip-open\", B.marker));\n }, V = async (B, be, Ae) => {\n if (le.value && R.value.enabled && R.value.dragSelect)\n return n(\"select-date\", B);\n if (n(\"set-hover-date\", B), B.marker?.tooltip?.length) {\n if (a.hideOffsetDates && !B.current) return;\n await y(B, be, Ae);\n }\n }, S = (B) => {\n T.value && (T.value = null, F.value = JSON.parse(JSON.stringify({ bottom: \"\", left: \"\", transform: \"\" })), n(\"tooltip-close\", B.marker));\n }, q = (B) => {\n m.value.startX = B.changedTouches[0].screenX, m.value.startY = B.changedTouches[0].screenY;\n }, k = (B) => {\n m.value.endX = B.changedTouches[0].screenX, m.value.endY = B.changedTouches[0].screenY, u();\n }, se = (B) => {\n a.vertical && !a.inline && B.preventDefault();\n }, u = () => {\n const B = a.vertical ? \"Y\" : \"X\";\n Math.abs(m.value[`start${B}`] - m.value[`end${B}`]) > 10 && n(\"handle-swipe\", m.value[`start${B}`] > m.value[`end${B}`] ? \"right\" : \"left\");\n }, re = (B, be, Ae) => {\n B && (Array.isArray(_.value[be]) ? _.value[be][Ae] = B : _.value[be] = [B]), a.arrowNavigation && f(_.value, \"calendar\");\n }, G = (B) => {\n a.monthChangeOnScroll && (B.preventDefault(), n(\"handle-scroll\", B));\n }, I = (B) => v.value.type === \"local\" ? pl(B.value, { weekStartsOn: +a.weekStart }) : v.value.type === \"iso\" ? gl(B.value) : typeof v.value.type == \"function\" ? v.value.type(B.value) : \"\", x = (B) => {\n const be = B[0];\n return v.value.hideOnOffsetDates ? B.some((Ae) => Ae.current) ? I(be) : \"\" : I(be);\n }, c = (B, be, Ae = !0) => {\n !Ae && _l() || (!R.value.enabled || g.value.allowPreventDefault) && (Dt(B, g.value), n(\"select-date\", be));\n }, o = (B) => {\n Dt(B, g.value);\n }, X = (B) => {\n R.value.enabled && R.value.dragSelect ? (le.value = !0, n(\"select-date\", B)) : R.value.enabled && n(\"select-date\", B);\n };\n return t({ triggerTransition: O }), (B, be) => (w(), W(\"div\", {\n class: De(p.value)\n }, [\n he(\"div\", {\n ref_key: \"calendarWrapRef\",\n ref: C,\n class: De(J.value),\n role: \"grid\"\n }, [\n he(\"div\", Hr, [\n B.weekNumbers ? (w(), W(\"div\", Wr, Ke(B.weekNumName), 1)) : Q(\"\", !0),\n (w(!0), W(ke, null, Ce($.value, (Ae, ne) => (w(), W(\"div\", {\n key: ne,\n class: \"dp__calendar_header_item\",\n role: \"gridcell\",\n \"data-test-id\": \"calendar-header\",\n \"aria-label\": s(d)?.weekDay?.(ne)\n }, [\n B.$slots[\"calendar-header\"] ? ie(B.$slots, \"calendar-header\", {\n key: 0,\n day: Ae,\n index: ne\n }) : Q(\"\", !0),\n B.$slots[\"calendar-header\"] ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(Ae), 1)\n ], 64))\n ], 8, Ur))), 128))\n ]),\n be[2] || (be[2] = he(\"div\", { class: \"dp__calendar_header_separator\" }, null, -1)),\n tt(Vt, {\n name: A.value,\n css: !!B.transitions\n }, {\n default: we(() => [\n M.value ? (w(), W(\"div\", {\n key: 0,\n class: \"dp__calendar\",\n role: \"rowgroup\",\n onMouseleave: be[1] || (be[1] = (Ae) => le.value = !1)\n }, [\n (w(!0), W(ke, null, Ce(U.value, (Ae, ne) => (w(), W(\"div\", {\n key: ne,\n class: \"dp__calendar_row\",\n role: \"row\"\n }, [\n B.weekNumbers ? (w(), W(\"div\", Vr, [\n he(\"div\", jr, Ke(x(Ae.days)), 1)\n ])) : Q(\"\", !0),\n (w(!0), W(ke, null, Ce(Ae.days, (r, E) => (w(), W(\"div\", {\n id: s(Ha)(r.value),\n ref_for: !0,\n ref: (K) => re(K, ne, E),\n key: E + ne,\n role: \"gridcell\",\n class: \"dp__calendar_item\",\n \"aria-selected\": (r.classData.dp__active_date || r.classData.dp__range_start || r.classData.dp__range_end) ?? void 0,\n \"aria-disabled\": r.classData.dp__cell_disabled || void 0,\n \"aria-label\": s(d)?.day?.(r),\n tabindex: !r.current && B.hideOffsetDates ? void 0 : 0,\n \"data-test-id\": s(Ha)(r.value),\n onClick: Xt((K) => c(K, r), [\"prevent\"]),\n onTouchend: (K) => c(K, r, !1),\n onKeydown: (K) => s(qe)(K, () => B.$emit(\"select-date\", r)),\n onMouseenter: (K) => V(r, ne, E),\n onMouseleave: (K) => S(r),\n onMousedown: (K) => X(r),\n onMouseup: be[0] || (be[0] = (K) => le.value = !1)\n }, [\n he(\"div\", {\n class: De([\"dp__cell_inner\", r.classData])\n }, [\n B.$slots.day && Y.value(r) ? ie(B.$slots, \"day\", {\n key: 0,\n day: +r.text,\n date: r.value\n }) : Q(\"\", !0),\n B.$slots.day ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(r.text), 1)\n ], 64)),\n r.marker && Y.value(r) ? (w(), W(ke, { key: 2 }, [\n B.$slots.marker ? ie(B.$slots, \"marker\", {\n key: 0,\n marker: r.marker,\n day: +r.text,\n date: r.value\n }) : (w(), W(\"div\", {\n key: 1,\n class: De(ce.value(r.marker)),\n style: lt(r.marker.color ? { backgroundColor: r.marker.color } : {})\n }, null, 6))\n ], 64)) : Q(\"\", !0),\n pe.value(r.value) ? (w(), W(\"div\", {\n key: 3,\n ref_for: !0,\n ref_key: \"activeTooltip\",\n ref: z,\n class: \"dp__marker_tooltip\",\n style: lt(F.value)\n }, [\n r.marker?.tooltip ? (w(), W(\"div\", {\n key: 0,\n class: \"dp__tooltip_content\",\n onClick: o\n }, [\n (w(!0), W(ke, null, Ce(r.marker.tooltip, (K, oe) => (w(), W(\"div\", {\n key: oe,\n class: \"dp__tooltip_text\"\n }, [\n B.$slots[\"marker-tooltip\"] ? ie(B.$slots, \"marker-tooltip\", {\n key: 0,\n tooltip: K,\n day: r.value\n }) : Q(\"\", !0),\n B.$slots[\"marker-tooltip\"] ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n he(\"div\", {\n class: \"dp__tooltip_mark\",\n style: lt(K.color ? { backgroundColor: K.color } : {})\n }, null, 4),\n he(\"div\", null, Ke(K.text), 1)\n ], 64))\n ]))), 128)),\n he(\"div\", {\n class: \"dp__arrow_bottom_tp\",\n style: lt(L.value)\n }, null, 4)\n ])) : Q(\"\", !0)\n ], 4)) : Q(\"\", !0)\n ], 2)\n ], 40, Kr))), 128))\n ]))), 128))\n ], 32)) : Q(\"\", !0)\n ]),\n _: 3\n }, 8, [\"name\", \"css\"])\n ], 2)\n ], 2));\n }\n}), yn = (e) => Array.isArray(e), Qr = (e, t, l, n) => {\n const a = Z([]), f = Z(/* @__PURE__ */ new Date()), i = Z(), g = () => k(e.isTextInputDate), { modelValue: d, calendars: P, time: v, today: R } = na(e, t, g), {\n defaultedMultiCalendars: h,\n defaultedStartTime: T,\n defaultedRange: F,\n defaultedConfig: _,\n defaultedTz: C,\n propDates: M,\n defaultedMultiDates: A\n } = Oe(e), { validateMonthYearInRange: m, isDisabled: z, isDateRangeAllowed: L, checkMinMaxRange: le } = Tt(e), { updateTimeValues: U, getSetDateTime: $, setTime: ee, assignStartTime: O, validateTime: J, disabledTimesConfig: ce } = Gn(e, v, d, n), pe = j(\n () => (b) => P.value[b] ? P.value[b].month : 0\n ), p = j(\n () => (b) => P.value[b] ? P.value[b].year : 0\n ), Y = (b) => !_.value.keepViewOnOffsetClick || b ? !0 : !i.value, te = (b, ae, ve, N = !1) => {\n Y(N) && (P.value[b] || (P.value[b] = { month: 0, year: 0 }), P.value[b].month = cn(ae) ? P.value[b]?.month : ae, P.value[b].year = cn(ve) ? P.value[b]?.year : ve);\n }, y = () => {\n e.autoApply && t(\"select-date\");\n }, V = () => {\n T.value && O(T.value);\n };\n Ue(() => {\n e.shadow || (d.value || (be(), V()), k(!0), e.focusStartDate && e.startDate && be());\n });\n const S = j(() => e.flow?.length && !e.partialFlow ? e.flowStep === e.flow.length : !0), q = () => {\n e.autoApply && S.value && t(\"auto-apply\", e.partialFlow ? e.flowStep !== e.flow.length : !1);\n }, k = (b = !1) => {\n if (d.value)\n return Array.isArray(d.value) ? (a.value = d.value, c(b)) : re(d.value, b);\n if (h.value.count && b && !e.startDate)\n return u(H(), b);\n }, se = () => Array.isArray(d.value) && F.value.enabled ? Me(d.value[0]) === Me(d.value[1] ?? d.value[0]) : !1, u = (b = /* @__PURE__ */ new Date(), ae = !1) => {\n if ((!h.value.count || !h.value.static || ae) && te(0, Me(b), ye(b)), h.value.count && (!d.value || se() || !h.value.solo) && (!h.value.solo || ae))\n for (let ve = 1; ve < h.value.count; ve++) {\n const N = Se(H(), { month: pe.value(ve - 1), year: p.value(ve - 1) }), ue = Tn(N, { months: 1 });\n P.value[ve] = { month: Me(ue), year: ye(ue) };\n }\n }, re = (b, ae) => {\n u(b), ee(\"hours\", yt(b)), ee(\"minutes\", $t(b)), ee(\"seconds\", zt(b)), h.value.count && ae && B();\n }, G = (b) => {\n if (h.value.count) {\n if (h.value.solo) return 0;\n const ae = Me(b[0]), ve = Me(b[1]);\n return Math.abs(ve - ae) < h.value.count ? 0 : 1;\n }\n return 1;\n }, I = (b, ae) => {\n b[1] && F.value.showLastInRange ? u(b[G(b)], ae) : u(b[0], ae);\n const ve = (N, ue) => [\n N(b[0]),\n b[1] ? N(b[1]) : v[ue][1]\n ];\n ee(\"hours\", ve(yt, \"hours\")), ee(\"minutes\", ve($t, \"minutes\")), ee(\"seconds\", ve(zt, \"seconds\"));\n }, x = (b, ae) => {\n if ((F.value.enabled || e.weekPicker) && !A.value.enabled)\n return I(b, ae);\n if (A.value.enabled && ae) {\n const ve = b[b.length - 1];\n return re(ve, ae);\n }\n }, c = (b) => {\n const ae = d.value;\n x(ae, b), h.value.count && h.value.solo && B();\n }, o = (b, ae) => {\n const ve = Se(H(), { month: pe.value(ae), year: p.value(ae) }), N = b < 0 ? Ct(ve, 1) : Jt(ve, 1);\n m(Me(N), ye(N), b < 0, e.preventMinMaxNavigation) && (te(ae, Me(N), ye(N)), t(\"update-month-year\", { instance: ae, month: Me(N), year: ye(N) }), h.value.count && !h.value.solo && X(ae), l());\n }, X = (b) => {\n for (let ae = b - 1; ae >= 0; ae--) {\n const ve = Jt(Se(H(), { month: pe.value(ae + 1), year: p.value(ae + 1) }), 1);\n te(ae, Me(ve), ye(ve));\n }\n for (let ae = b + 1; ae <= h.value.count - 1; ae++) {\n const ve = Ct(Se(H(), { month: pe.value(ae - 1), year: p.value(ae - 1) }), 1);\n te(ae, Me(ve), ye(ve));\n }\n }, B = () => {\n if (Array.isArray(d.value) && d.value.length === 2) {\n const b = H(\n H(d.value[1] ? d.value[1] : Ct(d.value[0], 1))\n ), [ae, ve] = [Me(d.value[0]), ye(d.value[0])], [N, ue] = [Me(d.value[1]), ye(d.value[1])];\n (ae !== N || ae === N && ve !== ue) && h.value.solo && te(1, Me(b), ye(b));\n } else d.value && !Array.isArray(d.value) && (te(0, Me(d.value), ye(d.value)), u(H()));\n }, be = () => {\n e.startDate && (te(0, Me(H(e.startDate)), ye(H(e.startDate))), h.value.count && X(0));\n }, Ae = (b, ae) => {\n if (e.monthChangeOnScroll) {\n const ve = (/* @__PURE__ */ new Date()).getTime() - f.value.getTime(), N = Math.abs(b.deltaY);\n let ue = 500;\n N > 1 && (ue = 100), N > 100 && (ue = 0), ve > ue && (f.value = /* @__PURE__ */ new Date(), o(e.monthChangeOnScroll !== \"inverse\" ? -b.deltaY : b.deltaY, ae));\n }\n }, ne = (b, ae, ve = !1) => {\n e.monthChangeOnArrows && e.vertical === ve && r(b, ae);\n }, r = (b, ae) => {\n o(b === \"right\" ? -1 : 1, ae);\n }, E = (b) => {\n if (M.value.markers)\n return ca(b.value, M.value.markers);\n }, K = (b, ae) => {\n switch (e.sixWeeks === !0 ? \"append\" : e.sixWeeks) {\n case \"prepend\":\n return [!0, !1];\n case \"center\":\n return [b == 0, !0];\n case \"fair\":\n return [b == 0 || ae > b, !0];\n case \"append\":\n return [!1, !1];\n default:\n return [!1, !1];\n }\n }, oe = (b, ae, ve, N) => {\n if (e.sixWeeks && b.length < 6) {\n const ue = 6 - b.length, me = (ae.getDay() + 7 - N) % 7, ct = 6 - (ve.getDay() + 7 - N) % 7, [Pt, $a] = K(me, ct);\n for (let Rt = 1; Rt <= ue; Rt++)\n if ($a ? !!(Rt % 2) == Pt : Pt) {\n const ra = b[0].days[0], Aa = ge(kt(ra.value, -7), Me(ae));\n b.unshift({ days: Aa });\n } else {\n const ra = b[b.length - 1], Aa = ra.days[ra.days.length - 1], Xn = ge(kt(Aa.value, 1), Me(ae));\n b.push({ days: Xn });\n }\n }\n return b;\n }, ge = (b, ae) => {\n const ve = H(b), N = [];\n for (let ue = 0; ue < 7; ue++) {\n const me = kt(ve, ue), vt = Me(me) !== ae;\n N.push({\n text: e.hideOffsetDates && vt ? \"\" : me.getDate(),\n value: me,\n current: !vt,\n classData: {}\n });\n }\n return N;\n }, _e = (b, ae) => {\n const ve = [], N = new Date(ae, b), ue = new Date(ae, b + 1, 0), me = e.weekStart, vt = Wa(N, { weekStartsOn: me }), ct = (Pt) => {\n const $a = ge(Pt, b);\n if (ve.push({ days: $a }), !ve[ve.length - 1].days.some(\n (Rt) => $e(Fe(Rt.value), Fe(ue))\n )) {\n const Rt = kt(Pt, 7);\n ct(Rt);\n }\n };\n return ct(vt), oe(ve, N, ue, me);\n }, Ye = (b) => {\n const ae = Mt(H(b.value), v.hours, v.minutes, xe());\n t(\"date-update\", ae), A.value.enabled ? en(ae, d, A.value.limit) : d.value = ae, n(), at().then(() => {\n q();\n });\n }, nt = (b) => F.value.noDisabledRange ? In(a.value[0], b).some((ve) => z(ve)) : !1, St = () => {\n a.value = d.value ? d.value.slice() : [], a.value.length === 2 && !(F.value.fixedStart || F.value.fixedEnd) && (a.value = []);\n }, D = (b, ae) => {\n const ve = [\n H(b.value),\n kt(H(b.value), +F.value.autoRange)\n ];\n L(ve) ? (ae && de(b.value), a.value = ve) : t(\"invalid-date\", b.value);\n }, de = (b) => {\n const ae = Me(H(b)), ve = ye(H(b));\n if (te(0, ae, ve), h.value.count > 0)\n for (let N = 1; N < h.value.count; N++) {\n const ue = El(\n Se(H(b), { year: p.value(N - 1), month: pe.value(N - 1) })\n );\n te(N, ue.month, ue.year);\n }\n }, fe = (b) => {\n if (nt(b.value) || !le(b.value, d.value, F.value.fixedStart ? 0 : 1))\n return t(\"invalid-date\", b.value);\n a.value = Vn(H(b.value), d, t, F);\n }, ht = (b, ae) => {\n if (St(), F.value.autoRange) return D(b, ae);\n if (F.value.fixedStart || F.value.fixedEnd) return fe(b);\n a.value[0] ? le(H(b.value), d.value) && !nt(b.value) ? Be(H(b.value), H(a.value[0])) ? (a.value.unshift(H(b.value)), t(\"range-end\", a.value[0])) : (a.value[1] = H(b.value), t(\"range-end\", a.value[1])) : (e.autoApply && t(\"auto-apply-invalid\", b.value), t(\"invalid-date\", b.value)) : (a.value[0] = H(b.value), t(\"range-start\", a.value[0]));\n }, xe = (b = !0) => e.enableSeconds ? Array.isArray(v.seconds) ? b ? v.seconds[0] : v.seconds[1] : v.seconds : 0, Xe = (b) => {\n a.value[b] = Mt(\n a.value[b],\n v.hours[b],\n v.minutes[b],\n xe(b !== 1)\n );\n }, ya = () => {\n a.value[0] && a.value[1] && +a.value?.[0] > +a.value?.[1] && (a.value.reverse(), t(\"range-start\", a.value[0]), t(\"range-end\", a.value[1]));\n }, ha = () => {\n a.value.length && (a.value[0] && !a.value[1] ? Xe(0) : (Xe(0), Xe(1), n()), ya(), d.value = a.value.slice(), pa(a.value, t, e.autoApply, e.modelAuto));\n }, la = (b, ae = !1) => {\n if (z(b.value) || !b.current && e.hideOffsetDates) return t(\"invalid-date\", b.value);\n if (i.value = JSON.parse(JSON.stringify(b)), !F.value.enabled) return Ye(b);\n yn(v.hours) && yn(v.minutes) && !A.value.enabled && (ht(b, ae), ha());\n }, ba = (b, ae) => {\n te(b, ae.month, ae.year, !0), h.value.count && !h.value.solo && X(b), t(\"update-month-year\", { instance: b, month: ae.month, year: ae.year }), l(h.value.solo ? b : void 0);\n const ve = e.flow?.length ? e.flow[e.flowStep] : void 0;\n !ae.fromNav && (ve === je.month || ve === je.year) && n();\n }, ka = (b, ae) => {\n Un({\n value: b,\n modelValue: d,\n range: F.value.enabled,\n timezone: ae ? void 0 : C.value.timezone\n }), y(), e.multiCalendars && at().then(() => k(!0));\n }, wa = () => {\n const b = Qa(H(), C.value);\n !F.value.enabled && !A.value.enabled ? d.value = b : d.value && Array.isArray(d.value) && d.value[0] ? A.value.enabled ? d.value = [...d.value, b] : d.value = Be(b, d.value[0]) ? [b, d.value[0]] : [d.value[0], b] : d.value = [b], y();\n }, Da = () => {\n if (Array.isArray(d.value))\n if (A.value.enabled) {\n const b = Ma();\n d.value[d.value.length - 1] = $(b);\n } else\n d.value = d.value.map((b, ae) => b && $(b, ae));\n else\n d.value = $(d.value);\n t(\"time-update\");\n }, Ma = () => Array.isArray(d.value) && d.value.length ? d.value[d.value.length - 1] : null;\n return {\n calendars: P,\n modelValue: d,\n month: pe,\n year: p,\n time: v,\n disabledTimesConfig: ce,\n today: R,\n validateTime: J,\n getCalendarDays: _e,\n getMarker: E,\n handleScroll: Ae,\n handleSwipe: r,\n handleArrow: ne,\n selectDate: la,\n updateMonthYear: ba,\n presetDate: ka,\n selectCurrentDate: wa,\n updateTime: (b, ae = !0, ve = !1) => {\n U(b, ae, ve, Da);\n },\n assignMonthAndYear: u,\n setStartTime: V\n };\n}, qr = { key: 0 }, Xr = /* @__PURE__ */ We({\n __name: \"DatePicker\",\n props: {\n ...dt\n },\n emits: [\n \"tooltip-open\",\n \"tooltip-close\",\n \"mount\",\n \"update:internal-model-value\",\n \"update-flow-step\",\n \"reset-flow\",\n \"auto-apply\",\n \"focus-menu\",\n \"select-date\",\n \"range-start\",\n \"range-end\",\n \"invalid-fixed-range\",\n \"time-update\",\n \"am-pm-change\",\n \"time-picker-open\",\n \"time-picker-close\",\n \"recalculate-position\",\n \"update-month-year\",\n \"auto-apply-invalid\",\n \"date-update\",\n \"invalid-date\",\n \"overlay-toggle\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, {\n calendars: f,\n month: i,\n year: g,\n modelValue: d,\n time: P,\n disabledTimesConfig: v,\n today: R,\n validateTime: h,\n getCalendarDays: T,\n getMarker: F,\n handleArrow: _,\n handleScroll: C,\n handleSwipe: M,\n selectDate: A,\n updateMonthYear: m,\n presetDate: z,\n selectCurrentDate: L,\n updateTime: le,\n assignMonthAndYear: U,\n setStartTime: $\n } = Qr(a, n, se, u), ee = Yt(), { setHoverDate: O, getDayClassData: J, clearHoverDate: ce } = mo(d, a), { defaultedMultiCalendars: pe } = Oe(a), p = Z([]), Y = Z([]), te = Z(null), y = et(ee, \"calendar\"), V = et(ee, \"monthYear\"), S = et(ee, \"timePicker\"), q = (ne) => {\n a.shadow || n(\"mount\", ne);\n };\n rt(\n f,\n () => {\n a.shadow || setTimeout(() => {\n n(\"recalculate-position\");\n }, 0);\n },\n { deep: !0 }\n ), rt(\n pe,\n (ne, r) => {\n ne.count - r.count > 0 && U();\n },\n { deep: !0 }\n );\n const k = j(() => (ne) => T(i.value(ne), g.value(ne)).map((r) => ({\n ...r,\n days: r.days.map((E) => (E.marker = F(E), E.classData = J(E), E))\n })));\n function se(ne) {\n ne || ne === 0 ? Y.value[ne]?.triggerTransition(i.value(ne), g.value(ne)) : Y.value.forEach((r, E) => r.triggerTransition(i.value(E), g.value(E)));\n }\n function u() {\n n(\"update-flow-step\");\n }\n const re = (ne, r = !1) => {\n A(ne, r), a.spaceConfirm && n(\"select-date\");\n }, G = (ne, r, E = 0) => {\n p.value[E]?.toggleMonthPicker(ne, r);\n }, I = (ne, r, E = 0) => {\n p.value[E]?.toggleYearPicker(ne, r);\n }, x = (ne, r, E) => {\n te.value?.toggleTimePicker(ne, r, E);\n }, c = (ne, r) => {\n if (!a.range) {\n const E = d.value ? d.value : R, K = r ? new Date(r) : E, oe = ne ? Wa(K, { weekStartsOn: 1 }) : kn(K, { weekStartsOn: 1 });\n A({\n value: oe,\n current: Me(K) === i.value(0),\n text: \"\",\n classData: {}\n }), document.getElementById(Ha(oe))?.focus();\n }\n }, o = (ne) => {\n p.value[0]?.handleMonthYearChange(ne, !0);\n }, X = (ne) => {\n m(0, { month: i.value(0), year: g.value(0) + (ne ? 1 : -1), fromNav: !0 });\n }, B = (ne, r) => {\n ne === je.time && n(`time-picker-${r ? \"open\" : \"close\"}`), n(\"overlay-toggle\", { open: r, overlay: ne });\n }, be = (ne) => {\n n(\"overlay-toggle\", { open: !1, overlay: ne }), n(\"focus-menu\");\n };\n return t({\n clearHoverDate: ce,\n presetDate: z,\n selectCurrentDate: L,\n toggleMonthPicker: G,\n toggleYearPicker: I,\n toggleTimePicker: x,\n handleArrow: _,\n updateMonthYear: m,\n getSidebarProps: () => ({\n modelValue: d,\n month: i,\n year: g,\n time: P,\n updateTime: le,\n updateMonthYear: m,\n selectDate: A,\n presetDate: z\n }),\n changeMonth: o,\n changeYear: X,\n selectWeekDate: c,\n setStartTime: $\n }), (ne, r) => (w(), W(ke, null, [\n tt(ma, {\n \"multi-calendars\": s(pe).count,\n collapse: ne.collapse,\n \"is-mobile\": ne.isMobile\n }, {\n default: we(({ instance: E, index: K }) => [\n ne.disableMonthYearSelect ? Q(\"\", !0) : (w(), Te(zr, He({\n key: 0,\n ref: (oe) => {\n oe && (p.value[K] = oe);\n },\n months: s(Pn)(ne.formatLocale, ne.locale, ne.monthNameFormat),\n years: s(qa)(ne.yearRange, ne.locale, ne.reverseYears),\n month: s(i)(E),\n year: s(g)(E),\n instance: E\n }, ne.$props, {\n onMount: r[0] || (r[0] = (oe) => q(s(Ot).header)),\n onResetFlow: r[1] || (r[1] = (oe) => ne.$emit(\"reset-flow\")),\n onUpdateMonthYear: (oe) => s(m)(E, oe),\n onOverlayClosed: be,\n onOverlayOpened: r[2] || (r[2] = (oe) => ne.$emit(\"overlay-toggle\", { open: !0, overlay: oe }))\n }), Ge({ _: 2 }, [\n Ce(s(V), (oe, ge) => ({\n name: oe,\n fn: we((_e) => [\n ie(ne.$slots, oe, ze(Je(_e)))\n ])\n }))\n ]), 1040, [\"months\", \"years\", \"month\", \"year\", \"instance\", \"onUpdateMonthYear\"])),\n tt(Gr, He({\n ref: (oe) => {\n oe && (Y.value[K] = oe);\n },\n \"mapped-dates\": k.value(E),\n month: s(i)(E),\n year: s(g)(E),\n instance: E\n }, ne.$props, {\n onSelectDate: (oe) => s(A)(oe, E !== 1),\n onHandleSpace: (oe) => re(oe, E !== 1),\n onSetHoverDate: r[3] || (r[3] = (oe) => s(O)(oe)),\n onHandleScroll: (oe) => s(C)(oe, E),\n onHandleSwipe: (oe) => s(M)(oe, E),\n onMount: r[4] || (r[4] = (oe) => q(s(Ot).calendar)),\n onResetFlow: r[5] || (r[5] = (oe) => ne.$emit(\"reset-flow\")),\n onTooltipOpen: r[6] || (r[6] = (oe) => ne.$emit(\"tooltip-open\", oe)),\n onTooltipClose: r[7] || (r[7] = (oe) => ne.$emit(\"tooltip-close\", oe))\n }), Ge({ _: 2 }, [\n Ce(s(y), (oe, ge) => ({\n name: oe,\n fn: we((_e) => [\n ie(ne.$slots, oe, ze(Je({ ..._e })))\n ])\n }))\n ]), 1040, [\"mapped-dates\", \"month\", \"year\", \"instance\", \"onSelectDate\", \"onHandleSpace\", \"onHandleScroll\", \"onHandleSwipe\"])\n ]),\n _: 3\n }, 8, [\"multi-calendars\", \"collapse\", \"is-mobile\"]),\n ne.enableTimePicker ? (w(), W(\"div\", qr, [\n ne.$slots[\"time-picker\"] ? ie(ne.$slots, \"time-picker\", ze(He({ key: 0 }, { time: s(P), updateTime: s(le) }))) : (w(), Te(Kn, He({\n key: 1,\n ref_key: \"timePickerRef\",\n ref: te\n }, ne.$props, {\n hours: s(P).hours,\n minutes: s(P).minutes,\n seconds: s(P).seconds,\n \"internal-model-value\": ne.internalModelValue,\n \"disabled-times-config\": s(v),\n \"validate-time\": s(h),\n onMount: r[8] || (r[8] = (E) => q(s(Ot).timePicker)),\n \"onUpdate:hours\": r[9] || (r[9] = (E) => s(le)(E)),\n \"onUpdate:minutes\": r[10] || (r[10] = (E) => s(le)(E, !1)),\n \"onUpdate:seconds\": r[11] || (r[11] = (E) => s(le)(E, !1, !0)),\n onResetFlow: r[12] || (r[12] = (E) => ne.$emit(\"reset-flow\")),\n onOverlayClosed: r[13] || (r[13] = (E) => B(E, !1)),\n onOverlayOpened: r[14] || (r[14] = (E) => B(E, !0)),\n onAmPmChange: r[15] || (r[15] = (E) => ne.$emit(\"am-pm-change\", E))\n }), Ge({ _: 2 }, [\n Ce(s(S), (E, K) => ({\n name: E,\n fn: we((oe) => [\n ie(ne.$slots, E, ze(Je(oe)))\n ])\n }))\n ]), 1040, [\"hours\", \"minutes\", \"seconds\", \"internal-model-value\", \"disabled-times-config\", \"validate-time\"]))\n ])) : Q(\"\", !0)\n ], 64));\n }\n}), Jr = (e, t) => {\n const l = Z(), {\n defaultedMultiCalendars: n,\n defaultedConfig: a,\n defaultedHighlight: f,\n defaultedRange: i,\n propDates: g,\n defaultedFilters: d,\n defaultedMultiDates: P\n } = Oe(e), { modelValue: v, year: R, month: h, calendars: T } = na(e, t), { isDisabled: F } = Tt(e), { selectYear: _, groupedYears: C, showYearPicker: M, isDisabled: A, toggleYearPicker: m, handleYearSelect: z, handleYear: L } = jn({\n modelValue: v,\n multiCalendars: n,\n range: i,\n highlight: f,\n calendars: T,\n propDates: g,\n month: h,\n year: R,\n filters: d,\n props: e,\n emit: t\n }), le = (y, V) => [y, V].map((S) => ft(S, \"MMMM\", { locale: e.formatLocale })).join(\"-\"), U = j(() => (y) => v.value ? Array.isArray(v.value) ? v.value.some((V) => rn(y, V)) : rn(v.value, y) : !1), $ = (y) => {\n if (i.value.enabled) {\n if (Array.isArray(v.value)) {\n const V = $e(y, v.value[0]) || $e(y, v.value[1]);\n return xt(v.value, l.value, y) && !V;\n }\n return !1;\n }\n return !1;\n }, ee = (y, V) => y.quarter === sn(V) && y.year === ye(V), O = (y) => typeof f.value == \"function\" ? f.value({ quarter: sn(y), year: ye(y) }) : !!f.value.quarters.find((V) => ee(V, y)), J = j(() => (y) => {\n const V = Se(/* @__PURE__ */ new Date(), { year: R.value(y) });\n return yl({\n start: Gt(V),\n end: An(V)\n }).map((S) => {\n const q = hl(S), k = on(S), se = F(S), u = $(q), re = O(q);\n return {\n text: le(q, k),\n value: q,\n active: U.value(q),\n highlighted: re,\n disabled: se,\n isBetween: u\n };\n });\n }), ce = (y) => {\n en(y, v, P.value.limit), t(\"auto-apply\", !0);\n }, pe = (y) => {\n v.value = tn(v, y, t), pa(v.value, t, e.autoApply, e.modelAuto);\n }, p = (y) => {\n v.value = y, t(\"auto-apply\");\n };\n return {\n defaultedConfig: a,\n defaultedMultiCalendars: n,\n groupedYears: C,\n year: R,\n isDisabled: A,\n quarters: J,\n showYearPicker: M,\n modelValue: v,\n setHoverDate: (y) => {\n l.value = y;\n },\n selectYear: _,\n selectQuarter: (y, V, S) => {\n if (!S)\n return T.value[V].month = Me(on(y)), P.value.enabled ? ce(y) : i.value.enabled ? pe(y) : p(y);\n },\n toggleYearPicker: m,\n handleYearSelect: z,\n handleYear: L\n };\n}, Zr = { class: \"dp--quarter-items\" }, xr = [\"data-test-id\", \"disabled\", \"onClick\", \"onMouseover\"], eo = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"QuarterPicker\",\n props: {\n ...dt\n },\n emits: [\n \"update:internal-model-value\",\n \"reset-flow\",\n \"overlay-closed\",\n \"auto-apply\",\n \"range-start\",\n \"range-end\",\n \"overlay-toggle\",\n \"update-month-year\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, f = Yt(), i = et(f, \"yearMode\"), {\n defaultedMultiCalendars: g,\n defaultedConfig: d,\n groupedYears: P,\n year: v,\n isDisabled: R,\n quarters: h,\n modelValue: T,\n showYearPicker: F,\n setHoverDate: _,\n selectQuarter: C,\n toggleYearPicker: M,\n handleYearSelect: A,\n handleYear: m\n } = Jr(a, n);\n return t({ getSidebarProps: () => ({\n modelValue: T,\n year: v,\n selectQuarter: C,\n handleYearSelect: A,\n handleYear: m\n }) }), (L, le) => (w(), Te(ma, {\n \"multi-calendars\": s(g).count,\n collapse: L.collapse,\n stretch: \"\",\n \"is-mobile\": L.isMobile\n }, {\n default: we(({ instance: U }) => [\n he(\"div\", {\n class: \"dp-quarter-picker-wrap\",\n style: lt({ minHeight: `${s(d).modeHeight}px` })\n }, [\n L.$slots[\"top-extra\"] ? ie(L.$slots, \"top-extra\", {\n key: 0,\n value: L.internalModelValue\n }) : Q(\"\", !0),\n he(\"div\", null, [\n tt(Wn, He(L.$props, {\n items: s(P)(U),\n instance: U,\n \"show-year-picker\": s(F)[U],\n year: s(v)(U),\n \"is-disabled\": ($) => s(R)(U, $),\n onHandleYear: ($) => s(m)(U, $),\n onYearSelect: ($) => s(A)($, U),\n onToggleYearPicker: ($) => s(M)(U, $?.flow, $?.show)\n }), Ge({ _: 2 }, [\n Ce(s(i), ($, ee) => ({\n name: $,\n fn: we((O) => [\n ie(L.$slots, $, ze(Je(O)))\n ])\n }))\n ]), 1040, [\"items\", \"instance\", \"show-year-picker\", \"year\", \"is-disabled\", \"onHandleYear\", \"onYearSelect\", \"onToggleYearPicker\"])\n ]),\n he(\"div\", Zr, [\n (w(!0), W(ke, null, Ce(s(h)(U), ($, ee) => (w(), W(\"div\", { key: ee }, [\n he(\"button\", {\n type: \"button\",\n class: De([\"dp--qr-btn\", {\n \"dp--qr-btn-active\": $.active,\n \"dp--qr-btn-between\": $.isBetween,\n \"dp--qr-btn-disabled\": $.disabled,\n \"dp--highlighted\": $.highlighted\n }]),\n \"data-test-id\": $.value,\n disabled: $.disabled,\n onClick: (O) => s(C)($.value, U, $.disabled),\n onMouseover: (O) => s(_)($.value)\n }, [\n L.$slots.quarter ? ie(L.$slots, \"quarter\", {\n key: 0,\n value: $.value,\n text: $.text\n }) : (w(), W(ke, { key: 1 }, [\n gt(Ke($.text), 1)\n ], 64))\n ], 42, xr)\n ]))), 128))\n ])\n ], 4)\n ]),\n _: 3\n }, 8, [\"multi-calendars\", \"collapse\", \"is-mobile\"]));\n }\n}), Qn = (e, t) => {\n const l = Z(0);\n Ue(() => {\n n(), window.addEventListener(\"resize\", n, { passive: !0 });\n }), Ut(() => {\n window.removeEventListener(\"resize\", n);\n });\n const n = () => {\n l.value = window.document.documentElement.clientWidth;\n };\n return {\n isMobile: j(\n () => l.value <= e.value.mobileBreakpoint && !t ? !0 : void 0\n )\n };\n}, to = [\"id\", \"tabindex\", \"role\", \"aria-label\"], ao = {\n key: 0,\n class: \"dp--menu-load-container\"\n}, no = {\n key: 1,\n class: \"dp--menu-header\"\n}, lo = [\"data-dp-mobile\"], ro = {\n key: 0,\n class: \"dp__sidebar_left\"\n}, oo = [\"data-dp-mobile\"], so = [\"data-test-id\", \"data-dp-mobile\", \"onClick\", \"onKeydown\"], uo = {\n key: 2,\n class: \"dp__sidebar_right\"\n}, io = {\n key: 3,\n class: \"dp__action_extra\"\n}, hn = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"DatepickerMenu\",\n props: {\n ...va,\n shadow: { type: Boolean, default: !1 },\n openOnTop: { type: Boolean, default: !1 },\n internalModelValue: { type: [Date, Array], default: null },\n noOverlayFocus: { type: Boolean, default: !1 },\n collapse: { type: Boolean, default: !1 },\n getInputRect: { type: Function, default: () => ({}) },\n isTextInputDate: { type: Boolean, default: !1 }\n },\n emits: [\n \"close-picker\",\n \"select-date\",\n \"auto-apply\",\n \"time-update\",\n \"flow-step\",\n \"update-month-year\",\n \"invalid-select\",\n \"update:internal-model-value\",\n \"recalculate-position\",\n \"invalid-fixed-range\",\n \"tooltip-open\",\n \"tooltip-close\",\n \"time-picker-open\",\n \"time-picker-close\",\n \"am-pm-change\",\n \"range-start\",\n \"range-end\",\n \"auto-apply-invalid\",\n \"date-update\",\n \"invalid-date\",\n \"overlay-toggle\",\n \"menu-blur\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, f = Z(null), i = j(() => {\n const { openOnTop: D, ...de } = a;\n return {\n ...de,\n isMobile: C.value,\n flowStep: pe.value,\n menuWrapRef: f.value\n };\n }), { setMenuFocused: g, setShiftKey: d, control: P } = Hn(), v = Yt(), { defaultedTextInput: R, defaultedInline: h, defaultedConfig: T, defaultedUI: F, handleEventPropagation: _ } = Oe(a), { isMobile: C } = Qn(T, a.shadow), M = Z(null), A = Z(0), m = Z(null), z = Z(!1), L = Z(null), le = Z(!1), U = (D) => {\n le.value = !0, T.value.allowPreventDefault && D.preventDefault(), Dt(D, T.value, !0);\n };\n Ue(() => {\n if (!a.shadow) {\n z.value = !0, $(), window.addEventListener(\"resize\", $);\n const D = Le(f);\n D && !R.value.enabled && !h.value.enabled && (g(!0), q()), D && (D.addEventListener(\"pointerdown\", U), D.addEventListener(\"mousedown\", U));\n }\n document.addEventListener(\"mousedown\", nt);\n }), Ut(() => {\n window.removeEventListener(\"resize\", $), document.removeEventListener(\"mousedown\", nt);\n const D = Le(f);\n D && (D.removeEventListener(\"pointerdown\", U), D.removeEventListener(\"mousedown\", U));\n });\n const $ = () => {\n const D = Le(m);\n D && (A.value = D.getBoundingClientRect().width);\n }, { arrowRight: ee, arrowLeft: O, arrowDown: J, arrowUp: ce } = At(), { flowStep: pe, updateFlowStep: p, childMount: Y, resetFlow: te, handleFlow: y } = po(a, n, L), V = j(() => a.monthPicker ? hr : a.yearPicker ? kr : a.timePicker ? Yr : a.quarterPicker ? eo : Xr), S = j(() => {\n if (T.value.arrowLeft) return T.value.arrowLeft;\n const D = f.value?.getBoundingClientRect(), de = a.getInputRect();\n return de?.width < A?.value && de?.left <= (D?.left ?? 0) ? `${de?.width / 2}px` : de?.right >= (D?.right ?? 0) && de?.width < A?.value ? `${A?.value - de?.width / 2}px` : \"50%\";\n }), q = () => {\n const D = Le(f);\n D && D.focus({ preventScroll: !0 });\n }, k = j(() => L.value?.getSidebarProps() || {}), se = () => {\n a.openOnTop && n(\"recalculate-position\");\n }, u = et(v, \"action\"), re = j(() => a.monthPicker || a.yearPicker ? et(v, \"monthYear\") : a.timePicker ? et(v, \"timePicker\") : et(v, \"shared\")), G = j(() => a.openOnTop ? \"dp__arrow_bottom\" : \"dp__arrow_top\"), I = j(() => ({\n dp__menu_disabled: a.disabled,\n dp__menu_readonly: a.readonly,\n \"dp-menu-loading\": a.loading\n })), x = j(\n () => ({\n dp__menu: !0,\n dp__menu_index: !h.value.enabled,\n dp__relative: h.value.enabled,\n ...F.value.menu ?? {}\n })\n ), c = (D) => {\n Dt(D, T.value, !0);\n }, o = (D) => {\n a.escClose && (n(\"close-picker\"), _(D));\n }, X = (D) => {\n if (a.arrowNavigation) {\n if (D === Qe.up) return ce();\n if (D === Qe.down) return J();\n if (D === Qe.left) return O();\n if (D === Qe.right) return ee();\n } else D === Qe.left || D === Qe.up ? r(\"handleArrow\", Qe.left, 0, D === Qe.up) : r(\"handleArrow\", Qe.right, 0, D === Qe.down);\n }, B = (D) => {\n d(D.shiftKey), !a.disableMonthYearSelect && D.code === Re.tab && D.target.classList.contains(\"dp__menu\") && P.value.shiftKeyInMenu && (D.preventDefault(), Dt(D, T.value, !0), n(\"close-picker\"));\n }, be = () => {\n q(), n(\"time-picker-close\");\n }, Ae = (D) => {\n L.value?.toggleTimePicker(!1, !1), L.value?.toggleMonthPicker(!1, !1, D), L.value?.toggleYearPicker(!1, !1, D);\n }, ne = (D, de = 0) => D === \"month\" ? L.value?.toggleMonthPicker(!1, !0, de) : D === \"year\" ? L.value?.toggleYearPicker(!1, !0, de) : D === \"time\" ? L.value?.toggleTimePicker(!0, !1) : Ae(de), r = (D, ...de) => {\n L.value?.[D] && L.value?.[D](...de);\n }, E = () => {\n r(\"selectCurrentDate\");\n }, K = (D, de) => {\n r(\"presetDate\", el(D), de);\n }, oe = () => {\n r(\"clearHoverDate\");\n }, ge = (D, de) => {\n r(\"updateMonthYear\", D, de);\n }, _e = (D, de) => {\n D.preventDefault(), X(de);\n }, Ye = (D) => {\n if (B(D), D.key === Re.home || D.key === Re.end)\n return r(\n \"selectWeekDate\",\n D.key === Re.home,\n D.target.getAttribute(\"id\")\n );\n switch ((D.key === Re.pageUp || D.key === Re.pageDown) && (D.shiftKey ? (r(\"changeYear\", D.key === Re.pageUp), Fa(f.value, \"overlay-year\")?.focus()) : (r(\"changeMonth\", D.key === Re.pageUp), Fa(f.value, D.key === Re.pageUp ? \"action-prev\" : \"action-next\")?.focus()), D.target.getAttribute(\"id\") && f.value?.focus({ preventScroll: !0 })), D.key) {\n case Re.esc:\n return o(D);\n case Re.arrowLeft:\n return _e(D, Qe.left);\n case Re.arrowRight:\n return _e(D, Qe.right);\n case Re.arrowUp:\n return _e(D, Qe.up);\n case Re.arrowDown:\n return _e(D, Qe.down);\n default:\n return;\n }\n }, nt = (D) => {\n h.value.enabled && !h.value.input && !f.value?.contains(D.target) && le.value && (le.value = !1, n(\"menu-blur\"));\n };\n return t({\n updateMonthYear: ge,\n switchView: ne,\n handleFlow: y,\n onValueCleared: () => {\n L.value?.setStartTime?.();\n }\n }), (D, de) => (w(), W(\"div\", {\n id: D.uid ? `dp-menu-${D.uid}` : void 0,\n ref_key: \"dpMenuRef\",\n ref: f,\n tabindex: s(h).enabled ? void 0 : \"0\",\n role: s(h).enabled ? void 0 : \"dialog\",\n \"aria-label\": D.ariaLabels?.menu,\n class: De(x.value),\n style: lt({ \"--dp-arrow-left\": S.value }),\n onMouseleave: oe,\n onClick: c,\n onKeydown: Ye\n }, [\n (D.disabled || D.readonly) && s(h).enabled || D.loading ? (w(), W(\"div\", {\n key: 0,\n class: De(I.value)\n }, [\n D.loading ? (w(), W(\"div\", ao, [...de[19] || (de[19] = [\n he(\"span\", { class: \"dp--menu-loader\" }, null, -1)\n ])])) : Q(\"\", !0)\n ], 2)) : Q(\"\", !0),\n D.$slots[\"menu-header\"] ? (w(), W(\"div\", no, [\n ie(D.$slots, \"menu-header\")\n ])) : Q(\"\", !0),\n !s(h).enabled && !D.teleportCenter ? (w(), W(\"div\", {\n key: 2,\n class: De(G.value)\n }, null, 2)) : Q(\"\", !0),\n he(\"div\", {\n ref_key: \"innerMenuRef\",\n ref: m,\n class: De({\n dp__menu_content_wrapper: D.presetDates?.length || !!D.$slots[\"left-sidebar\"] || !!D.$slots[\"right-sidebar\"],\n \"dp--menu-content-wrapper-collapsed\": e.collapse && (D.presetDates?.length || !!D.$slots[\"left-sidebar\"] || !!D.$slots[\"right-sidebar\"])\n }),\n \"data-dp-mobile\": s(C),\n style: lt({ \"--dp-menu-width\": `${A.value}px` })\n }, [\n D.$slots[\"left-sidebar\"] ? (w(), W(\"div\", ro, [\n ie(D.$slots, \"left-sidebar\", ze(Je(k.value)))\n ])) : Q(\"\", !0),\n D.presetDates.length ? (w(), W(\"div\", {\n key: 1,\n class: De({ \"dp--preset-dates-collapsed\": e.collapse, \"dp--preset-dates\": !0 }),\n \"data-dp-mobile\": s(C)\n }, [\n (w(!0), W(ke, null, Ce(D.presetDates, (fe, ht) => (w(), W(ke, { key: ht }, [\n fe.slot ? ie(D.$slots, fe.slot, {\n key: 0,\n presetDate: K,\n label: fe.label,\n value: fe.value\n }) : (w(), W(\"button\", {\n key: 1,\n type: \"button\",\n style: lt(fe.style || {}),\n class: De([\"dp__btn dp--preset-range\", { \"dp--preset-range-collapsed\": e.collapse }]),\n \"data-test-id\": fe.testId ?? void 0,\n \"data-dp-mobile\": s(C),\n onClick: Xt((xe) => K(fe.value, fe.noTz), [\"prevent\"]),\n onKeydown: (xe) => s(qe)(xe, () => K(fe.value, fe.noTz), !0)\n }, Ke(fe.label), 47, so))\n ], 64))), 128))\n ], 10, oo)) : Q(\"\", !0),\n he(\"div\", {\n ref_key: \"calendarWrapperRef\",\n ref: M,\n class: \"dp__instance_calendar\",\n role: \"document\"\n }, [\n (w(), Te(fa(V.value), He({\n ref_key: \"dynCmpRef\",\n ref: L\n }, i.value, {\n \"flow-step\": s(pe),\n onMount: s(Y),\n onUpdateFlowStep: s(p),\n onResetFlow: s(te),\n onFocusMenu: q,\n onSelectDate: de[0] || (de[0] = (fe) => D.$emit(\"select-date\")),\n onDateUpdate: de[1] || (de[1] = (fe) => D.$emit(\"date-update\", fe)),\n onTooltipOpen: de[2] || (de[2] = (fe) => D.$emit(\"tooltip-open\", fe)),\n onTooltipClose: de[3] || (de[3] = (fe) => D.$emit(\"tooltip-close\", fe)),\n onAutoApply: de[4] || (de[4] = (fe) => D.$emit(\"auto-apply\", fe)),\n onRangeStart: de[5] || (de[5] = (fe) => D.$emit(\"range-start\", fe)),\n onRangeEnd: de[6] || (de[6] = (fe) => D.$emit(\"range-end\", fe)),\n onInvalidFixedRange: de[7] || (de[7] = (fe) => D.$emit(\"invalid-fixed-range\", fe)),\n onTimeUpdate: de[8] || (de[8] = (fe) => D.$emit(\"time-update\")),\n onAmPmChange: de[9] || (de[9] = (fe) => D.$emit(\"am-pm-change\", fe)),\n onTimePickerOpen: de[10] || (de[10] = (fe) => D.$emit(\"time-picker-open\", fe)),\n onTimePickerClose: be,\n onRecalculatePosition: se,\n onUpdateMonthYear: de[11] || (de[11] = (fe) => D.$emit(\"update-month-year\", fe)),\n onAutoApplyInvalid: de[12] || (de[12] = (fe) => D.$emit(\"auto-apply-invalid\", fe)),\n onInvalidDate: de[13] || (de[13] = (fe) => D.$emit(\"invalid-date\", fe)),\n onOverlayToggle: de[14] || (de[14] = (fe) => D.$emit(\"overlay-toggle\", fe)),\n \"onUpdate:internalModelValue\": de[15] || (de[15] = (fe) => D.$emit(\"update:internal-model-value\", fe))\n }), Ge({ _: 2 }, [\n Ce(re.value, (fe, ht) => ({\n name: fe,\n fn: we((xe) => [\n ie(D.$slots, fe, ze(Je({ ...xe })))\n ])\n }))\n ]), 1040, [\"flow-step\", \"onMount\", \"onUpdateFlowStep\", \"onResetFlow\"]))\n ], 512),\n D.$slots[\"right-sidebar\"] ? (w(), W(\"div\", uo, [\n ie(D.$slots, \"right-sidebar\", ze(Je(k.value)))\n ])) : Q(\"\", !0),\n D.$slots[\"action-extra\"] ? (w(), W(\"div\", io, [\n D.$slots[\"action-extra\"] ? ie(D.$slots, \"action-extra\", {\n key: 0,\n selectCurrentDate: E\n }) : Q(\"\", !0)\n ])) : Q(\"\", !0)\n ], 14, lo),\n !D.autoApply || s(T).keepActionRow ? (w(), Te(ir, He({\n key: 3,\n \"menu-mount\": z.value\n }, i.value, {\n \"calendar-width\": A.value,\n onClosePicker: de[16] || (de[16] = (fe) => D.$emit(\"close-picker\")),\n onSelectDate: de[17] || (de[17] = (fe) => D.$emit(\"select-date\")),\n onInvalidSelect: de[18] || (de[18] = (fe) => D.$emit(\"invalid-select\")),\n onSelectNow: E\n }), Ge({ _: 2 }, [\n Ce(s(u), (fe, ht) => ({\n name: fe,\n fn: we((xe) => [\n ie(D.$slots, fe, ze(Je({ ...xe })))\n ])\n }))\n ]), 1040, [\"menu-mount\", \"calendar-width\"])) : Q(\"\", !0)\n ], 46, to));\n }\n});\nvar Et = /* @__PURE__ */ ((e) => (e.center = \"center\", e.left = \"left\", e.right = \"right\", e))(Et || {});\nconst co = ({\n menuRef: e,\n menuRefInner: t,\n inputRef: l,\n pickerWrapperRef: n,\n inline: a,\n emit: f,\n props: i,\n slots: g\n}) => {\n const { defaultedConfig: d } = Oe(i), P = Z({}), v = Z(!1), R = Z({\n top: \"0\",\n left: \"0\"\n }), h = Z(!1), T = qt(i, \"teleportCenter\");\n rt(T, () => {\n R.value = JSON.parse(JSON.stringify({})), L();\n });\n const F = (y) => {\n if (i.teleport) {\n const V = y.getBoundingClientRect();\n return {\n left: V.left + window.scrollX,\n top: V.top + window.scrollY\n };\n }\n return { top: 0, left: 0 };\n }, _ = (y, V) => {\n R.value.left = `${y + V - P.value.width}px`;\n }, C = (y) => {\n R.value.left = `${y}px`;\n }, M = (y, V) => {\n i.position === Et.left && C(y), i.position === Et.right && _(y, V), i.position === Et.center && (R.value.left = `${y + V / 2 - P.value.width / 2}px`);\n }, A = (y) => {\n const { width: V, height: S } = y.getBoundingClientRect(), { top: q, left: k } = F(y);\n return { top: +q, left: +k, width: V, height: S };\n }, m = () => {\n R.value.left = \"50%\", R.value.top = \"50%\", R.value.transform = \"translate(-50%, -50%)\", R.value.position = \"fixed\", delete R.value.opacity;\n }, z = () => {\n const y = Le(l);\n R.value = i.altPosition(y);\n }, L = (y = !0) => {\n if (!a.value.enabled) {\n if (T.value) return m();\n if (i.altPosition !== null) return z();\n if (y) {\n const V = i.teleport ? t.value?.$el : e.value;\n V && (P.value = V.getBoundingClientRect()), f(\"recalculate-position\");\n }\n return ce();\n }\n }, le = ({ inputEl: y, left: V, width: S }) => {\n window.screen.width > 768 && !v.value && M(V, S), ee(y);\n }, U = (y) => {\n const { top: V, left: S, height: q, width: k } = A(y);\n R.value.top = `${q + V + +i.offset}px`, h.value = !1, v.value || (R.value.left = `${S + k / 2 - P.value.width / 2}px`), le({ inputEl: y, left: S, width: k });\n }, $ = (y) => {\n const { top: V, left: S, width: q } = A(y);\n R.value.top = `${V - +i.offset - P.value.height}px`, h.value = !0, le({ inputEl: y, left: S, width: q });\n }, ee = (y) => {\n if (i.autoPosition) {\n const { left: V, width: S } = A(y), { left: q, right: k } = P.value;\n if (!v.value) {\n if (Math.abs(q) !== Math.abs(k)) {\n if (q <= 0)\n return v.value = !0, C(V);\n if (k >= document.documentElement.clientWidth)\n return v.value = !0, _(V, S);\n }\n return M(V, S);\n }\n }\n }, O = () => {\n const y = Le(l);\n if (y) {\n if (i.autoPosition === st.top) return st.top;\n if (i.autoPosition === st.bottom) return st.bottom;\n const { height: V } = P.value, { top: S, height: q } = y.getBoundingClientRect(), se = window.innerHeight - S - q, u = S;\n return V <= se ? st.bottom : V > se && V <= u ? st.top : se >= u ? st.bottom : st.top;\n }\n return st.bottom;\n }, J = (y) => O() === st.bottom ? U(y) : $(y), ce = () => {\n const y = Le(l);\n if (y)\n return i.autoPosition ? J(y) : U(y);\n }, pe = function(y) {\n if (y) {\n const V = y.scrollHeight > y.clientHeight, q = window.getComputedStyle(y).overflowY.indexOf(\"hidden\") !== -1;\n return V && !q;\n }\n return !0;\n }, p = function(y) {\n return !y || y === document.body || y.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? window : pe(y) ? y : p(\n y.assignedSlot && d.value.shadowDom ? y.assignedSlot.parentNode : y.parentNode\n );\n }, Y = (y) => {\n if (y)\n switch (i.position) {\n case Et.left:\n return { left: 0, transform: \"translateX(0)\" };\n case Et.right:\n return { left: `${y.width}px`, transform: \"translateX(-100%)\" };\n default:\n return { left: `${y.width / 2}px`, transform: \"translateX(-50%)\" };\n }\n return {};\n };\n return {\n openOnTop: h,\n menuStyle: R,\n xCorrect: v,\n setMenuPosition: L,\n getScrollableParent: p,\n shadowRender: (y, V, S) => {\n const q = document.createElement(\"div\"), k = Le(l)?.getBoundingClientRect();\n q.setAttribute(\"id\", \"dp--temp-container\");\n const se = n.value?.clientWidth ? n.value : document.body;\n se.append(q);\n const u = Y(k), re = d.value.shadowDom ? Object.keys(g).filter(\n (I) => [\"right-sidebar\", \"left-sidebar\", \"top-extra\", \"action-extra\"].includes(I)\n ) : Object.keys(g), G = tl(\n V,\n {\n ...S,\n shadow: !0,\n style: { opacity: 0, position: \"absolute\", ...u }\n },\n Object.fromEntries(re.map((I) => [I, g[I]]))\n );\n y != null && (G.appContext = y.appContext), nn(G, q), P.value = G.el?.getBoundingClientRect(), nn(null, q), se.removeChild(q);\n }\n };\n}, bt = [\n { name: \"clock-icon\", use: [\"time\", \"calendar\", \"shared\"] },\n { name: \"arrow-left\", use: [\"month-year\", \"calendar\", \"shared\", \"year-mode\"] },\n { name: \"arrow-right\", use: [\"month-year\", \"calendar\", \"shared\", \"year-mode\"] },\n { name: \"arrow-up\", use: [\"time\", \"calendar\", \"month-year\", \"shared\"] },\n { name: \"arrow-down\", use: [\"time\", \"calendar\", \"month-year\", \"shared\"] },\n { name: \"calendar-icon\", use: [\"month-year\", \"time\", \"calendar\", \"shared\", \"year-mode\"] },\n { name: \"day\", use: [\"calendar\", \"shared\"] },\n { name: \"month-overlay-value\", use: [\"calendar\", \"month-year\", \"shared\"] },\n { name: \"year-overlay-value\", use: [\"calendar\", \"month-year\", \"shared\", \"year-mode\"] },\n { name: \"year-overlay\", use: [\"month-year\", \"shared\"] },\n { name: \"month-overlay\", use: [\"month-year\", \"shared\"] },\n { name: \"month-overlay-header\", use: [\"month-year\", \"shared\"] },\n { name: \"year-overlay-header\", use: [\"month-year\", \"shared\"] },\n { name: \"hours-overlay-value\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"hours-overlay-header\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"minutes-overlay-value\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"minutes-overlay-header\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"seconds-overlay-value\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"seconds-overlay-header\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"hours\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"minutes\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"month\", use: [\"calendar\", \"month-year\", \"shared\"] },\n { name: \"year\", use: [\"calendar\", \"month-year\", \"shared\", \"year-mode\"] },\n { name: \"action-buttons\", use: [\"action\"] },\n { name: \"action-preview\", use: [\"action\"] },\n { name: \"calendar-header\", use: [\"calendar\", \"shared\"] },\n { name: \"marker-tooltip\", use: [\"calendar\", \"shared\"] },\n { name: \"action-extra\", use: [\"menu\"] },\n { name: \"time-picker-overlay\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"am-pm-button\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"left-sidebar\", use: [\"menu\"] },\n { name: \"right-sidebar\", use: [\"menu\"] },\n { name: \"month-year\", use: [\"month-year\", \"shared\"] },\n { name: \"time-picker\", use: [\"menu\", \"shared\"] },\n { name: \"action-row\", use: [\"action\"] },\n { name: \"marker\", use: [\"calendar\", \"shared\"] },\n { name: \"quarter\", use: [\"shared\"] },\n { name: \"top-extra\", use: [\"shared\", \"month-year\"] },\n { name: \"tp-inline-arrow-up\", use: [\"shared\", \"time\"] },\n { name: \"tp-inline-arrow-down\", use: [\"shared\", \"time\"] },\n { name: \"menu-header\", use: [\"menu\"] }\n], fo = [{ name: \"trigger\" }, { name: \"input-icon\" }, { name: \"clear-icon\" }, { name: \"dp-input\" }], vo = {\n all: () => bt,\n monthYear: () => bt.filter((e) => e.use.includes(\"month-year\")),\n input: () => fo,\n timePicker: () => bt.filter((e) => e.use.includes(\"time\")),\n action: () => bt.filter((e) => e.use.includes(\"action\")),\n calendar: () => bt.filter((e) => e.use.includes(\"calendar\")),\n menu: () => bt.filter((e) => e.use.includes(\"menu\")),\n shared: () => bt.filter((e) => e.use.includes(\"shared\")),\n yearMode: () => bt.filter((e) => e.use.includes(\"year-mode\"))\n}, et = (e, t, l) => {\n const n = [];\n return vo[t]().forEach((a) => {\n e[a.name] && n.push(a.name);\n }), l?.length && l.forEach((a) => {\n a.slot && n.push(a.slot);\n }), n;\n}, aa = (e) => {\n const t = j(() => (n) => e.value ? n ? e.value.open : e.value.close : \"\"), l = j(() => (n) => e.value ? n ? e.value.menuAppearTop : e.value.menuAppearBottom : \"\");\n return { transitionName: t, showTransition: !!e.value, menuTransition: l };\n}, na = (e, t, l) => {\n const { defaultedRange: n, defaultedTz: a } = Oe(e), f = H(Ze(H(), a.value.timezone)), i = Z([{ month: Me(f), year: ye(f) }]), g = (h) => {\n const T = {\n hours: yt(f),\n minutes: $t(f),\n seconds: 0\n };\n return n.value.enabled ? [T[h], T[h]] : T[h];\n }, d = ea({\n hours: g(\"hours\"),\n minutes: g(\"minutes\"),\n seconds: g(\"seconds\")\n });\n rt(\n n,\n (h, T) => {\n h.enabled !== T.enabled && (d.hours = g(\"hours\"), d.minutes = g(\"minutes\"), d.seconds = g(\"seconds\"));\n },\n { deep: !0 }\n );\n const P = j({\n get: () => e.internalModelValue,\n set: (h) => {\n !e.readonly && !e.disabled && t(\"update:internal-model-value\", h);\n }\n }), v = j(\n () => (h) => i.value[h] ? i.value[h].month : 0\n ), R = j(\n () => (h) => i.value[h] ? i.value[h].year : 0\n );\n return rt(\n P,\n (h, T) => {\n l && JSON.stringify(h ?? {}) !== JSON.stringify(T ?? {}) && l();\n },\n { deep: !0 }\n ), {\n calendars: i,\n time: d,\n modelValue: P,\n month: v,\n year: R,\n today: f\n };\n}, mo = (e, t) => {\n const {\n defaultedMultiCalendars: l,\n defaultedMultiDates: n,\n defaultedUI: a,\n defaultedHighlight: f,\n defaultedTz: i,\n propDates: g,\n defaultedRange: d\n } = Oe(t), { isDisabled: P } = Tt(t), v = Z(null), R = Z(Ze(/* @__PURE__ */ new Date(), i.value.timezone)), h = (c) => {\n !c.current && t.hideOffsetDates || (v.value = c.value);\n }, T = () => {\n v.value = null;\n }, F = (c) => Array.isArray(e.value) && d.value.enabled && e.value[0] && v.value ? c ? Ee(v.value, e.value[0]) : Be(v.value, e.value[0]) : !0, _ = (c, o) => {\n const X = () => e.value ? o ? e.value[0] || null : e.value[1] : null, B = e.value && Array.isArray(e.value) ? X() : null;\n return $e(H(c.value), B);\n }, C = (c) => {\n const o = Array.isArray(e.value) ? e.value[0] : null;\n return c ? !Be(v.value ?? null, o) : !0;\n }, M = (c, o = !0) => (d.value.enabled || t.weekPicker) && Array.isArray(e.value) && e.value.length === 2 ? t.hideOffsetDates && !c.current ? !1 : $e(H(c.value), e.value[o ? 0 : 1]) : d.value.enabled ? _(c, o) && C(o) || $e(c.value, Array.isArray(e.value) ? e.value[0] : null) && F(o) : !1, A = (c, o) => {\n if (Array.isArray(e.value) && e.value[0] && e.value.length === 1) {\n const X = $e(c.value, v.value);\n return o ? Ee(e.value[0], c.value) && X : Be(e.value[0], c.value) && X;\n }\n return !1;\n }, m = (c) => !e.value || t.hideOffsetDates && !c.current ? !1 : d.value.enabled ? t.modelAuto && Array.isArray(e.value) ? $e(c.value, e.value[0] ? e.value[0] : R.value) : !1 : n.value.enabled && Array.isArray(e.value) ? e.value.some((o) => $e(o, c.value)) : $e(c.value, e.value ? e.value : R.value), z = (c) => {\n if (d.value.autoRange || t.weekPicker) {\n if (v.value) {\n if (t.hideOffsetDates && !c.current) return !1;\n const o = kt(v.value, +d.value.autoRange), X = mt(H(v.value), t.weekStart);\n return t.weekPicker ? $e(X[1], H(c.value)) : $e(o, H(c.value));\n }\n return !1;\n }\n return !1;\n }, L = (c) => {\n if (d.value.autoRange || t.weekPicker) {\n if (v.value) {\n const o = kt(v.value, +d.value.autoRange);\n if (t.hideOffsetDates && !c.current) return !1;\n const X = mt(H(v.value), t.weekStart);\n return t.weekPicker ? Ee(c.value, X[0]) && Be(c.value, X[1]) : Ee(c.value, v.value) && Be(c.value, o);\n }\n return !1;\n }\n return !1;\n }, le = (c) => {\n if (d.value.autoRange || t.weekPicker) {\n if (v.value) {\n if (t.hideOffsetDates && !c.current) return !1;\n const o = mt(H(v.value), t.weekStart);\n return t.weekPicker ? $e(o[0], c.value) : $e(v.value, c.value);\n }\n return !1;\n }\n return !1;\n }, U = (c) => xt(e.value, v.value, c.value), $ = () => t.modelAuto && Array.isArray(t.internalModelValue) ? !!t.internalModelValue[0] : !1, ee = () => t.modelAuto ? Rn(t.internalModelValue) : !0, O = (c) => {\n if (t.weekPicker) return !1;\n const o = d.value.enabled ? !M(c) && !M(c, !1) : !0;\n return !P(c.value) && !m(c) && !(!c.current && t.hideOffsetDates) && o;\n }, J = (c) => d.value.enabled ? t.modelAuto ? $() && m(c) : !1 : m(c), ce = (c) => f.value ? Bl(c.value, g.value.highlight) : !1, pe = (c) => {\n const o = P(c.value);\n return o && (typeof f.value == \"function\" ? !f.value(c.value, o) : !f.value.options.highlightDisabled);\n }, p = (c) => typeof f.value == \"function\" ? f.value(c.value) : f.value.weekdays?.includes(c.value.getDay()), Y = (c) => (d.value.enabled || t.weekPicker) && (!(l.value.count > 0) || c.current) && ee() && !(!c.current && t.hideOffsetDates) && !m(c) ? U(c) : !1, te = (c) => {\n if (Array.isArray(e.value) && e.value.length === 1) {\n const { before: o, after: X } = mn(+d.value.maxRange, e.value[0]);\n return Ft(c.value, o) || _t(c.value, X);\n }\n return !1;\n }, y = (c) => {\n if (Array.isArray(e.value) && e.value.length === 1) {\n const { before: o, after: X } = mn(+d.value.minRange, e.value[0]);\n return xt([o, X], e.value[0], c.value);\n }\n return !1;\n }, V = (c) => d.value.enabled && (d.value.maxRange || d.value.minRange) ? d.value.maxRange && d.value.minRange ? te(c) || y(c) : d.value.maxRange ? te(c) : y(c) : !1, S = (c) => {\n const { isRangeStart: o, isRangeEnd: X } = u(c), B = d.value.enabled ? o || X : !1;\n return {\n dp__cell_offset: !c.current,\n dp__pointer: !t.disabled && !(!c.current && t.hideOffsetDates) && !P(c.value) && !V(c),\n dp__cell_disabled: P(c.value) || V(c),\n dp__cell_highlight: !pe(c) && (ce(c) || p(c)) && !J(c) && !B && !le(c) && !(Y(c) && t.weekPicker) && !X,\n dp__cell_highlight_active: !pe(c) && (ce(c) || p(c)) && J(c),\n dp__today: !t.noToday && $e(c.value, R.value) && c.current,\n \"dp--past\": Be(c.value, R.value),\n \"dp--future\": Ee(c.value, R.value)\n };\n }, q = (c) => ({\n dp__active_date: J(c),\n dp__date_hover: O(c)\n }), k = (c) => {\n if (e.value && !Array.isArray(e.value)) {\n const o = mt(e.value, t.weekStart);\n return {\n ...G(c),\n dp__range_start: $e(o[0], c.value),\n dp__range_end: $e(o[1], c.value),\n dp__range_between_week: Ee(c.value, o[0]) && Be(c.value, o[1])\n };\n }\n return {\n ...G(c)\n };\n }, se = (c) => {\n if (e.value && Array.isArray(e.value)) {\n const o = mt(e.value[0], t.weekStart), X = e.value[1] ? mt(e.value[1], t.weekStart) : [];\n return {\n ...G(c),\n dp__range_start: $e(o[0], c.value) || $e(X[0], c.value),\n dp__range_end: $e(o[1], c.value) || $e(X[1], c.value),\n dp__range_between_week: Ee(c.value, o[0]) && Be(c.value, o[1]) || Ee(c.value, X[0]) && Be(c.value, X[1]),\n dp__range_between: Ee(c.value, o[1]) && Be(c.value, X[0])\n };\n }\n return {\n ...G(c)\n };\n }, u = (c) => {\n const o = l.value.count > 0 ? c.current && M(c) && ee() : M(c) && ee(), X = l.value.count > 0 ? c.current && M(c, !1) && ee() : M(c, !1) && ee();\n return { isRangeStart: o, isRangeEnd: X };\n }, re = (c) => {\n const { isRangeStart: o, isRangeEnd: X } = u(c);\n return {\n dp__range_start: o,\n dp__range_end: X,\n dp__range_between: Y(c),\n dp__date_hover: $e(c.value, v.value) && !o && !X && !t.weekPicker,\n dp__date_hover_start: A(c, !0),\n dp__date_hover_end: A(c, !1)\n };\n }, G = (c) => ({\n ...re(c),\n dp__cell_auto_range: L(c),\n dp__cell_auto_range_start: le(c),\n dp__cell_auto_range_end: z(c)\n }), I = (c) => d.value.enabled ? d.value.autoRange ? G(c) : t.modelAuto ? { ...q(c), ...re(c) } : t.weekPicker ? se(c) : re(c) : t.weekPicker ? k(c) : q(c);\n return {\n setHoverDate: h,\n clearHoverDate: T,\n getDayClassData: (c) => t.hideOffsetDates && !c.current ? {} : {\n ...S(c),\n ...I(c),\n [t.dayClass ? t.dayClass(c.value, t.internalModelValue) : \"\"]: !0,\n ...a.value.calendarCell ?? {}\n }\n };\n}, Tt = (e) => {\n const { defaultedFilters: t, defaultedRange: l, propDates: n, defaultedMultiDates: a } = Oe(e), f = (p) => n.value.disabledDates ? typeof n.value.disabledDates == \"function\" ? n.value.disabledDates(H(p)) : !!ca(p, n.value.disabledDates) : !1, i = (p) => n.value.maxDate ? e.yearPicker ? ye(p) > ye(n.value.maxDate) : Ee(p, n.value.maxDate) : !1, g = (p) => n.value.minDate ? e.yearPicker ? ye(p) < ye(n.value.minDate) : Be(p, n.value.minDate) : !1, d = (p) => {\n const Y = i(p), te = g(p), y = f(p), S = t.value.months.map((re) => +re).includes(Me(p)), q = e.disabledWeekDays.length ? e.disabledWeekDays.some((re) => +re === kl(p)) : !1, k = T(p), se = ye(p), u = zn(e.yearRange, se);\n return !(Y || te || y || S || u || q || k);\n }, P = (p, Y) => Be(...wt(n.value.minDate, p, Y)) || $e(...wt(n.value.minDate, p, Y)), v = (p, Y) => Ee(...wt(n.value.maxDate, p, Y)) || $e(...wt(n.value.maxDate, p, Y)), R = (p, Y, te) => {\n let y = !1;\n return n.value.maxDate && te && v(p, Y) && (y = !0), n.value.minDate && !te && P(p, Y) && (y = !0), y;\n }, h = (p, Y, te, y) => {\n let V = !1;\n return y && (n.value.minDate || n.value.maxDate) ? n.value.minDate && n.value.maxDate ? V = R(p, Y, te) : (n.value.minDate && P(p, Y) || n.value.maxDate && v(p, Y)) && (V = !0) : V = !0, V;\n }, T = (p) => Array.isArray(n.value.allowedDates) && !n.value.allowedDates.length ? !0 : n.value.allowedDates ? !ca(p, n.value.allowedDates, On(e.monthPicker, e.yearPicker)) : !1, F = (p) => !d(p), _ = (p) => l.value.noDisabledRange ? !bn({ start: p[0], end: p[1] }).some((te) => F(te)) : !0, C = (p) => {\n if (p) {\n const Y = ye(p);\n return Y >= +e.yearRange[0] && Y <= e.yearRange[1];\n }\n return !0;\n }, M = (p, Y) => !!(Array.isArray(p) && p[Y] && (l.value.maxRange || l.value.minRange) && C(p[Y])), A = (p, Y, te = 0) => {\n if (M(Y, te) && C(p)) {\n const y = bl(p, Y[te]), V = In(Y[te], p), S = V.length === 1 ? 0 : V.filter((k) => F(k)).length, q = Math.abs(y) - (l.value.minMaxRawRange ? 0 : S);\n if (l.value.minRange && l.value.maxRange)\n return q >= +l.value.minRange && q <= +l.value.maxRange;\n if (l.value.minRange) return q >= +l.value.minRange;\n if (l.value.maxRange) return q <= +l.value.maxRange;\n }\n return !0;\n }, m = () => !e.enableTimePicker || e.monthPicker || e.yearPicker || e.ignoreTimeValidation, z = (p) => Array.isArray(p) ? [p[0] ? Ca(p[0]) : null, p[1] ? Ca(p[1]) : null] : Ca(p), L = (p, Y, te) => p.find(\n (y) => +y.hours === yt(Y) && y.minutes === \"*\" ? !0 : +y.minutes === $t(Y) && +y.hours === yt(Y)\n ) && te, le = (p, Y, te) => {\n const [y, V] = p, [S, q] = Y;\n return !L(y, S, te) && !L(V, q, te) && te;\n }, U = (p, Y) => {\n const te = Array.isArray(Y) ? Y : [Y];\n return Array.isArray(e.disabledTimes) ? Array.isArray(e.disabledTimes[0]) ? le(e.disabledTimes, te, p) : !te.some((y) => L(e.disabledTimes, y, p)) : p;\n }, $ = (p, Y) => {\n const te = Array.isArray(Y) ? [Bt(Y[0]), Y[1] ? Bt(Y[1]) : void 0] : Bt(Y), y = !e.disabledTimes(te);\n return p && y;\n }, ee = (p, Y) => e.disabledTimes ? Array.isArray(e.disabledTimes) ? U(Y, p) : $(Y, p) : Y, O = (p) => {\n let Y = !0;\n if (!p || m()) return !0;\n const te = !n.value.minDate && !n.value.maxDate ? z(p) : p;\n return (e.maxTime || n.value.maxDate) && (Y = vn(\n e.maxTime,\n n.value.maxDate,\n \"max\",\n Ne(te),\n Y\n )), (e.minTime || n.value.minDate) && (Y = vn(\n e.minTime,\n n.value.minDate,\n \"min\",\n Ne(te),\n Y\n )), ee(p, Y);\n }, J = (p) => {\n if (!e.monthPicker) return !0;\n let Y = !0;\n const te = H(it(p));\n if (n.value.minDate && n.value.maxDate) {\n const y = H(it(n.value.minDate)), V = H(it(n.value.maxDate));\n return Ee(te, y) && Be(te, V) || $e(te, y) || $e(te, V);\n }\n if (n.value.minDate) {\n const y = H(it(n.value.minDate));\n Y = Ee(te, y) || $e(te, y);\n }\n if (n.value.maxDate) {\n const y = H(it(n.value.maxDate));\n Y = Be(te, y) || $e(te, y);\n }\n return Y;\n }, ce = j(() => (p) => !e.enableTimePicker || e.ignoreTimeValidation ? !0 : O(p)), pe = j(() => (p) => e.monthPicker ? Array.isArray(p) && (l.value.enabled || a.value.enabled) ? !p.filter((te) => !J(te)).length : J(p) : !0);\n return {\n isDisabled: F,\n validateDate: d,\n validateMonthYearInRange: h,\n isDateRangeAllowed: _,\n checkMinMaxRange: A,\n isValidTime: O,\n isTimeValid: ce,\n isMonthValid: pe\n };\n}, ga = () => {\n const e = j(() => (n, a) => n?.includes(a)), t = j(() => (n, a) => n.count ? n.solo ? !0 : a === 0 : !0), l = j(() => (n, a) => n.count ? n.solo ? !0 : a === n.count - 1 : !0);\n return { hideNavigationButtons: e, showLeftIcon: t, showRightIcon: l };\n}, po = (e, t, l) => {\n const n = Z(0), a = ea({\n [Ot.timePicker]: !e.enableTimePicker || e.timePicker || e.monthPicker,\n [Ot.calendar]: !1,\n [Ot.header]: !1\n }), f = j(() => e.monthPicker || e.timePicker), i = (R) => {\n if (e.flow?.length) {\n if (!R && f.value) return v();\n a[R] = !0, Object.keys(a).filter((h) => !a[h]).length || v();\n }\n }, g = () => {\n e.flow?.length && n.value !== -1 && (n.value += 1, t(\"flow-step\", n.value), v()), e.flow?.length === n.value && at().then(() => d());\n }, d = () => {\n n.value = -1;\n }, P = (R, h, ...T) => {\n e.flow[n.value] === R && l.value && l.value[h]?.(...T);\n }, v = (R = 0) => {\n R && (n.value += R), P(je.month, \"toggleMonthPicker\", !0), P(je.year, \"toggleYearPicker\", !0), P(je.calendar, \"toggleTimePicker\", !1, !0), P(je.time, \"toggleTimePicker\", !0, !0);\n const h = e.flow[n.value];\n (h === je.hours || h === je.minutes || h === je.seconds) && P(h, \"toggleTimePicker\", !0, !0, h);\n };\n return { childMount: i, updateFlowStep: g, resetFlow: d, handleFlow: v, flowStep: n };\n}, go = {\n key: 1,\n class: \"dp__input_wrap\"\n}, yo = [\"id\", \"name\", \"inputmode\", \"placeholder\", \"disabled\", \"readonly\", \"required\", \"value\", \"autocomplete\", \"aria-label\", \"aria-disabled\", \"aria-invalid\"], ho = {\n key: 2,\n class: \"dp--clear-btn\"\n}, bo = [\"aria-label\"], ko = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"DatepickerInput\",\n props: {\n isMenuOpen: { type: Boolean, default: !1 },\n inputValue: { type: String, default: \"\" },\n ...va\n },\n emits: [\n \"clear\",\n \"open\",\n \"update:input-value\",\n \"set-input-date\",\n \"close\",\n \"select-date\",\n \"set-empty-date\",\n \"toggle\",\n \"focus-prev\",\n \"focus\",\n \"blur\",\n \"real-blur\",\n \"text-input\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, {\n defaultedTextInput: f,\n defaultedAriaLabels: i,\n defaultedInline: g,\n defaultedConfig: d,\n defaultedRange: P,\n defaultedMultiDates: v,\n defaultedUI: R,\n getDefaultPattern: h,\n getDefaultStartTime: T\n } = Oe(a), { checkMinMaxRange: F } = Tt(a), _ = Z(), C = Z(null), M = Z(!1), A = Z(!1), m = j(\n () => ({\n dp__pointer: !a.disabled && !a.readonly && !f.value.enabled,\n dp__disabled: a.disabled,\n dp__input_readonly: !f.value.enabled,\n dp__input: !0,\n dp__input_not_clearable: !a.clearable,\n dp__input_icon_pad: !a.hideInputIcon,\n dp__input_valid: typeof a.state == \"boolean\" ? a.state : !1,\n dp__input_invalid: typeof a.state == \"boolean\" ? !a.state : !1,\n dp__input_focus: M.value || a.isMenuOpen,\n dp__input_reg: !f.value.enabled,\n ...R.value.input ?? {}\n })\n ), z = () => {\n n(\"set-input-date\", null), a.clearable && a.autoApply && (n(\"set-empty-date\"), _.value = null);\n }, L = (k) => {\n const se = T();\n return Yl(\n k,\n f.value.format ?? h(),\n se ?? En({}, a.enableSeconds),\n a.inputValue,\n A.value,\n a.formatLocale\n );\n }, le = (k) => {\n const { rangeSeparator: se } = f.value, [u, re] = k.split(`${se}`);\n if (u) {\n const G = L(u.trim()), I = re ? L(re.trim()) : void 0;\n if (_t(G, I)) return;\n const x = G && I ? [G, I] : [G];\n F(I, x, 0) && (_.value = G ? x : null);\n }\n }, U = () => {\n A.value = !0;\n }, $ = (k) => {\n if (P.value.enabled)\n le(k);\n else if (v.value.enabled) {\n const se = k.split(\";\");\n _.value = se.map((u) => L(u.trim())).filter((u) => u);\n } else\n _.value = L(k);\n }, ee = (k) => {\n const se = typeof k == \"string\" ? k : k.target?.value;\n se !== \"\" ? (f.value.openMenu && !a.isMenuOpen && n(\"open\"), $(se), n(\"set-input-date\", _.value)) : z(), A.value = !1, n(\"update:input-value\", se), n(\"text-input\", k, _.value);\n }, O = (k) => {\n f.value.enabled ? ($(k.target.value), f.value.enterSubmit && za(_.value) && a.inputValue !== \"\" ? (n(\"set-input-date\", _.value, !0), _.value = null) : f.value.enterSubmit && a.inputValue === \"\" && (_.value = null, n(\"clear\"))) : pe(k);\n }, J = (k, se) => {\n f.value.enabled && f.value.tabSubmit && !se && $(k.target.value), f.value.tabSubmit && za(_.value) && a.inputValue !== \"\" ? (n(\"set-input-date\", _.value, !0, !0), _.value = null) : f.value.tabSubmit && a.inputValue === \"\" && (_.value = null, n(\"clear\", !0));\n }, ce = () => {\n M.value = !0, n(\"focus\"), at().then(() => {\n f.value.enabled && f.value.selectOnFocus && C.value?.select();\n });\n }, pe = (k) => {\n if (Dt(k, d.value, !0), f.value.enabled && f.value.openMenu && !g.value.input) {\n if (f.value.openMenu === \"open\" && !a.isMenuOpen) return n(\"open\");\n if (f.value.openMenu === \"toggle\") return n(\"toggle\");\n } else f.value.enabled || n(\"toggle\");\n }, p = () => {\n n(\"real-blur\"), M.value = !1, (!a.isMenuOpen || g.value.enabled && g.value.input) && n(\"blur\"), a.autoApply && f.value.enabled && _.value && !a.isMenuOpen && (n(\"set-input-date\", _.value), n(\"select-date\"), _.value = null);\n }, Y = (k) => {\n Dt(k, d.value, !0), n(\"clear\");\n }, te = () => {\n n(\"close\");\n }, y = (k) => {\n if (k.key === \"Tab\" && J(k), k.key === \"Enter\" && O(k), k.key === \"Escape\" && f.value.escClose && te(), !f.value.enabled) {\n if (k.code === \"Tab\") return;\n k.preventDefault();\n }\n }, V = () => {\n C.value?.focus({ preventScroll: !0 });\n }, S = (k) => {\n _.value = k;\n }, q = (k) => {\n k.key === Re.tab && J(k, !0);\n };\n return t({\n focusInput: V,\n setParsedDate: S\n }), (k, se) => (w(), W(\"div\", { onClick: pe }, [\n k.$slots.trigger && !k.$slots[\"dp-input\"] && !s(g).enabled ? ie(k.$slots, \"trigger\", { key: 0 }) : Q(\"\", !0),\n !k.$slots.trigger && (!s(g).enabled || s(g).input) ? (w(), W(\"div\", go, [\n k.$slots[\"dp-input\"] && !k.$slots.trigger && (!s(g).enabled || s(g).enabled && s(g).input) ? ie(k.$slots, \"dp-input\", {\n key: 0,\n value: e.inputValue,\n isMenuOpen: e.isMenuOpen,\n onInput: ee,\n onEnter: O,\n onTab: J,\n onClear: Y,\n onBlur: p,\n onKeypress: y,\n onPaste: U,\n onFocus: ce,\n openMenu: () => k.$emit(\"open\"),\n closeMenu: () => k.$emit(\"close\"),\n toggleMenu: () => k.$emit(\"toggle\")\n }) : Q(\"\", !0),\n k.$slots[\"dp-input\"] ? Q(\"\", !0) : (w(), W(\"input\", {\n key: 1,\n id: k.uid ? `dp-input-${k.uid}` : void 0,\n ref_key: \"inputRef\",\n ref: C,\n \"data-test-id\": \"dp-input\",\n name: k.name,\n class: De(m.value),\n inputmode: s(f).enabled ? \"text\" : \"none\",\n placeholder: k.placeholder,\n disabled: k.disabled,\n readonly: k.readonly,\n required: k.required,\n value: e.inputValue,\n autocomplete: k.autocomplete,\n \"aria-label\": s(i)?.input,\n \"aria-disabled\": k.disabled || void 0,\n \"aria-invalid\": k.state === !1 ? !0 : void 0,\n onInput: ee,\n onBlur: p,\n onFocus: ce,\n onKeypress: y,\n onKeydown: se[0] || (se[0] = (u) => y(u)),\n onPaste: U\n }, null, 42, yo)),\n he(\"div\", {\n onClick: se[3] || (se[3] = (u) => n(\"toggle\"))\n }, [\n k.$slots[\"input-icon\"] && !k.hideInputIcon ? (w(), W(\"span\", {\n key: 0,\n class: \"dp__input_icon\",\n onClick: se[1] || (se[1] = (u) => n(\"toggle\"))\n }, [\n ie(k.$slots, \"input-icon\")\n ])) : Q(\"\", !0),\n !k.$slots[\"input-icon\"] && !k.hideInputIcon && !k.$slots[\"dp-input\"] ? (w(), Te(s(jt), {\n key: 1,\n \"aria-label\": s(i)?.calendarIcon,\n class: \"dp__input_icon dp__input_icons\",\n onClick: se[2] || (se[2] = (u) => n(\"toggle\"))\n }, null, 8, [\"aria-label\"])) : Q(\"\", !0)\n ]),\n k.$slots[\"clear-icon\"] && (k.alwaysClearable || e.inputValue && k.clearable && !k.disabled && !k.readonly) ? (w(), W(\"span\", ho, [\n ie(k.$slots, \"clear-icon\", { clear: Y })\n ])) : Q(\"\", !0),\n !k.$slots[\"clear-icon\"] && (k.alwaysClearable || k.clearable && e.inputValue && !k.disabled && !k.readonly) ? (w(), W(\"button\", {\n key: 3,\n \"aria-label\": s(i)?.clearInput,\n class: \"dp--clear-btn\",\n type: \"button\",\n onKeydown: se[4] || (se[4] = (u) => s(qe)(u, () => Y(u), !0, q)),\n onClick: se[5] || (se[5] = Xt((u) => Y(u), [\"prevent\"]))\n }, [\n tt(s(Sn), {\n class: \"dp__input_icons\",\n \"data-test-id\": \"clear-icon\"\n })\n ], 40, bo)) : Q(\"\", !0)\n ])) : Q(\"\", !0)\n ]));\n }\n}), wo = typeof window < \"u\" ? window : void 0, Ea = () => {\n}, Do = (e) => al() ? (nl(e), !0) : !1, Mo = (e, t, l, n) => {\n if (!e) return Ea;\n let a = Ea;\n const f = rt(\n () => s(e),\n (g) => {\n a(), g && (g.removeEventListener(t, l), g.addEventListener(t, l, n), a = () => {\n g.removeEventListener(t, l, n), a = Ea;\n });\n },\n { immediate: !0, flush: \"post\" }\n ), i = () => {\n f(), a();\n };\n return Do(i), i;\n}, $o = (e, t, l, n = {}) => {\n const { window: a = wo, event: f = \"pointerdown\" } = n;\n return a ? Mo(a, f, (g) => {\n const d = Le(e), P = Le(t);\n !d || !P || d === g.target || g.composedPath().includes(d) || g.composedPath().includes(P) || l(g);\n }, { passive: !0 }) : void 0;\n}, Ao = [\"data-dp-mobile\"], To = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"VueDatePicker\",\n props: {\n ...va\n },\n emits: [\n \"update:model-value\",\n \"update:model-timezone-value\",\n \"text-submit\",\n \"closed\",\n \"cleared\",\n \"open\",\n \"focus\",\n \"blur\",\n \"internal-model-change\",\n \"recalculate-position\",\n \"flow-step\",\n \"update-month-year\",\n \"invalid-select\",\n \"invalid-fixed-range\",\n \"tooltip-open\",\n \"tooltip-close\",\n \"time-picker-open\",\n \"time-picker-close\",\n \"am-pm-change\",\n \"range-start\",\n \"range-end\",\n \"date-update\",\n \"invalid-date\",\n \"overlay-toggle\",\n \"text-input\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, f = Yt(), i = Z(!1), g = qt(a, \"modelValue\"), d = qt(a, \"timezone\"), P = Z(null), v = Z(null), R = Z(null), h = Z(!1), T = Z(null), F = Z(!1), _ = Z(!1), C = Z(!1), M = Z(!1), { setMenuFocused: A, setShiftKey: m } = Hn(), { clearArrowNav: z } = At(), { validateDate: L, isValidTime: le } = Tt(a), {\n defaultedTransitions: U,\n defaultedTextInput: $,\n defaultedInline: ee,\n defaultedConfig: O,\n defaultedRange: J,\n defaultedMultiDates: ce\n } = Oe(a), { menuTransition: pe, showTransition: p } = aa(U), { isMobile: Y } = Qn(O), te = ll();\n Ue(() => {\n x(a.modelValue), at().then(() => {\n ee.value.enabled || (u(T.value)?.addEventListener(\"scroll\", K), window?.addEventListener(\"resize\", oe));\n }), ee.value.enabled && (i.value = !0), window?.addEventListener(\"keyup\", ge), window?.addEventListener(\"keydown\", _e);\n }), Ut(() => {\n ee.value.enabled || (u(T.value)?.removeEventListener(\"scroll\", K), window?.removeEventListener(\"resize\", oe)), window?.removeEventListener(\"keyup\", ge), window?.removeEventListener(\"keydown\", _e);\n });\n const y = et(f, \"all\", a.presetDates), V = et(f, \"input\");\n rt(\n [g, d],\n () => {\n x(g.value);\n },\n { deep: !0 }\n );\n const { openOnTop: S, menuStyle: q, xCorrect: k, setMenuPosition: se, getScrollableParent: u, shadowRender: re } = co({\n menuRef: P,\n menuRefInner: v,\n inputRef: R,\n pickerWrapperRef: T,\n inline: ee,\n emit: n,\n props: a,\n slots: f\n }), {\n inputValue: G,\n internalModelValue: I,\n parseExternalModelValue: x,\n emitModelValue: c,\n formatInputValue: o,\n checkBeforeEmit: X\n } = rr(n, a, { isInputFocused: h, isTextInputDate: M }), B = j(\n () => ({\n dp__main: !0,\n dp__theme_dark: a.dark,\n dp__theme_light: !a.dark,\n dp__flex_display: ee.value.enabled,\n \"dp--flex-display-collapsed\": C.value,\n dp__flex_display_with_input: ee.value.input\n })\n ), be = j(() => a.dark ? \"dp__theme_dark\" : \"dp__theme_light\"), Ae = j(() => a.teleport ? {\n to: typeof a.teleport == \"boolean\" ? \"body\" : a.teleport,\n disabled: !a.teleport || ee.value.enabled\n } : {}), ne = j(() => ({ class: \"dp__outer_menu_wrap\" })), r = j(() => ee.value.enabled && (a.timePicker || a.monthPicker || a.yearPicker || a.quarterPicker)), E = () => R.value?.$el?.getBoundingClientRect() ?? { width: 0, left: 0, right: 0 }, K = () => {\n i.value && (O.value.closeOnScroll ? Xe() : se());\n }, oe = () => {\n i.value && se();\n const N = v.value?.$el.getBoundingClientRect().width ?? 0;\n C.value = document.body.offsetWidth <= N;\n }, ge = (N) => {\n N.key === \"Tab\" && !ee.value.enabled && !a.teleport && O.value.tabOutClosesMenu && (T.value.contains(document.activeElement) || Xe()), _.value = N.shiftKey;\n }, _e = (N) => {\n _.value = N.shiftKey;\n }, Ye = () => {\n !a.disabled && !a.readonly && (re(te, hn, a), se(!1), i.value = !0, i.value && n(\"open\"), i.value || xe(), x(a.modelValue));\n }, nt = () => {\n G.value = \"\", xe(), v.value?.onValueCleared(), R.value?.setParsedDate(null), n(\"update:model-value\", null), n(\"update:model-timezone-value\", null), n(\"cleared\"), O.value.closeOnClearValue && Xe();\n }, St = () => {\n const N = I.value;\n return !N || !Array.isArray(N) && L(N) ? !0 : Array.isArray(N) ? ce.value.enabled || N.length === 2 && L(N[0]) && L(N[1]) ? !0 : J.value.partialRange && !a.timePicker ? L(N[0]) : !1 : !1;\n }, D = () => {\n X() && St() ? (c(), Xe()) : n(\"invalid-select\", I.value);\n }, de = (N) => {\n fe(), c(), O.value.closeOnAutoApply && !N && Xe();\n }, fe = () => {\n R.value && $.value.enabled && R.value.setParsedDate(I.value);\n }, ht = (N = !1) => {\n a.autoApply && le(I.value) && St() && (J.value.enabled && Array.isArray(I.value) ? (J.value.partialRange || I.value.length === 2) && de(N) : de(N));\n }, xe = () => {\n $.value.enabled || (I.value = null);\n }, Xe = (N = !1) => {\n N && I.value && O.value.setDateOnMenuClose && D(), ee.value.enabled || (i.value && (i.value = !1, k.value = !1, A(!1), m(!1), z(), n(\"closed\"), G.value && x(g.value)), xe(), n(\"blur\"), v.value?.$el?.remove());\n }, ya = (N, ue, me = !1) => {\n if (!N) {\n I.value = null;\n return;\n }\n const vt = Array.isArray(N) ? !N.some((Pt) => !L(Pt)) : L(N), ct = le(N);\n vt && ct ? (M.value = !0, I.value = N, ue ? (F.value = me, D(), n(\"text-submit\")) : a.autoApply && ht(!0), at().then(() => {\n M.value = !1;\n })) : n(\"invalid-date\", N);\n }, ha = () => {\n a.autoApply && le(I.value) && c(), fe();\n }, la = () => i.value ? Xe() : Ye(), ba = (N) => {\n I.value = N;\n }, ka = () => {\n $.value.enabled && (h.value = !0, o()), n(\"focus\");\n }, wa = () => {\n $.value.enabled && (h.value = !1, x(a.modelValue), F.value && Ol(T.value, _.value)?.focus()), n(\"blur\");\n }, Da = (N) => {\n v.value && v.value.updateMonthYear(0, {\n month: dn(N.month),\n year: dn(N.year)\n });\n }, Ma = (N) => {\n x(N ?? a.modelValue);\n }, an = (N, ue) => {\n v.value?.switchView(N, ue);\n }, b = (N, ue) => O.value.onClickOutside ? O.value.onClickOutside(N, ue) : Xe(!0), ae = (N = 0) => {\n v.value?.handleFlow(N);\n }, ve = () => P;\n return $o(\n P,\n R,\n (N) => b(St, N)\n ), t({\n closeMenu: Xe,\n selectDate: D,\n clearValue: nt,\n openMenu: Ye,\n onScroll: K,\n formatInputValue: o,\n // exposed for testing purposes\n updateInternalModelValue: ba,\n // modify internal modelValue\n setMonthYear: Da,\n parseModel: Ma,\n switchView: an,\n toggleMenu: la,\n handleFlow: ae,\n getDpWrapMenuRef: ve\n }), (N, ue) => (w(), W(\"div\", {\n ref_key: \"pickerWrapperRef\",\n ref: T,\n class: De(B.value),\n \"data-datepicker-instance\": \"\",\n \"data-dp-mobile\": s(Y)\n }, [\n tt(ko, He({\n ref_key: \"inputRef\",\n ref: R,\n \"input-value\": s(G),\n \"onUpdate:inputValue\": ue[0] || (ue[0] = (me) => ln(G) ? G.value = me : null),\n \"is-menu-open\": i.value\n }, N.$props, {\n onClear: nt,\n onOpen: Ye,\n onSetInputDate: ya,\n onSetEmptyDate: s(c),\n onSelectDate: D,\n onToggle: la,\n onClose: Xe,\n onFocus: ka,\n onBlur: wa,\n onRealBlur: ue[1] || (ue[1] = (me) => h.value = !1),\n onTextInput: ue[2] || (ue[2] = (me) => N.$emit(\"text-input\", me))\n }), Ge({ _: 2 }, [\n Ce(s(V), (me, vt) => ({\n name: me,\n fn: we((ct) => [\n ie(N.$slots, me, ze(Je(ct)))\n ])\n }))\n ]), 1040, [\"input-value\", \"is-menu-open\", \"onSetEmptyDate\"]),\n (w(), Te(fa(N.teleport ? rl : \"div\"), ze(Je(Ae.value)), {\n default: we(() => [\n tt(Vt, {\n name: s(pe)(s(S)),\n css: s(p) && !s(ee).enabled\n }, {\n default: we(() => [\n i.value ? (w(), W(\"div\", He({\n key: 0,\n ref_key: \"dpWrapMenuRef\",\n ref: P\n }, ne.value, {\n class: { \"dp--menu-wrapper\": !s(ee).enabled },\n style: s(ee).enabled ? void 0 : s(q)\n }), [\n tt(hn, He({\n ref_key: \"dpMenuRef\",\n ref: v\n }, N.$props, {\n \"internal-model-value\": s(I),\n \"onUpdate:internalModelValue\": ue[3] || (ue[3] = (me) => ln(I) ? I.value = me : null),\n class: { [be.value]: !0, \"dp--menu-wrapper\": N.teleport },\n \"open-on-top\": s(S),\n \"no-overlay-focus\": r.value,\n collapse: C.value,\n \"get-input-rect\": E,\n \"is-text-input-date\": M.value,\n onClosePicker: Xe,\n onSelectDate: D,\n onAutoApply: ht,\n onTimeUpdate: ha,\n onFlowStep: ue[4] || (ue[4] = (me) => N.$emit(\"flow-step\", me)),\n onUpdateMonthYear: ue[5] || (ue[5] = (me) => N.$emit(\"update-month-year\", me)),\n onInvalidSelect: ue[6] || (ue[6] = (me) => N.$emit(\"invalid-select\", s(I))),\n onAutoApplyInvalid: ue[7] || (ue[7] = (me) => N.$emit(\"invalid-select\", me)),\n onInvalidFixedRange: ue[8] || (ue[8] = (me) => N.$emit(\"invalid-fixed-range\", me)),\n onRecalculatePosition: s(se),\n onTooltipOpen: ue[9] || (ue[9] = (me) => N.$emit(\"tooltip-open\", me)),\n onTooltipClose: ue[10] || (ue[10] = (me) => N.$emit(\"tooltip-close\", me)),\n onTimePickerOpen: ue[11] || (ue[11] = (me) => N.$emit(\"time-picker-open\", me)),\n onTimePickerClose: ue[12] || (ue[12] = (me) => N.$emit(\"time-picker-close\", me)),\n onAmPmChange: ue[13] || (ue[13] = (me) => N.$emit(\"am-pm-change\", me)),\n onRangeStart: ue[14] || (ue[14] = (me) => N.$emit(\"range-start\", me)),\n onRangeEnd: ue[15] || (ue[15] = (me) => N.$emit(\"range-end\", me)),\n onDateUpdate: ue[16] || (ue[16] = (me) => N.$emit(\"date-update\", me)),\n onInvalidDate: ue[17] || (ue[17] = (me) => N.$emit(\"invalid-date\", me)),\n onOverlayToggle: ue[18] || (ue[18] = (me) => N.$emit(\"overlay-toggle\", me)),\n onMenuBlur: ue[19] || (ue[19] = (me) => N.$emit(\"blur\"))\n }), Ge({ _: 2 }, [\n Ce(s(y), (me, vt) => ({\n name: me,\n fn: we((ct) => [\n ie(N.$slots, me, ze(Je({ ...ct })))\n ])\n }))\n ]), 1040, [\"internal-model-value\", \"class\", \"open-on-top\", \"no-overlay-focus\", \"collapse\", \"is-text-input-date\", \"onRecalculatePosition\"])\n ], 16)) : Q(\"\", !0)\n ]),\n _: 3\n }, 8, [\"name\", \"css\"])\n ]),\n _: 3\n }, 16))\n ], 10, Ao));\n }\n}), qn = /* @__PURE__ */ (() => {\n const e = To;\n return e.install = (t) => {\n t.component(\"Vue3DatePicker\", e);\n }, e;\n})(), So = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: qn\n}, Symbol.toStringTag, { value: \"Module\" }));\nObject.entries(So).forEach(([e, t]) => {\n e !== \"default\" && (qn[e] = t);\n});\nexport {\n qn as default\n};\n","import { defineComponent, mergeModels, useModel, computed, createBlock, openBlock, unref } from \"vue\";\nimport { N as NcSelect } from \"./NcSelect-Cc9_a8nG.mjs\";\nimport { r as register, h as t44, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nregister(t44);\nfunction formatTimezoneId(timezoneId) {\n return timezoneId.slice(timezoneId.indexOf(\"/\") + 1).replaceAll(\"/\", \" - \").replaceAll(\"_\", \" \");\n}\nfunction getTimezones() {\n return Intl.supportedValuesOf(\"timeZone\").filter((tz) => !tz.startsWith(\"Etc/\")).map((timezoneId) => ({\n timezoneId,\n label: formatTimezoneId(timezoneId)\n })).sort((a, b) => a.timezoneId.localeCompare(b.timezoneId));\n}\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcTimezonePicker\",\n props: /* @__PURE__ */ mergeModels({\n additionalTimezones: { default: () => [] },\n uid: { default: createElementId() }\n }, {\n \"modelValue\": { default: \"floating\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const formattedAdditionalTimezones = computed(() => {\n return props.additionalTimezones.map(({ timezoneId, label }) => ({\n timezoneId,\n label\n }));\n });\n const options = computed(() => {\n const timezones = getTimezones();\n timezones.unshift(...formattedAdditionalTimezones.value);\n return timezones;\n });\n function filterBy(option, label, search) {\n const terms = search.trim().split(/\\s+/);\n const values = Object.values(option);\n return terms.every((term) => {\n return values.some((value) => value.toLowerCase().includes(term.toLowerCase()));\n });\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcSelect, {\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),\n \"aria-label-combobox\": unref(t)(\"Search for time zone\"),\n clearable: false,\n \"filter-by\": filterBy,\n multiple: false,\n options: options.value,\n placeholder: unref(t)(\"Type to search time zone\"),\n uid: _ctx.uid,\n reduce: (option) => option.timezoneId,\n label: \"label\"\n }, null, 8, [\"modelValue\", \"aria-label-combobox\", \"options\", \"placeholder\", \"uid\", \"reduce\"]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcTimezonePicker.vue_vue_type_script_setup_true_lang-BffYEppS.mjs.map\n","import '../assets/NcDateTimePicker-D6xbEbaC.css';\nimport { defineComponent, mergeModels, useModel, useTemplateRef, computed, createElementBlock, openBlock, createVNode, createBlock, unref, mergeProps, createSlots, withCtx, createTextVNode, toDisplayString, Teleport, createElementVNode } from \"vue\";\nimport { x as mdiChevronUp, y as mdiChevronDown, c as mdiChevronRight, z as mdiChevronLeft, A as mdiClock, B as mdiCalendarBlank, b as mdiClose } from \"./mdi-CpchYUUV.mjs\";\nimport { getCanonicalLocale, getFirstDay, getDayNamesMin, getDayNames } from \"@nextcloud/l10n\";\nimport VueDatePicker from \"@vuepic/vue-datepicker\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcTimezonePicker.vue_vue_type_script_setup_true_lang-BffYEppS.mjs\";\nimport { r as register, y as t13, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { N as NcButton } from \"./NcButton-CzpKEx4V.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t13);\nconst _hoisted_1 = { class: \"vue-date-time-picker__wrapper\" };\nconst _hoisted_2 = {\n ref: \"target\",\n class: \"vue-date-time-picker__wrapper vue-date-time-picker__wrapper--teleport\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcDateTimePicker\",\n props: /* @__PURE__ */ mergeModels({\n appendToBody: { type: Boolean },\n ariaLabel: { default: t(\"Datepicker input\") },\n ariaLabelMenu: { default: t(\"Datepicker menu\") },\n clearable: { type: Boolean },\n confirm: { type: Boolean },\n format: { type: [String, Function], default: void 0 },\n locale: { default: getCanonicalLocale() },\n minuteStep: { default: 10 },\n modelValue: { default: null },\n placeholder: { default: void 0 },\n showTimezoneSelect: { type: Boolean },\n showWeekNumber: { type: Boolean },\n type: { default: \"date\" }\n }, {\n \"timezoneId\": { default: \"UTC\" },\n \"timezoneIdModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"update:modelValue\", \"update:timezoneId\"], [\"update:timezoneId\"]),\n setup(__props, { emit: __emit }) {\n const timezoneId = useModel(__props, \"timezoneId\");\n const props = __props;\n const emit = __emit;\n const targetElement = useTemplateRef(\"target\");\n const pickerInstance = useTemplateRef(\"picker\");\n const value = computed(() => {\n if (props.modelValue === null && props.clearable) {\n return null;\n }\n if (props.type === \"week\") {\n const date = props.modelValue instanceof Date ? props.modelValue : /* @__PURE__ */ new Date();\n const end = new Date(date);\n end.setUTCDate(date.getUTCDate() + 6);\n return [date, end];\n } else if (props.type === \"year\") {\n const date = props.modelValue instanceof Date ? props.modelValue : /* @__PURE__ */ new Date();\n return date.getUTCFullYear();\n } else if (props.type === \"month\") {\n const date = props.modelValue instanceof Date ? props.modelValue : /* @__PURE__ */ new Date();\n return { year: date.getUTCFullYear(), month: date.getUTCMonth() };\n } else if (props.type === \"time\") {\n const time = props.modelValue instanceof Date ? props.modelValue : /* @__PURE__ */ new Date();\n return {\n hours: time.getHours(),\n minutes: time.getMinutes(),\n seconds: time.getSeconds()\n };\n } else if (props.type === \"time-range\") {\n const time = [props.modelValue].flat();\n if (time.length !== 2) {\n const start = /* @__PURE__ */ new Date();\n const end = new Date(start);\n end.setHours(end.getHours() + 1);\n time.splice(0, 2, start, end);\n }\n return time.map((date) => ({\n hours: date.getHours(),\n minutes: date.getMinutes(),\n seconds: date.getSeconds()\n }));\n } else if (props.type.endsWith(\"-range\")) {\n if (props.modelValue === void 0) {\n const start = /* @__PURE__ */ new Date();\n const end = new Date(start);\n end.setUTCDate(start.getUTCDate() + 7);\n return [start, end];\n }\n return props.modelValue;\n }\n return props.modelValue ?? /* @__PURE__ */ new Date();\n });\n const placeholderFallback = computed(() => {\n if (props.type === \"date\") {\n return t(\"Select date\");\n } else if (props.type === \"time\") {\n return t(\"Select time\");\n } else if (props.type === \"datetime\") {\n return t(\"Select date and time\");\n } else if (props.type === \"week\") {\n return t(\"Select week\");\n } else if (props.type === \"month\") {\n return t(\"Select month\");\n } else if (props.type === \"year\") {\n return t(\"Select year\");\n } else if (props.type.endsWith(\"-range\")) {\n return t(\"Select time range\");\n }\n return t(\"Select date and time\");\n });\n const realFormat = computed(() => {\n if (props.format) {\n return props.format;\n } else if (props.type === \"week\") {\n return \"RR-II\";\n }\n let formatter;\n if (props.type === \"date\" || props.type === \"date-range\") {\n formatter = new Intl.DateTimeFormat(getCanonicalLocale(), { dateStyle: \"medium\" });\n } else if (props.type === \"time\" || props.type === \"time-range\") {\n formatter = new Intl.DateTimeFormat(getCanonicalLocale(), { timeStyle: \"short\" });\n } else if (props.type === \"datetime\" || props.type === \"datetime-range\") {\n formatter = new Intl.DateTimeFormat(getCanonicalLocale(), { dateStyle: \"medium\", timeStyle: \"short\" });\n } else if (props.type === \"month\") {\n formatter = new Intl.DateTimeFormat(getCanonicalLocale(), { year: \"numeric\", month: \"2-digit\" });\n } else if (props.type === \"year\") {\n formatter = new Intl.DateTimeFormat(getCanonicalLocale(), { year: \"numeric\" });\n }\n if (formatter) {\n return (input) => Array.isArray(input) ? formatter.formatRange(input[0], input[1]) : formatter.format(input);\n }\n return void 0;\n });\n const pickerType = computed(() => ({\n timePicker: props.type === \"time\" || props.type === \"time-range\",\n yearPicker: props.type === \"year\",\n monthPicker: props.type === \"month\",\n weekPicker: props.type === \"week\",\n range: props.type.endsWith(\"-range\") && {\n // do not use partial ranges (meaning after selecting the start [Date, null] will be emitted)\n // if this is needed someday we can enable it,\n // but its not covered by our component interface (props / events) documentation so just disabled for now.\n partialRange: false\n },\n enableTimePicker: !(props.type === \"date\" || props.type === \"date-range\"),\n flow: props.type === \"datetime\" ? [\"calendar\", \"time\"] : void 0\n }));\n function onUpdateModelValue(value2) {\n if (value2 === null) {\n return emit(\"update:modelValue\", null);\n }\n if (props.type === \"time\") {\n emit(\"update:modelValue\", formatLibraryTime(value2));\n } else if (props.type === \"time-range\") {\n const start = formatLibraryTime(value2[0]);\n const end = formatLibraryTime(value2[1]);\n if (end.getTime() < start.getTime()) {\n end.setDate(end.getDate() + 1);\n }\n emit(\"update:modelValue\", [start, end]);\n } else if (props.type === \"month\") {\n const data = value2;\n emit(\"update:modelValue\", new Date(data.year, data.month, 1));\n } else if (props.type === \"year\") {\n emit(\"update:modelValue\", new Date(value2, 0));\n } else if (props.type === \"week\") {\n emit(\"update:modelValue\", value2[0]);\n } else {\n emit(\"update:modelValue\", value2);\n }\n }\n function formatLibraryTime(time) {\n const date = /* @__PURE__ */ new Date();\n date.setHours(time.hours);\n date.setMinutes(time.minutes);\n date.setSeconds(time.seconds);\n return date;\n }\n const weekStart = getFirstDay();\n const dayNames = [...getDayNamesMin()];\n for (let i = 0; i < weekStart; i++) {\n dayNames.push(dayNames.shift());\n }\n const weekNumName = t(\"W\");\n const ariaLabels = computed(() => ({\n toggleOverlay: t(\"Toggle overlay\"),\n menu: props.ariaLabelMenu,\n input: props.ariaLabel,\n openTimePicker: t(\"Open time picker\"),\n closeTimePicker: t(\"Close time Picker\"),\n incrementValue: (type) => {\n if (type === \"hours\") {\n return t(\"Increment hours\");\n } else if (type === \"minutes\") {\n return t(\"Increment minutes\");\n }\n return t(\"Increment seconds\");\n },\n decrementValue: (type) => {\n if (type === \"hours\") {\n return t(\"Decrement hours\");\n } else if (type === \"minutes\") {\n return t(\"Decrement minutes\");\n }\n return t(\"Decrement seconds\");\n },\n openTpOverlay: (type) => {\n if (type === \"hours\") {\n return t(\"Open hours overlay\");\n } else if (type === \"minutes\") {\n return t(\"Open minutes overlay\");\n }\n return t(\"Open seconds overlay\");\n },\n amPmButton: t(\"Switch AM/PM mode\"),\n openYearsOverlay: t(\"Open years overlay\"),\n openMonthsOverlay: t(\"Open months overlay\"),\n nextMonth: t(\"Next month\"),\n prevMonth: t(\"Previous month\"),\n nextYear: t(\"Next year\"),\n prevYear: t(\"Previous year\"),\n weekDay: (day) => getDayNames()[day],\n clearInput: t(\"Clear value\"),\n calendarIcon: t(\"Calendar icon\"),\n timePicker: t(\"Time picker\"),\n monthPicker: (overlay) => overlay ? t(\"Month picker overlay\") : t(\"Month picker\"),\n yearPicker: (overlay) => overlay ? t(\"Year picker overlay\") : t(\"Year picker\")\n }));\n function selectDate() {\n pickerInstance.value.selectDate();\n }\n function cancelSelection() {\n pickerInstance.value.closeMenu();\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createVNode(unref(VueDatePicker), mergeProps({\n ref: \"picker\",\n \"aria-labels\": ariaLabels.value,\n \"auto-apply\": !_ctx.confirm,\n class: [\"vue-date-time-picker\", { \"vue-date-time-picker--clearable\": _ctx.clearable }],\n \"cancel-text\": unref(t)(\"Cancel\"),\n clearable: _ctx.clearable,\n \"day-names\": dayNames,\n placeholder: _ctx.placeholder ?? placeholderFallback.value,\n format: realFormat.value,\n locale: _ctx.locale,\n \"minutes-increment\": _ctx.minuteStep,\n \"model-value\": value.value,\n \"now-button-label\": unref(t)(\"Now\"),\n \"select-text\": unref(t)(\"Pick\"),\n \"six-weeks\": \"fair\",\n teleport: _ctx.appendToBody ? targetElement.value || void 0 : false,\n \"text-input\": \"\",\n \"week-num-name\": unref(weekNumName),\n \"week-numbers\": _ctx.showWeekNumber ? { type: \"iso\" } : void 0,\n \"week-start\": unref(weekStart)\n }, pickerType.value, { \"onUpdate:modelValue\": onUpdateModelValue }), createSlots({\n \"action-buttons\": withCtx(() => [\n createVNode(unref(NcButton), {\n size: \"small\",\n variant: \"tertiary\",\n onClick: cancelSelection\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Cancel\")), 1)\n ]),\n _: 1\n }),\n createVNode(unref(NcButton), {\n size: \"small\",\n variant: \"primary\",\n onClick: selectDate\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Pick\")), 1)\n ]),\n _: 1\n })\n ]),\n \"clear-icon\": withCtx(({ clear }) => [\n createVNode(unref(NcButton), {\n \"aria-label\": unref(t)(\"Clear value\"),\n variant: \"tertiary-no-background\",\n onClick: clear\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiClose),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n _: 2\n }, 1032, [\"aria-label\", \"onClick\"])\n ]),\n \"input-icon\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: unref(mdiCalendarBlank),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n \"clock-icon\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiClock),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n \"arrow-left\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiChevronLeft),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n \"arrow-right\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiChevronRight),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n \"arrow-down\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiChevronDown),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n \"arrow-up\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiChevronUp),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n _: 2\n }, [\n _ctx.showTimezoneSelect ? {\n name: \"action-extra\",\n fn: withCtx(() => [\n createVNode(_sfc_main$1, {\n modelValue: timezoneId.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => timezoneId.value = $event),\n class: \"vue-date-time-picker__timezone\",\n \"append-to-body\": false,\n \"input-label\": unref(t)(\"Time zone\")\n }, null, 8, [\"modelValue\", \"input-label\"])\n ]),\n key: \"0\"\n } : void 0\n ]), 1040, [\"aria-labels\", \"auto-apply\", \"class\", \"cancel-text\", \"clearable\", \"placeholder\", \"format\", \"locale\", \"minutes-increment\", \"model-value\", \"now-button-label\", \"select-text\", \"teleport\", \"week-num-name\", \"week-numbers\", \"week-start\"]),\n (openBlock(), createBlock(Teleport, {\n to: \"body\",\n disabled: !_ctx.appendToBody\n }, [\n createElementVNode(\"div\", _hoisted_2, null, 512)\n ], 8, [\"disabled\"]))\n ]);\n };\n }\n});\nconst NcDateTimePicker = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-c436522a\"]]);\nexport {\n NcDateTimePicker as N\n};\n//# sourceMappingURL=NcDateTimePicker-DCuHXZjc.mjs.map\n","// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\n\n// requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel\n\n// MIT license\n\nvar isWindowAvailable = typeof window !== 'undefined'\n\nisWindowAvailable &&\n (function () {\n var lastTime = 0\n var vendors = ['ms', 'moz', 'webkit', 'o']\n\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n window.requestAnimationFrame =\n window[vendors[x] + 'RequestAnimationFrame']\n window.cancelAnimationFrame =\n window[vendors[x] + 'CancelAnimationFrame'] ||\n window[vendors[x] + 'CancelRequestAnimationFrame']\n }\n\n if (!window.requestAnimationFrame)\n window.requestAnimationFrame = function (callback, element) {\n var currTime = new Date().getTime()\n var timeToCall = Math.max(0, 16 - (currTime - lastTime))\n var id = window.setTimeout(function () {\n callback(currTime + timeToCall)\n }, timeToCall)\n\n lastTime = currTime + timeToCall\n return id\n }\n\n if (!window.cancelAnimationFrame)\n window.cancelAnimationFrame = function (id) {\n clearTimeout(id)\n }\n })()\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.EmojiMart=t():e.EmojiMart=t()}(\"undefined\"!=typeof self?self:this,(function(){return function(){var e={537:function(){\"undefined\"!=typeof window&&function(){for(var e=0,t=[\"ms\",\"moz\",\"webkit\",\"o\"],i=0;i<t.length&&!window.requestAnimationFrame;++i)window.requestAnimationFrame=window[t[i]+\"RequestAnimationFrame\"],window.cancelAnimationFrame=window[t[i]+\"CancelAnimationFrame\"]||window[t[i]+\"CancelRequestAnimationFrame\"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t,i){var n=(new Date).getTime(),r=Math.max(0,16-(n-e)),o=window.setTimeout((function(){t(n+r)}),r);return e=n+r,o}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(e){clearTimeout(e)})}()}},t={};function i(n){var r=t[n];if(void 0!==r)return r.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,i),o.exports}i.d=function(e,t){for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var n={};return function(){\"use strict\";i.r(n),i.d(n,{Anchors:function(){return k},Category:function(){return X},Emoji:function(){return J},EmojiData:function(){return N},EmojiIndex:function(){return R},EmojiView:function(){return $},Picker:function(){return se},Preview:function(){return G},Search:function(){return Q},Skins:function(){return Z},frequently:function(){return w},sanitize:function(){return D},store:function(){return c},uncompress:function(){return p}});var e,t,r=\"emoji-mart\",o=JSON,s=\"undefined\"!=typeof window&&\"localStorage\"in window;function a(e,i){if(t)t(e,i);else{if(!s)return;try{window.localStorage[\"\".concat(r,\".\").concat(e)]=o.stringify(i)}catch(e){}}}var c={update:function(e){for(var t in e)a(t,e[t])},set:a,get:function(t){if(e)return e(t);if(s){try{var i=window.localStorage[\"\".concat(r,\".\").concat(t)]}catch(e){return}return i?JSON.parse(i):void 0}},setNamespace:function(e){r=e},setHandlers:function(i){i||(i={}),e=i.getter,t=i.setter}};function u(e){return u=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},u(e)}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}var h={name:\"a\",unified:\"b\",non_qualified:\"c\",has_img_apple:\"d\",has_img_google:\"e\",has_img_twitter:\"f\",has_img_facebook:\"h\",keywords:\"j\",sheet:\"k\",emoticons:\"l\",text:\"m\",short_names:\"n\",added_in:\"o\"},m=function(e){var t=[],i=function(e,i){e&&(Array.isArray(e)?e:[e]).forEach((function(e){(i?e.split(/[-|_|\\s]+/):[e]).forEach((function(e){e=e.toLowerCase(),-1==t.indexOf(e)&&t.push(e)}))}))};return i(e.short_names,!0),i(e.name,!0),i(e.keywords,!1),i(e.emoticons,!1),t.join(\",\")};function d(e){var t,i=function(e,t){var i=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!i){if(Array.isArray(e)||(i=function(e,t){if(e){if(\"string\"==typeof e)return l(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===i&&e.constructor&&(i=e.constructor.name),\"Map\"===i||\"Set\"===i?Array.from(e):\"Arguments\"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?l(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){i&&(e=i);var n=0,r=function(){};return{s:r,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,s=!0,a=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw o}}}}(Object.getOwnPropertyNames(e));try{for(i.s();!(t=i.n()).done;){var n=t.value,r=e[n];e[n]=r&&\"object\"===u(r)?d(r):r}}catch(e){i.e(e)}finally{i.f()}return Object.freeze(e)}var f,v,p=function(e){if(!e.compressed)return e;for(var t in e.compressed=!1,e.emojis){var i=e.emojis[t];for(var n in h)i[n]=i[h[n]],delete i[h[n]];i.short_names||(i.short_names=[]),i.short_names.unshift(t),i.sheet_x=i.sheet[0],i.sheet_y=i.sheet[1],delete i.sheet,i.text||(i.text=\"\"),i.added_in||(i.added_in=6),i.added_in=i.added_in.toFixed(1),i.search=m(i)}return d(e)},j=[\"+1\",\"grinning\",\"kissing_heart\",\"heart_eyes\",\"laughing\",\"stuck_out_tongue_winking_eye\",\"sweat_smile\",\"joy\",\"scream\",\"disappointed\",\"unamused\",\"weary\",\"sob\",\"sunglasses\",\"heart\",\"hankey\"],g={};function y(){v=!0,f=c.get(\"frequently\")}var w={add:function(e){v||y();var t=e.id;f||(f=g),f[t]||(f[t]=0),f[t]+=1,c.set(\"last\",t),c.set(\"frequently\",f)},get:function(e){if(v||y(),!f){g={};for(var t=[],i=Math.min(e,j.length),n=0;n<i;n++)g[j[n]]=parseInt((i-n)/4,10)+1,t.push(j[n]);return t}var r=e,o=[];for(var s in f)f.hasOwnProperty(s)&&o.push(s);var a=o.sort((function(e,t){return f[e]-f[t]})).reverse().slice(0,r),u=c.get(\"last\");return u&&-1==a.indexOf(u)&&(a.pop(),a.push(u)),a}},_={activity:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M12 0C5.373 0 0 5.372 0 12c0 6.627 5.373 12 12 12 6.628 0 12-5.373 12-12 0-6.628-5.372-12-12-12m9.949 11H17.05c.224-2.527 1.232-4.773 1.968-6.113A9.966 9.966 0 0 1 21.949 11M13 11V2.051a9.945 9.945 0 0 1 4.432 1.564c-.858 1.491-2.156 4.22-2.392 7.385H13zm-2 0H8.961c-.238-3.165-1.536-5.894-2.393-7.385A9.95 9.95 0 0 1 11 2.051V11zm0 2v8.949a9.937 9.937 0 0 1-4.432-1.564c.857-1.492 2.155-4.221 2.393-7.385H11zm4.04 0c.236 3.164 1.534 5.893 2.392 7.385A9.92 9.92 0 0 1 13 21.949V13h2.04zM4.982 4.887C5.718 6.227 6.726 8.473 6.951 11h-4.9a9.977 9.977 0 0 1 2.931-6.113M2.051 13h4.9c-.226 2.527-1.233 4.771-1.969 6.113A9.972 9.972 0 0 1 2.051 13m16.967 6.113c-.735-1.342-1.744-3.586-1.968-6.113h4.899a9.961 9.961 0 0 1-2.931 6.113\"/></svg>',custom:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><g transform=\"translate(2.000000, 1.000000)\"><rect id=\"Rectangle\" x=\"8\" y=\"0\" width=\"3\" height=\"21\" rx=\"1.5\"></rect><rect id=\"Rectangle\" transform=\"translate(9.843, 10.549) rotate(60) translate(-9.843, -10.549) \" x=\"8.343\" y=\"0.049\" width=\"3\" height=\"21\" rx=\"1.5\"></rect><rect id=\"Rectangle\" transform=\"translate(9.843, 10.549) rotate(-60) translate(-9.843, -10.549) \" x=\"8.343\" y=\"0.049\" width=\"3\" height=\"21\" rx=\"1.5\"></rect></g></svg>',flags:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M0 0l6.084 24H8L1.916 0zM21 5h-4l-1-4H4l3 12h3l1 4h13L21 5zM6.563 3h7.875l2 8H8.563l-2-8zm8.832 10l-2.856 1.904L12.063 13h3.332zM19 13l-1.5-6h1.938l2 8H16l3-2z\"/></svg>',foods:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M17 4.978c-1.838 0-2.876.396-3.68.934.513-1.172 1.768-2.934 4.68-2.934a1 1 0 0 0 0-2c-2.921 0-4.629 1.365-5.547 2.512-.064.078-.119.162-.18.244C11.73 1.838 10.798.023 9.207.023 8.579.022 7.85.306 7 .978 5.027 2.54 5.329 3.902 6.492 4.999 3.609 5.222 0 7.352 0 12.969c0 4.582 4.961 11.009 9 11.009 1.975 0 2.371-.486 3-1 .629.514 1.025 1 3 1 4.039 0 9-6.418 9-11 0-5.953-4.055-8-7-8M8.242 2.546c.641-.508.943-.523.965-.523.426.169.975 1.405 1.357 3.055-1.527-.629-2.741-1.352-2.98-1.846.059-.112.241-.356.658-.686M15 21.978c-1.08 0-1.21-.109-1.559-.402l-.176-.146c-.367-.302-.816-.452-1.266-.452s-.898.15-1.266.452l-.176.146c-.347.292-.477.402-1.557.402-2.813 0-7-5.389-7-9.009 0-5.823 4.488-5.991 5-5.991 1.939 0 2.484.471 3.387 1.251l.323.276a1.995 1.995 0 0 0 2.58 0l.323-.276c.902-.78 1.447-1.251 3.387-1.251.512 0 5 .168 5 6 0 3.617-4.187 9-7 9\"/></svg>',nature:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M15.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 15.5 8M8.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 8.5 8\"/><path d=\"M18.933 0h-.027c-.97 0-2.138.787-3.018 1.497-1.274-.374-2.612-.51-3.887-.51-1.285 0-2.616.133-3.874.517C7.245.79 6.069 0 5.093 0h-.027C3.352 0 .07 2.67.002 7.026c-.039 2.479.276 4.238 1.04 5.013.254.258.882.677 1.295.882.191 3.177.922 5.238 2.536 6.38.897.637 2.187.949 3.2 1.102C8.04 20.6 8 20.795 8 21c0 1.773 2.35 3 4 3 1.648 0 4-1.227 4-3 0-.201-.038-.393-.072-.586 2.573-.385 5.435-1.877 5.925-7.587.396-.22.887-.568 1.104-.788.763-.774 1.079-2.534 1.04-5.013C23.929 2.67 20.646 0 18.933 0M3.223 9.135c-.237.281-.837 1.155-.884 1.238-.15-.41-.368-1.349-.337-3.291.051-3.281 2.478-4.972 3.091-5.031.256.015.731.27 1.265.646-1.11 1.171-2.275 2.915-2.352 5.125-.133.546-.398.858-.783 1.313M12 22c-.901 0-1.954-.693-2-1 0-.654.475-1.236 1-1.602V20a1 1 0 1 0 2 0v-.602c.524.365 1 .947 1 1.602-.046.307-1.099 1-2 1m3-3.48v.02a4.752 4.752 0 0 0-1.262-1.02c1.092-.516 2.239-1.334 2.239-2.217 0-1.842-1.781-2.195-3.977-2.195-2.196 0-3.978.354-3.978 2.195 0 .883 1.148 1.701 2.238 2.217A4.8 4.8 0 0 0 9 18.539v-.025c-1-.076-2.182-.281-2.973-.842-1.301-.92-1.838-3.045-1.853-6.478l.023-.041c.496-.826 1.49-1.45 1.804-3.102 0-2.047 1.357-3.631 2.362-4.522C9.37 3.178 10.555 3 11.948 3c1.447 0 2.685.192 3.733.57 1 .9 2.316 2.465 2.316 4.48.313 1.651 1.307 2.275 1.803 3.102.035.058.068.117.102.178-.059 5.967-1.949 7.01-4.902 7.19m6.628-8.202c-.037-.065-.074-.13-.113-.195a7.587 7.587 0 0 0-.739-.987c-.385-.455-.648-.768-.782-1.313-.076-2.209-1.241-3.954-2.353-5.124.531-.376 1.004-.63 1.261-.647.636.071 3.044 1.764 3.096 5.031.027 1.81-.347 3.218-.37 3.235\"/></svg>',objects:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M12 0a9 9 0 0 0-5 16.482V21s2.035 3 5 3 5-3 5-3v-4.518A9 9 0 0 0 12 0zm0 2c3.86 0 7 3.141 7 7s-3.14 7-7 7-7-3.141-7-7 3.14-7 7-7zM9 17.477c.94.332 1.946.523 3 .523s2.06-.19 3-.523v.834c-.91.436-1.925.689-3 .689a6.924 6.924 0 0 1-3-.69v-.833zm.236 3.07A8.854 8.854 0 0 0 12 21c.965 0 1.888-.167 2.758-.451C14.155 21.173 13.153 22 12 22c-1.102 0-2.117-.789-2.764-1.453z\"/><path d=\"M14.745 12.449h-.004c-.852-.024-1.188-.858-1.577-1.824-.421-1.061-.703-1.561-1.182-1.566h-.009c-.481 0-.783.497-1.235 1.537-.436.982-.801 1.811-1.636 1.791l-.276-.043c-.565-.171-.853-.691-1.284-1.794-.125-.313-.202-.632-.27-.913-.051-.213-.127-.53-.195-.634C7.067 9.004 7.039 9 6.99 9A1 1 0 0 1 7 7h.01c1.662.017 2.015 1.373 2.198 2.134.486-.981 1.304-2.058 2.797-2.075 1.531.018 2.28 1.153 2.731 2.141l.002-.008C14.944 8.424 15.327 7 16.979 7h.032A1 1 0 1 1 17 9h-.011c-.149.076-.256.474-.319.709a6.484 6.484 0 0 1-.311.951c-.429.973-.79 1.789-1.614 1.789\"/></svg>',smileys:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10\"/><path d=\"M8 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 8 7M16 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 16 7M15.232 15c-.693 1.195-1.87 2-3.349 2-1.477 0-2.655-.805-3.347-2H15m3-2H6a6 6 0 1 0 12 0\"/></svg>',people:'<svg xmlns:svg=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" viewBox=\"0 0 24 24\"> <path id=\"path3814\" d=\"m 3.3591089,21.17726 c 0.172036,0.09385 4.265994,2.29837 8.8144451,2.29837 4.927767,0 8.670894,-2.211883 8.82782,-2.306019 0.113079,-0.06785 0.182268,-0.190051 0.182267,-0.321923 0,-3.03119 -0.929494,-5.804936 -2.617196,-7.810712 -1.180603,-1.403134 -2.661918,-2.359516 -4.295699,-2.799791 4.699118,-2.236258 3.102306,-9.28617162 -2.097191,-9.28617162 -5.1994978,0 -6.7963103,7.04991362 -2.097192,9.28617162 -1.6337821,0.440275 -3.1150971,1.396798 -4.2956991,2.799791 -1.687703,2.005776 -2.617196,4.779522 -2.617196,7.810712 1.2e-6,0.137378 0.075039,0.263785 0.195641,0.329572 z M 8.0439319,5.8308783 C 8.0439309,2.151521 12.492107,0.30955811 15.093491,2.9109411 17.694874,5.5123241 15.852911,9.9605006 12.173554,9.9605 9.8938991,9.9579135 8.0465186,8.1105332 8.0439319,5.8308783 Z m -1.688782,7.6894977 c 1.524535,-1.811449 3.5906601,-2.809035 5.8184041,-2.809035 2.227744,0 4.293869,0.997586 5.818404,2.809035 1.533639,1.822571 2.395932,4.339858 2.439152,7.108301 -0.803352,0.434877 -4.141636,2.096112 -8.257556,2.096112 -3.8062921,0 -7.3910861,-1.671043 -8.2573681,-2.104981 0.04505,-2.765017 0.906968,-5.278785 2.438964,-7.099432 z\" /> <path id=\"path3816\" d=\"M 12.173828 0.38867188 C 9.3198513 0.38867187 7.3770988 2.3672285 6.8652344 4.6308594 C 6.4218608 6.5916015 7.1153562 8.7676117 8.9648438 10.126953 C 7.6141249 10.677376 6.3550511 11.480944 5.3496094 12.675781 C 3.5629317 14.799185 2.6015625 17.701475 2.6015625 20.847656 C 2.6015654 21.189861 2.7894276 21.508002 3.0898438 21.671875 C 3.3044068 21.788925 7.4436239 24.039062 12.173828 24.039062 C 17.269918 24.039062 21.083568 21.776786 21.291016 21.652344 C 21.57281 21.483266 21.746097 21.176282 21.746094 20.847656 C 21.746094 17.701475 20.78277 14.799185 18.996094 12.675781 C 17.990455 11.480591 16.733818 10.675362 15.382812 10.125 C 17.231132 8.7655552 17.925675 6.5910701 17.482422 4.6308594 C 16.970557 2.3672285 15.027805 0.38867188 12.173828 0.38867188 z M 12.792969 2.3007812 C 13.466253 2.4161792 14.125113 2.7383941 14.695312 3.3085938 C 15.835712 4.4489931 15.985604 5.9473549 15.46875 7.1953125 C 14.951896 8.4432701 13.786828 9.3984378 12.173828 9.3984375 C 10.197719 9.3961954 8.607711 7.806187 8.6054688 5.8300781 C 8.6054683 4.2170785 9.5606362 3.0520102 10.808594 2.5351562 C 11.432573 2.2767293 12.119685 2.1853833 12.792969 2.3007812 z M 12.173828 11.273438 C 14.233647 11.273438 16.133674 12.185084 17.5625 13.882812 C 18.93069 15.508765 19.698347 17.776969 19.808594 20.283203 C 18.807395 20.800235 15.886157 22.162109 12.173828 22.162109 C 8.7614632 22.162109 5.6245754 20.787069 4.5390625 20.265625 C 4.6525896 17.766717 5.4203315 15.504791 6.7851562 13.882812 C 8.2139827 12.185084 10.11401 11.273438 12.173828 11.273438 z \" /> </svg>',places:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M6.5 12C5.122 12 4 13.121 4 14.5S5.122 17 6.5 17 9 15.879 9 14.5 7.878 12 6.5 12m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5M17.5 12c-1.378 0-2.5 1.121-2.5 2.5s1.122 2.5 2.5 2.5 2.5-1.121 2.5-2.5-1.122-2.5-2.5-2.5m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5\"/><path d=\"M22.482 9.494l-1.039-.346L21.4 9h.6c.552 0 1-.439 1-.992 0-.006-.003-.008-.003-.008H23c0-1-.889-2-1.984-2h-.642l-.731-1.717C19.262 3.012 18.091 2 16.764 2H7.236C5.909 2 4.738 3.012 4.357 4.283L3.626 6h-.642C1.889 6 1 7 1 8h.003S1 8.002 1 8.008C1 8.561 1.448 9 2 9h.6l-.043.148-1.039.346a2.001 2.001 0 0 0-1.359 2.097l.751 7.508a1 1 0 0 0 .994.901H3v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h6v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h1.096a.999.999 0 0 0 .994-.901l.751-7.508a2.001 2.001 0 0 0-1.359-2.097M6.273 4.857C6.402 4.43 6.788 4 7.236 4h9.527c.448 0 .834.43.963.857L19.313 9H4.688l1.585-4.143zM7 21H5v-1h2v1zm12 0h-2v-1h2v1zm2.189-3H2.811l-.662-6.607L3 11h18l.852.393L21.189 18z\"/></svg>',recent:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M13 4h-2l-.001 7H9v2h2v2h2v-2h4v-2h-4z\"/><path d=\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10\"/></svg>',symbols:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M0 0h11v2H0zM4 11h3V6h4V4H0v2h4zM15.5 17c1.381 0 2.5-1.116 2.5-2.493s-1.119-2.493-2.5-2.493S13 13.13 13 14.507 14.119 17 15.5 17m0-2.986c.276 0 .5.222.5.493 0 .272-.224.493-.5.493s-.5-.221-.5-.493.224-.493.5-.493M21.5 19.014c-1.381 0-2.5 1.116-2.5 2.493S20.119 24 21.5 24s2.5-1.116 2.5-2.493-1.119-2.493-2.5-2.493m0 2.986a.497.497 0 0 1-.5-.493c0-.271.224-.493.5-.493s.5.222.5.493a.497.497 0 0 1-.5.493M22 13l-9 9 1.513 1.5 8.99-9.009zM17 11c2.209 0 4-1.119 4-2.5V2s.985-.161 1.498.949C23.01 4.055 23 6 23 6s1-1.119 1-3.135C24-.02 21 0 21 0h-2v6.347A5.853 5.853 0 0 0 17 6c-2.209 0-4 1.119-4 2.5s1.791 2.5 4 2.5M10.297 20.482l-1.475-1.585a47.54 47.54 0 0 1-1.442 1.129c-.307-.288-.989-1.016-2.045-2.183.902-.836 1.479-1.466 1.729-1.892s.376-.871.376-1.336c0-.592-.273-1.178-.818-1.759-.546-.581-1.329-.871-2.349-.871-1.008 0-1.79.293-2.344.879-.556.587-.832 1.181-.832 1.784 0 .813.419 1.748 1.256 2.805-.847.614-1.444 1.208-1.794 1.784a3.465 3.465 0 0 0-.523 1.833c0 .857.308 1.56.924 2.107.616.549 1.423.823 2.42.823 1.173 0 2.444-.379 3.813-1.137L8.235 24h2.819l-2.09-2.383 1.333-1.135zm-6.736-6.389a1.02 1.02 0 0 1 .73-.286c.31 0 .559.085.747.254a.849.849 0 0 1 .283.659c0 .518-.419 1.112-1.257 1.784-.536-.651-.805-1.231-.805-1.742a.901.901 0 0 1 .302-.669M3.74 22c-.427 0-.778-.116-1.057-.349-.279-.232-.418-.487-.418-.766 0-.594.509-1.288 1.527-2.083.968 1.134 1.717 1.946 2.248 2.438-.921.507-1.686.76-2.3.76\"/></svg>'};function b(e,t,i,n,r,o,s,a){var c,u=\"function\"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),o&&(u._scopeId=\"data-v-\"+o),s?(c=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(s)},u._ssrRegister=c):r&&(c=a?function(){r.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:r),c)if(u.functional){u._injectStyles=c;var l=u.render;u.render=function(e,t){return c.call(t),l(e,t)}}else{var h=u.beforeCreate;u.beforeCreate=h?[].concat(h,c):[c]}return{exports:e,options:u}}var C=b({props:{i18n:{type:Object,required:!0},color:{type:String},categories:{type:Array,required:!0},activeCategory:{type:Object,default:function(){return{}}}},emits:[\"click\"],created:function(){this.svgs=_}},(function(){var e=this,t=e._self._c;return t(\"div\",{staticClass:\"emoji-mart-anchors\",attrs:{role:\"tablist\"}},e._l(e.categories,(function(i){return t(\"button\",{key:i.id,class:{\"emoji-mart-anchor\":!0,\"emoji-mart-anchor-selected\":i.id==e.activeCategory.id},style:{color:i.id==e.activeCategory.id?e.color:\"\"},attrs:{role:\"tab\",type:\"button\",\"aria-label\":i.name,\"aria-selected\":i.id==e.activeCategory.id,\"data-title\":e.i18n.categories[i.id]},on:{click:function(t){return e.$emit(\"click\",i)}}},[t(\"div\",{attrs:{\"aria-hidden\":\"true\"},domProps:{innerHTML:e._s(e.svgs[i.id])}}),e._v(\" \"),t(\"span\",{staticClass:\"emoji-mart-anchor-bar\",style:{backgroundColor:e.color},attrs:{\"aria-hidden\":\"true\"}})])})),0)}),[],!1,null,null,null),k=C.exports;function E(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function S(e){var t=function(e,t){if(\"object\"!=u(e)||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,\"string\");if(\"object\"!=u(n))return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e);return\"symbol\"==u(t)?t:t+\"\"}function x(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,S(n.key),n)}}function O(e,t,i){return t&&x(e.prototype,t),i&&x(e,i),Object.defineProperty(e,\"prototype\",{writable:!1}),e}var P=String.fromCodePoint||function(){var e,t,i=[],n=-1,r=arguments.length;if(!r)return\"\";for(var o=\"\";++n<r;){var s=Number(arguments[n]);if(!isFinite(s)||s<0||s>1114111||Math.floor(s)!=s)throw RangeError(\"Invalid code point: \"+s);s<=65535?i.push(s):(e=55296+((s-=65536)>>10),t=s%1024+56320,i.push(e,t)),(n+1===r||i.length>16384)&&(o+=String.fromCharCode.apply(null,i),i.length=0)}return o};function A(e){var t=e.split(\"-\").map((function(e){return\"0x\".concat(e)}));return P.apply(null,t)}function M(e){return e.reduce((function(e,t){return-1===e.indexOf(t)&&e.push(t),e}),[])}function I(e,t){var i=M(e),n=M(t);return i.filter((function(e){return n.indexOf(e)>=0}))}function F(e,t){var i={};for(var n in e){var r=e[n],o=r;Object.prototype.hasOwnProperty.call(t,n)&&(o=t[n]),\"object\"===u(o)&&(o=F(r,o)),i[n]=o}return i}function z(e,t){var i=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!i){if(Array.isArray(e)||(i=function(e,t){if(e){if(\"string\"==typeof e)return L(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===i&&e.constructor&&(i=e.constructor.name),\"Map\"===i||\"Set\"===i?Array.from(e):\"Arguments\"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?L(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){i&&(e=i);var n=0,r=function(){};return{s:r,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,s=!0,a=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw o}}}}function L(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}var T=/^(?:\\:([^\\:]+)\\:)(?:\\:skin-tone-(\\d)\\:)?$/,q=[\"1F3FA\",\"1F3FB\",\"1F3FC\",\"1F3FD\",\"1F3FE\",\"1F3FF\"],R=function(){return O((function e(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=i.emojisToShowFilter,r=i.include,o=i.exclude,s=i.custom,a=i.recent,c=i.recentLength,u=void 0===c?20:c;E(this,e),this._data=p(t),this._emojisFilter=n||null,this._include=r||null,this._exclude=o||null,this._custom=s||[],this._recent=a||w.get(u),this._emojis={},this._nativeEmojis={},this._emoticons={},this._categories=[],this._recentCategory={id:\"recent\",name:\"Recent\",emojis:[]},this._customCategory={id:\"custom\",name:\"Custom\",emojis:[]},this._searchIndex={},this.buildIndex(),Object.freeze(this)}),[{key:\"buildIndex\",value:function(){var e=this,t=this._data.categories;if(this._include&&(t=(t=t.filter((function(t){return e._include.includes(t.id)}))).sort((function(t,i){var n=e._include.indexOf(t.id),r=e._include.indexOf(i.id);return n<r?-1:n>r?1:0}))),t.forEach((function(t){if(e.isCategoryNeeded(t.id)){var i={id:t.id,name:t.name,emojis:[]};t.emojis.forEach((function(t){var n=e.addEmoji(t);n&&i.emojis.push(n)})),i.emojis.length&&e._categories.push(i)}})),this.isCategoryNeeded(\"custom\")){if(this._custom.length>0){var i,n=z(this._custom);try{for(n.s();!(i=n.n()).done;){var r=i.value;this.addCustomEmoji(r)}}catch(e){n.e(e)}finally{n.f()}}this._customCategory.emojis.length&&this._categories.push(this._customCategory)}this.isCategoryNeeded(\"recent\")&&(this._recent.length&&this._recent.map((function(t){var i,n=z(e._customCategory.emojis);try{for(n.s();!(i=n.n()).done;){var r=i.value;if(r.id===t)return void e._recentCategory.emojis.push(r)}}catch(e){n.e(e)}finally{n.f()}e.hasEmoji(t)&&e._recentCategory.emojis.push(e.emoji(t))})),this._recentCategory.emojis.length&&this._categories.unshift(this._recentCategory))}},{key:\"findEmoji\",value:function(e,t){var i=e.match(T);if(i&&(e=i[1],i[2]&&(t=parseInt(i[2],10))),this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]),this._emojis.hasOwnProperty(e)){var n=this._emojis[e];return t?n.getSkin(t):n}return this._nativeEmojis.hasOwnProperty(e)?this._nativeEmojis[e]:null}},{key:\"categories\",value:function(){return this._categories}},{key:\"emoji\",value:function(e){this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]);var t=this._emojis[e];if(!t)throw new Error(\"Can not find emoji by id: \"+e);return t}},{key:\"firstEmoji\",value:function(){var e=this._emojis[Object.keys(this._emojis)[0]];if(!e)throw new Error(\"Can not get first emoji\");return e}},{key:\"hasEmoji\",value:function(e){return this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]),!!this._emojis[e]}},{key:\"nativeEmoji\",value:function(e){return this._nativeEmojis.hasOwnProperty(e)?this._nativeEmojis[e]:null}},{key:\"search\",value:function(e,t){var i=this;if(t||(t=75),!e.length)return null;if(\"-\"==e||\"-1\"==e)return[this.emoji(\"-1\")];var n,r=e.toLowerCase().split(/[\\s|,|\\-|_]+/);r.length>2&&(r=[r[0],r[1]]),n=r.map((function(e){for(var t=i._emojis,n=i._searchIndex,r=0,o=function(){var i=e[s];if(r++,n[i]||(n[i]={}),!(n=n[i]).results){var o={};for(var a in n.results=[],n.emojis={},t){var c=t[a],u=c._data.search,l=e.substr(0,r),h=u.indexOf(l);if(-1!=h){var m=h+1;l==a&&(m=0),n.results.push(c),n.emojis[a]=c,o[a]=m}}n.results.sort((function(e,t){return o[e.id]-o[t.id]}))}t=n.emojis},s=0;s<e.length;s++)o();return n.results})).filter((function(e){return e}));var o=null;return(o=n.length>1?I.apply(null,n):n.length?n[0]:[])&&o.length>t&&(o=o.slice(0,t)),o}},{key:\"addCustomEmoji\",value:function(e){var t=Object.assign({},e,{id:e.short_names[0],custom:!0});t.search||(t.search=m(t));var i=new N(t);return this._emojis[i.id]=i,this._customCategory.emojis.push(i),i}},{key:\"addEmoji\",value:function(e){var t=this,i=this._data.emojis[e];if(!this.isEmojiNeeded(i))return!1;var n=new N(i);if(this._emojis[e]=n,n.native&&(this._nativeEmojis[n.native]=n),n._skins)for(var r in n._skins){var o=n._skins[r];o.native&&(this._nativeEmojis[o.native]=o)}return n.emoticons&&n.emoticons.forEach((function(i){t._emoticons[i]||(t._emoticons[i]=e)})),n}},{key:\"isCategoryNeeded\",value:function(e){var t=!this._include||!this._include.length||this._include.indexOf(e)>-1,i=!(!this._exclude||!this._exclude.length)&&this._exclude.indexOf(e)>-1;return!(!t||i)}},{key:\"isEmojiNeeded\",value:function(e){return!this._emojisFilter||this._emojisFilter(e)}}])}(),N=function(){return O((function e(t){if(E(this,e),this._data=Object.assign({},t),this._skins=null,this._data.skin_variations)for(var i in this._skins=[],q){var n=q[i],r=this._data.skin_variations[n],o=Object.assign({},t);for(var s in r)o[s]=r[s];delete o.skin_variations,o.skin_tone=parseInt(i)+1,this._skins.push(new e(o))}for(var a in this._sanitized=D(this._data),this._sanitized)this[a]=this._sanitized[a];this.short_names=this._data.short_names,this.short_name=this._data.short_names[0],Object.freeze(this)}),[{key:\"getSkin\",value:function(e){return e&&\"native\"!=e&&this._skins?this._skins[e-1]:this}},{key:\"getPosition\",value:function(){var e=+(100/60*this._data.sheet_x).toFixed(2),t=+(100/60*this._data.sheet_y).toFixed(2);return\"\".concat(e,\"% \").concat(t,\"%\")}},{key:\"ariaLabel\",value:function(){return[this.native].concat(this.short_names).filter(Boolean).join(\", \")}}])}(),$=function(){return O((function e(t,i,n,r,o,s,a){E(this,e),this._emoji=t,this._native=r,this._skin=i,this._set=n,this._fallback=o,this.canRender=this._canRender(),this.cssClass=this._cssClass(),this.cssStyle=this._cssStyle(a),this.content=this._content(),this.title=!0===s?t.short_name:null,this.ariaLabel=t.ariaLabel(),Object.freeze(this)}),[{key:\"getEmoji\",value:function(){return this._emoji.getSkin(this._skin)}},{key:\"_canRender\",value:function(){return this._isCustom()||this._isNative()||this._hasEmoji()||this._fallback}},{key:\"_cssClass\",value:function(){return[\"emoji-set-\"+this._set,\"emoji-type-\"+this._emojiType()]}},{key:\"_cssStyle\",value:function(e){var t={};return this._isCustom()?t={backgroundImage:\"url(\"+this.getEmoji()._data.imageUrl+\")\",backgroundSize:\"100%\",width:e+\"px\",height:e+\"px\"}:this._hasEmoji()&&!this._isNative()&&(t={backgroundPosition:this.getEmoji().getPosition()}),e&&(t=this._isNative()?Object.assign(t,{fontSize:Math.round(.95*e*10)/10+\"px\"}):Object.assign(t,{width:e+\"px\",height:e+\"px\"})),t}},{key:\"_content\",value:function(){return this._isCustom()?\"\":this._isNative()?this.getEmoji().native:this._hasEmoji()?\"\":this._fallback?this._fallback(this.getEmoji()):null}},{key:\"_isNative\",value:function(){return this._native}},{key:\"_isCustom\",value:function(){return this.getEmoji().custom}},{key:\"_hasEmoji\",value:function(){if(!this.getEmoji()._data)return!1;var e=this.getEmoji()._data[\"has_img_\"+this._set];return void 0===e||e}},{key:\"_emojiType\",value:function(){return this._isCustom()?\"custom\":this._isNative()?\"native\":this._hasEmoji()?\"image\":\"fallback\"}}])}();function D(e){var t=e.name,i=e.short_names,n=e.skin_tone,r=e.skin_variations,o=e.emoticons,s=e.unified,a=e.custom,c=e.imageUrl,u=e.id||i[0],l=\":\".concat(u,\":\");return a?{id:u,name:t,colons:l,emoticons:o,custom:a,imageUrl:c}:(n&&(l+=\":skin-tone-\".concat(n,\":\")),{id:u,name:t,colons:l,emoticons:o,unified:s.toLowerCase(),skin:n||(r?1:null),native:A(s)})}function B(e,t,i){return(t=S(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var H={native:{type:Boolean,default:!1},tooltip:{type:Boolean,default:!1},fallback:{type:Function},skin:{type:Number,default:1},set:{type:String,default:\"apple\"},emoji:{type:[String,Object],required:!0},size:{type:Number,default:null},tag:{type:String,default:\"span\"}},U={perLine:{type:Number,default:9},maxSearchResults:{type:Number,default:75},emojiSize:{type:Number,default:24},title:{type:String,default:\"Emoji Mart™\"},emoji:{type:String,default:\"department_store\"},color:{type:String,default:\"#ae65c5\"},set:{type:String,default:\"apple\"},skin:{type:Number,default:null},defaultSkin:{type:Number,default:1},native:{type:Boolean,default:!1},emojiTooltip:{type:Boolean,default:!1},autoFocus:{type:Boolean,default:!1},i18n:{type:Object,default:function(){return{}}},showPreview:{type:Boolean,default:!0},showSearch:{type:Boolean,default:!0},showCategories:{type:Boolean,default:!0},showSkinTones:{type:Boolean,default:!0},infiniteScroll:{type:Boolean,default:!0},pickerStyles:{type:Object,default:function(){return{}}}};function V(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function W(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?V(Object(i),!0).forEach((function(t){B(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):V(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}var J=b({props:W(W({},H),{},{data:{type:Object,required:!0}}),emits:[\"click\",\"mouseenter\",\"mouseleave\"],computed:{view:function(){return new $(this.emojiObject,this.skin,this.set,this.native,this.fallback,this.tooltip,this.size)},sanitizedData:function(){return this.emojiObject._sanitized},title:function(){return this.tooltip?this.emojiObject.short_name:null},emojiObject:function(){return\"string\"==typeof this.emoji?this.data.findEmoji(this.emoji):this.emoji}},created:function(){},methods:{onClick:function(){this.$emit(\"click\",this.emojiObject)},onMouseEnter:function(){this.$emit(\"mouseenter\",this.emojiObject)},onMouseLeave:function(){this.$emit(\"mouseleave\",this.emojiObject)}}},(function(){var e=this,t=e._self._c;return e.view.canRender?t(e.tag,{tag:\"component\",staticClass:\"emoji-mart-emoji\",attrs:{title:e.view.title,\"aria-label\":e.view.ariaLabel,\"data-title\":e.title},on:{mouseenter:e.onMouseEnter,mouseleave:e.onMouseLeave,click:e.onClick}},[t(\"span\",{class:e.view.cssClass,style:e.view.cssStyle},[e._v(e._s(e.view.content))])]):e._e()}),[],!1,null,null,null).exports,X=b({props:{data:{type:Object,required:!0},i18n:{type:Object,required:!0},id:{type:String,required:!0},name:{type:String,required:!0},emojis:{type:Array},emojiProps:{type:Object,required:!0}},methods:{activeClass:function(e){return this.emojiProps.selectedEmoji&&this.emojiProps.selectedEmojiCategory&&this.emojiProps.selectedEmoji.id==e.id&&this.emojiProps.selectedEmojiCategory.id==this.id?\"emoji-mart-emoji-selected\":\"\"}},computed:{isVisible:function(){return!!this.emojis},isSearch:function(){return\"Search\"==this.name},hasResults:function(){return this.emojis.length>0},emojiObjects:function(){var e=this;return this.emojis.map((function(t){return{emojiObject:t,emojiView:new $(t,e.emojiProps.skin,e.emojiProps.set,e.emojiProps.native,e.emojiProps.fallback,e.emojiProps.emojiTooltip,e.emojiProps.emojiSize)}}))}},components:{Emoji:J}},(function(){var e=this,t=e._self._c;return e.isVisible&&(e.isSearch||e.hasResults)?t(\"section\",{class:{\"emoji-mart-category\":!0,\"emoji-mart-no-results\":!e.hasResults},attrs:{\"aria-label\":e.i18n.categories[e.id]}},[t(\"div\",{staticClass:\"emoji-mart-category-label\"},[t(\"h3\",{staticClass:\"emoji-mart-category-label\"},[e._v(e._s(e.i18n.categories[e.id]))])]),e._v(\" \"),e._l(e.emojiObjects,(function(i){var n=i.emojiObject,r=i.emojiView;return[r.canRender?t(\"button\",{key:n.id,staticClass:\"emoji-mart-emoji\",class:e.activeClass(n),attrs:{\"aria-label\":r.ariaLabel,role:\"option\",\"aria-selected\":\"false\",\"aria-posinset\":\"1\",\"aria-setsize\":\"1812\",type:\"button\",\"data-title\":n.short_name,title:r.title},on:{mouseenter:function(t){e.emojiProps.onEnter(r.getEmoji())},mouseleave:function(t){e.emojiProps.onLeave(r.getEmoji())},click:function(t){e.emojiProps.onClick(r.getEmoji())}}},[t(\"span\",{class:r.cssClass,style:r.cssStyle},[e._v(e._s(r.content))])]):e._e()]})),e._v(\" \"),e.hasResults?e._e():t(\"div\",[t(\"emoji\",{attrs:{data:e.data,emoji:\"sleuth_or_spy\",native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}}),e._v(\" \"),t(\"div\",{staticClass:\"emoji-mart-no-results-label\"},[e._v(e._s(e.i18n.notfound))])],1)],2):e._e()}),[],!1,null,null,null).exports,Z=b({props:{skin:{type:Number,required:!0}},emits:[\"change\"],data:function(){return{opened:!1}},methods:{onClick:function(e){this.opened&&e!=this.skin&&this.$emit(\"change\",e),this.opened=!this.opened}}},(function(){var e=this,t=e._self._c;return t(\"div\",{class:{\"emoji-mart-skin-swatches\":!0,\"emoji-mart-skin-swatches-opened\":e.opened}},e._l(6,(function(i){return t(\"span\",{key:i,class:{\"emoji-mart-skin-swatch\":!0,\"emoji-mart-skin-swatch-selected\":e.skin==i}},[t(\"span\",{class:\"emoji-mart-skin emoji-mart-skin-tone-\"+i,on:{click:function(t){return e.onClick(i)}}})])})),0)}),[],!1,null,null,null).exports,G=b({props:{data:{type:Object,required:!0},title:{type:String,required:!0},emoji:{type:[String,Object]},idleEmoji:{type:[String,Object],required:!0},showSkinTones:{type:Boolean,default:!0},emojiProps:{type:Object,required:!0},skinProps:{type:Object,required:!0},onSkinChange:{type:Function,required:!0}},computed:{emojiData:function(){return this.emoji?this.emoji:{}},emojiShortNames:function(){return this.emojiData.short_names},emojiEmoticons:function(){return this.emojiData.emoticons}},components:{Emoji:J,Skins:Z}},(function(){var e=this,t=e._self._c;return t(\"div\",{staticClass:\"emoji-mart-preview\"},[e.emoji?[t(\"div\",{staticClass:\"emoji-mart-preview-emoji\"},[t(\"emoji\",{attrs:{data:e.data,emoji:e.emoji,native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}})],1),e._v(\" \"),t(\"div\",{staticClass:\"emoji-mart-preview-data\"},[t(\"div\",{staticClass:\"emoji-mart-preview-name\"},[e._v(e._s(e.emoji.name))]),e._v(\" \"),t(\"div\",{staticClass:\"emoji-mart-preview-shortnames\"},e._l(e.emojiShortNames,(function(i){return t(\"span\",{key:i,staticClass:\"emoji-mart-preview-shortname\"},[e._v(\":\"+e._s(i)+\":\")])})),0),e._v(\" \"),t(\"div\",{staticClass:\"emoji-mart-preview-emoticons\"},e._l(e.emojiEmoticons,(function(i){return t(\"span\",{key:i,staticClass:\"emoji-mart-preview-emoticon\"},[e._v(e._s(i))])})),0)])]:[t(\"div\",{staticClass:\"emoji-mart-preview-emoji\"},[t(\"emoji\",{attrs:{data:e.data,emoji:e.idleEmoji,native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}})],1),e._v(\" \"),t(\"div\",{staticClass:\"emoji-mart-preview-data\"},[t(\"span\",{staticClass:\"emoji-mart-title-label\"},[e._v(e._s(e.title))])]),e._v(\" \"),e.showSkinTones?t(\"div\",{staticClass:\"emoji-mart-preview-skins\"},[t(\"skins\",{attrs:{skin:e.skinProps.skin},on:{change:function(t){return e.onSkinChange(t)}}})],1):e._e()]],2)}),[],!1,null,null,null).exports,K=b({props:{data:{type:Object,required:!0},i18n:{type:Object,required:!0},autoFocus:{type:Boolean,default:!1},onSearch:{type:Function,required:!0},onArrowLeft:{type:Function,required:!1},onArrowRight:{type:Function,required:!1},onArrowDown:{type:Function,required:!1},onArrowUp:{type:Function,required:!1},onEnter:{type:Function,required:!1}},emits:[\"search\",\"enter\",\"arrowUp\",\"arrowDown\",\"arrowRight\",\"arrowLeft\"],data:function(){return{value:\"\"}},computed:{emojiIndex:function(){return this.data}},watch:{value:function(){this.$emit(\"search\",this.value)}},methods:{clear:function(){this.value=\"\"}},mounted:function(){var e=this.$el.querySelector(\"input\");this.autoFocus&&e.focus()}},(function(){var e=this,t=e._self._c;return t(\"div\",{staticClass:\"emoji-mart-search\"},[t(\"input\",{directives:[{name:\"model\",rawName:\"v-model\",value:e.value,expression:\"value\"}],attrs:{type:\"text\",placeholder:e.i18n.search,role:\"textbox\",\"aria-autocomplete\":\"list\",\"aria-owns\":\"emoji-mart-list\",\"aria-label\":\"Search for an emoji\",\"aria-describedby\":\"emoji-mart-search-description\"},domProps:{value:e.value},on:{keydown:[function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"left\",37,t.key,[\"Left\",\"ArrowLeft\"])||\"button\"in t&&0!==t.button?null:function(t){return e.$emit(\"arrowLeft\",t)}.apply(null,arguments)},function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"right\",39,t.key,[\"Right\",\"ArrowRight\"])||\"button\"in t&&2!==t.button?null:function(){return e.$emit(\"arrowRight\")}.apply(null,arguments)},function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"down\",40,t.key,[\"Down\",\"ArrowDown\"])?null:function(){return e.$emit(\"arrowDown\")}.apply(null,arguments)},function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"up\",38,t.key,[\"Up\",\"ArrowUp\"])?null:function(t){return e.$emit(\"arrowUp\",t)}.apply(null,arguments)},function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"enter\",13,t.key,\"Enter\")?null:function(){return e.$emit(\"enter\")}.apply(null,arguments)}],input:function(t){t.target.composing||(e.value=t.target.value)}}}),e._v(\" \"),t(\"span\",{staticClass:\"hidden\",attrs:{id:\"emoji-picker-search-description\"}},[e._v(\"Use the left, right, up and down arrow keys to navigate the emoji search\\n results.\")])])}),[],!1,null,null,null),Q=K.exports;function Y(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}i(537);var ee=function(){return O((function e(t){var i,n;E(this,e),this._vm=t,this._data=t.data,this._perLine=t.perLine,this._categories=[],(i=this._categories).push.apply(i,function(e){if(Array.isArray(e))return Y(e)}(n=this._data.categories())||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(n)||function(e,t){if(e){if(\"string\"==typeof e)return Y(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===i&&e.constructor&&(i=e.constructor.name),\"Map\"===i||\"Set\"===i?Array.from(e):\"Arguments\"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?Y(e,t):void 0}}(n)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),this._categories=this._categories.filter((function(e){return e.emojis.length>0})),this._categories[0].first=!0,Object.freeze(this._categories),this.activeCategory=this._categories[0],this.searchEmojis=null,this.previewEmoji=null,this.previewEmojiCategoryIdx=0,this.previewEmojiIdx=-1}),[{key:\"onScroll\",value:function(){var e=this._vm.$refs.scroll;if(e){for(var t=e.scrollTop,i=this.filteredCategories[0],n=0,r=this.filteredCategories.length;n<r;n++){var o=this.filteredCategories[n],s=this._vm.getCategoryComponent(n);if(s&&s.$el.offsetTop-50>t)break;i=o}this.activeCategory=i}}},{key:\"allCategories\",get:function(){return this._categories}},{key:\"filteredCategories\",get:function(){return this.searchEmojis?[{id:\"search\",name:\"Search\",emojis:this.searchEmojis}]:this._categories.filter((function(e){return e.emojis.length>0}))}},{key:\"previewEmojiCategory\",get:function(){return this.previewEmojiCategoryIdx>=0?this.filteredCategories[this.previewEmojiCategoryIdx]:null}},{key:\"onAnchorClick\",value:function(e){var t=this;if(!this.searchEmojis){var i=this.filteredCategories.indexOf(e),n=this._vm.getCategoryComponent(i);this._vm.infiniteScroll?function(){if(n){var i=n.$el.offsetTop;e.first&&(i=0),t._vm.$refs.scroll.scrollTop=i}}():this.activeCategory=this.filteredCategories[i]}}},{key:\"onSearch\",value:function(e){var t=this._data.search(e,this.maxSearchResults);this.searchEmojis=t,this.previewEmojiCategoryIdx=0,this.previewEmojiIdx=0,this.updatePreviewEmoji()}},{key:\"onEmojiEnter\",value:function(e){this.previewEmoji=e,this.previewEmojiIdx=-1,this.previewEmojiCategoryIdx=-1}},{key:\"onEmojiLeave\",value:function(e){this.previewEmoji=null}},{key:\"onArrowLeft\",value:function(){this.previewEmojiIdx>0?this.previewEmojiIdx-=1:(this.previewEmojiCategoryIdx-=1,this.previewEmojiCategoryIdx<0?this.previewEmojiCategoryIdx=0:this.previewEmojiIdx=this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length-1),this.updatePreviewEmoji()}},{key:\"onArrowRight\",value:function(){this.previewEmojiIdx<this.emojisLength(this.previewEmojiCategoryIdx)-1?this.previewEmojiIdx+=1:(this.previewEmojiCategoryIdx+=1,this.previewEmojiCategoryIdx>=this.filteredCategories.length?this.previewEmojiCategoryIdx=this.filteredCategories.length-1:this.previewEmojiIdx=0),this.updatePreviewEmoji()}},{key:\"onArrowDown\",value:function(){if(-1==this.previewEmojiIdx)return this.onArrowRight();var e=this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length,t=this._perLine;this.previewEmojiIdx+t>e&&(t=e%this._perLine);for(var i=0;i<t;i++)this.onArrowRight();this.updatePreviewEmoji()}},{key:\"onArrowUp\",value:function(){var e=this._perLine;this.previewEmojiIdx-e<0&&(e=this.previewEmojiCategoryIdx>0?this.filteredCategories[this.previewEmojiCategoryIdx-1].emojis.length%this._perLine:0);for(var t=0;t<e;t++)this.onArrowLeft();this.updatePreviewEmoji()}},{key:\"updatePreviewEmoji\",value:function(){var e=this;this.previewEmoji=this.filteredCategories[this.previewEmojiCategoryIdx].emojis[this.previewEmojiIdx],this._vm.$nextTick((function(){var t=e._vm.$refs.scroll,i=t.querySelector(\".emoji-mart-emoji-selected\"),n=t.offsetTop-t.offsetHeight;i&&i.offsetTop+i.offsetHeight>n+t.scrollTop&&(t.scrollTop+=i.offsetHeight),i&&i.offsetTop<t.scrollTop&&(t.scrollTop-=i.offsetHeight)}))}},{key:\"emojisLength\",value:function(e){return-1==e?0:this.filteredCategories[e].emojis.length}}])}();function te(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function ie(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?te(Object(i),!0).forEach((function(t){B(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):te(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}var ne={search:\"Search\",notfound:\"No Emoji Found\",categories:{search:\"Search Results\",recent:\"Frequently Used\",smileys:\"Smileys & Emotion\",people:\"People & Body\",nature:\"Animals & Nature\",foods:\"Food & Drink\",activity:\"Activity\",places:\"Travel & Places\",objects:\"Objects\",symbols:\"Symbols\",flags:\"Flags\",custom:\"Custom\"}},re={props:ie(ie({},U),{},{data:{type:Object,required:!0}}),emits:[\"select\",\"skin-change\"],data:function(){return{activeSkin:this.skin||c.get(\"skin\")||this.defaultSkin,view:new ee(this)}},computed:{customStyles:function(){return ie({width:this.calculateWidth+\"px\"},this.pickerStyles)},emojiProps:function(){return{native:this.native,skin:this.activeSkin,set:this.set,emojiTooltip:this.emojiTooltip,emojiSize:this.emojiSize,selectedEmoji:this.view.previewEmoji,selectedEmojiCategory:this.view.previewEmojiCategory,onEnter:this.onEmojiEnter.bind(this),onLeave:this.onEmojiLeave.bind(this),onClick:this.onEmojiClick.bind(this)}},skinProps:function(){return{skin:this.activeSkin}},calculateWidth:function(){return this.perLine*(this.emojiSize+12)+12+2+function(){if(\"undefined\"==typeof document)return 0;var e=document.createElement(\"div\");e.style.width=\"100px\",e.style.height=\"100px\",e.style.overflow=\"scroll\",e.style.position=\"absolute\",e.style.top=\"-9999px\",document.body.appendChild(e);var t=e.offsetWidth-e.clientWidth;return document.body.removeChild(e),t}()},filteredCategories:function(){return this.view.filteredCategories},mergedI18n:function(){return Object.freeze(F(ne,this.i18n))},idleEmoji:function(){try{return this.data.emoji(this.emoji)}catch(e){return console.error(\"Default preview emoji `\"+this.emoji+\"` is not available, check the Picker `emoji` property\"),console.error(e),this.data.firstEmoji()}},isSearching:function(){return null!=this.view.searchEmojis}},watch:{skin:function(){this.onSkinChange(this.skin)}},methods:{onScroll:function(){this.infiniteScroll&&!this.waitingForPaint&&(this.waitingForPaint=!0,window.requestAnimationFrame(this.onScrollPaint.bind(this)))},onScrollPaint:function(){this.waitingForPaint=!1,this.view.onScroll()},onAnchorClick:function(e){this.view.onAnchorClick(e)},onSearch:function(e){this.view.onSearch(e)},onEmojiEnter:function(e){this.view.onEmojiEnter(e)},onEmojiLeave:function(e){this.view.onEmojiLeave(e)},onArrowLeft:function(e){var t=this.view.previewEmojiIdx;this.view.onArrowLeft(),e&&this.view.previewEmojiIdx!==t&&e.preventDefault()},onArrowRight:function(){this.view.onArrowRight()},onArrowDown:function(){this.view.onArrowDown()},onArrowUp:function(e){this.view.onArrowUp(),e.preventDefault()},onEnter:function(){this.view.previewEmoji&&(this.$emit(\"select\",this.view.previewEmoji),w.add(this.view.previewEmoji))},onEmojiClick:function(e){this.$emit(\"select\",e),w.add(e)},onTextSelect:function(e){e.stopPropagation()},onSkinChange:function(e){this.activeSkin=e,c.update({skin:e}),this.$emit(\"skin-change\",e)},getCategoryComponent:function(e){var t=this.$refs[\"categories_\"+e];return t&&\"0\"in t?t[0]:t}},components:{Anchors:k,Category:X,Preview:G,Search:Q}},oe=b(re,(function(){var e=this,t=e._self._c;return t(\"section\",{staticClass:\"emoji-mart emoji-mart-static\",style:e.customStyles},[e.showCategories?t(\"div\",{staticClass:\"emoji-mart-bar emoji-mart-bar-anchors\"},[t(\"anchors\",{attrs:{data:e.data,i18n:e.mergedI18n,color:e.color,categories:e.view.allCategories,\"active-category\":e.view.activeCategory},on:{click:e.onAnchorClick}})],1):e._e(),e._v(\" \"),e._t(\"searchTemplate\",(function(){return[e.showSearch?t(\"search\",{ref:\"search\",attrs:{data:e.data,i18n:e.mergedI18n,\"auto-focus\":e.autoFocus,\"on-search\":e.onSearch},on:{search:e.onSearch,arrowLeft:e.onArrowLeft,arrowRight:e.onArrowRight,arrowDown:e.onArrowDown,arrowUp:e.onArrowUp,enter:e.onEnter,select:e.onTextSelect}}):e._e()]}),{data:e.data,i18n:e.i18n,autoFocus:e.autoFocus,onSearch:e.onSearch}),e._v(\" \"),t(\"div\",{ref:\"scroll\",staticClass:\"emoji-mart-scroll\",attrs:{role:\"tabpanel\"},on:{scroll:e.onScroll}},[t(\"div\",{ref:\"scrollContent\",attrs:{id:\"emoji-mart-list\",role:\"listbox\",\"aria-expanded\":\"true\"}},[e._t(\"customCategory\"),e._v(\" \"),e._l(e.view.filteredCategories,(function(i,n){return t(\"category\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.infiniteScroll||i==e.view.activeCategory||e.isSearching,expression:\"infiniteScroll || category == view.activeCategory || isSearching\"}],key:i.id,ref:\"categories_\"+n,refInFor:!0,attrs:{data:e.data,i18n:e.mergedI18n,id:i.id,name:i.name,emojis:i.emojis,\"emoji-props\":e.emojiProps}})}))],2)]),e._v(\" \"),e._t(\"previewTemplate\",(function(){return[e.showPreview?t(\"div\",{staticClass:\"emoji-mart-bar emoji-mart-bar-preview\"},[t(\"preview\",{attrs:{data:e.data,title:e.title,emoji:e.view.previewEmoji,\"idle-emoji\":e.idleEmoji,\"show-skin-tones\":e.showSkinTones,\"emoji-props\":e.emojiProps,\"skin-props\":e.skinProps,\"on-skin-change\":e.onSkinChange}})],1):e._e()]}),{data:e.data,title:e.title,emoji:e.view.previewEmoji,idleEmoji:e.idleEmoji,showSkinTones:e.showSkinTones,emojiProps:e.emojiProps,skinProps:e.skinProps,onSkinChange:e.onSkinChange})],2)}),[],!1,null,null,null),se=oe.exports}(),n}()}));","import { getBuilder } from \"@nextcloud/browser-storage\";\nimport { EmojiIndex, frequently } from \"emoji-mart-vue-fast\";\nimport data from \"emoji-mart-vue-fast/data/all.json\";\nconst storage = getBuilder(\"nextcloud-vue\").persist(true).build();\nlet emojiIndex;\nvar EmojiSkinTone = /* @__PURE__ */ ((EmojiSkinTone2) => {\n EmojiSkinTone2[EmojiSkinTone2[\"Neutral\"] = 1] = \"Neutral\";\n EmojiSkinTone2[EmojiSkinTone2[\"Light\"] = 2] = \"Light\";\n EmojiSkinTone2[EmojiSkinTone2[\"MediumLight\"] = 3] = \"MediumLight\";\n EmojiSkinTone2[EmojiSkinTone2[\"Medium\"] = 4] = \"Medium\";\n EmojiSkinTone2[EmojiSkinTone2[\"MediumDark\"] = 5] = \"MediumDark\";\n EmojiSkinTone2[EmojiSkinTone2[\"Dark\"] = 6] = \"Dark\";\n return EmojiSkinTone2;\n})(EmojiSkinTone || {});\nfunction emojiSearch(query, maxResults = 10) {\n if (!emojiIndex) {\n emojiIndex = new EmojiIndex(data);\n }\n const currentSkinTone = getCurrentSkinTone();\n let results;\n if (query) {\n results = emojiIndex.search(`:${query}`, maxResults);\n if (results.length < maxResults) {\n results = results.concat(emojiIndex.search(query, maxResults - results.length));\n }\n } else {\n results = frequently.get(maxResults).map((id) => emojiIndex.emoji(id)) || [];\n }\n return results.map((emoji) => emoji.getSkin(currentSkinTone));\n}\nfunction emojiAddRecent(emojiData) {\n frequently.add(emojiData);\n}\nfunction getCurrentSkinTone() {\n const skinTone = Number.parseInt(storage.getItem(\"NcEmojiPicker::currentSkinTone\") ?? \"1\");\n return Math.min(\n Math.max(\n skinTone,\n 1\n /* Neutral */\n ),\n 6\n /* Dark */\n );\n}\nfunction setCurrentSkinTone(skinTone) {\n skinTone = Math.min(\n Math.max(\n skinTone,\n 1\n /* Neutral */\n ),\n 6\n /* Dark */\n );\n storage.setItem(\"NcEmojiPicker::currentSkinTone\", skinTone.toString());\n}\nexport {\n EmojiSkinTone as E,\n emojiAddRecent as a,\n emojiSearch as e,\n getCurrentSkinTone as g,\n setCurrentSkinTone as s\n};\n//# sourceMappingURL=emoji-BY_D0V5K.mjs.map\n","import '../assets/NcEmojiPicker-B7xDz_8U.css';\nimport data from \"emoji-mart-vue-fast/data/all.json\";\nimport { Picker, Emoji, EmojiIndex } from \"emoji-mart-vue-fast/src/index.js\";\nimport { isFocusable } from \"tabbable\";\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, createBlock, withCtx, createVNode, withKeys, withModifiers, createSlots, normalizeStyle, renderSlot, normalizeProps, guardReactiveProps } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcColorPicker } from \"./NcColorPicker-3wpX7pKD.mjs\";\nimport { u as useTrapStackControl } from \"./useTrapStackControl-B6cEicto.mjs\";\nimport { s as setCurrentSkinTone, g as getCurrentSkinTone } from \"./emoji-BY_D0V5K.mjs\";\nimport { r as register, q as t42, s as t37, u as t16, v as t5, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { C as Color } from \"./colors-CL_wvNtd.mjs\";\nimport { N as NcButton } from \"./NcButton-CzpKEx4V.mjs\";\nimport { N as NcPopover } from \"./NcPopover-C-MTaPCs.mjs\";\nimport { _ as _sfc_main$2 } from \"./NcTextField.vue_vue_type_script_setup_true_lang-CCsZqnkM.mjs\";\nconst _sfc_main$1 = {\n name: \"CircleIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon circle-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$1);\n}\nconst IconCircle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1]]);\nregister(t5, t16, t37, t42);\nlet emojiIndex;\nconst i18n = {\n search: t(\"Search emoji\"),\n notfound: t(\"No emoji found\"),\n categories: {\n search: t(\"Search results\"),\n recent: t(\"Frequently used\"),\n smileys: t(\"Smileys & Emotion\"),\n people: t(\"People & Body\"),\n nature: t(\"Animals & Nature\"),\n foods: t(\"Food & Drink\"),\n activity: t(\"Activities\"),\n places: t(\"Travel & Places\"),\n objects: t(\"Objects\"),\n symbols: t(\"Symbols\"),\n flags: t(\"Flags\"),\n custom: t(\"Custom\")\n }\n};\nconst skinTonePalette = [\n new Color(255, 222, 52, t(\"Neutral skin color\")),\n new Color(228, 205, 166, t(\"Light skin tone\")),\n new Color(250, 221, 192, t(\"Medium light skin tone\")),\n new Color(174, 129, 87, t(\"Medium skin tone\")),\n new Color(158, 113, 88, t(\"Medium dark skin tone\")),\n new Color(96, 79, 69, t(\"Dark skin tone\"))\n];\nconst _sfc_main = {\n name: \"NcEmojiPicker\",\n components: {\n IconCircle,\n NcButton,\n NcColorPicker,\n NcPopover,\n NcTextField: _sfc_main$2,\n Emoji,\n Picker\n },\n props: {\n /**\n * The emoji-set\n */\n activeSet: {\n type: String,\n default: \"native\"\n },\n /**\n * Show preview section when hovering emoji\n */\n showPreview: {\n type: Boolean,\n default: false\n },\n /**\n * Allow unselecting the selected emoji\n */\n allowUnselect: {\n type: Boolean,\n default: false\n },\n /**\n * Selected emoji to allow unselecting\n */\n selectedEmoji: {\n type: String,\n default: \"\"\n },\n /**\n * The fallback emoji in the preview section\n */\n previewFallbackEmoji: {\n type: String,\n default: \"grinning\"\n },\n /**\n * The fallback text in the preview section\n */\n previewFallbackName: {\n type: String,\n default: t(\"Pick an emoji\")\n },\n /**\n * Whether to close the emoji picker after picking one\n */\n closeOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Selector for the popover container\n */\n container: {\n type: [Boolean, String, Object, Element],\n default: \"body\"\n }\n },\n emits: [\n \"select\",\n \"selectData\",\n \"unselect\"\n ],\n setup() {\n if (!emojiIndex) {\n emojiIndex = new EmojiIndex(data);\n }\n return {\n // Non-reactive constants\n emojiIndex,\n skinTonePalette,\n i18n\n };\n },\n data() {\n const currentSkinTone = getCurrentSkinTone();\n return {\n /**\n * The current active color from the skin tone palette\n */\n currentColor: skinTonePalette[currentSkinTone - 1],\n /**\n * The current active skin tone\n *\n * @type {1|2|3|4|5|6}\n */\n currentSkinTone,\n search: \"\",\n open: false\n };\n },\n computed: {\n native() {\n return this.activeSet === \"native\";\n }\n },\n created() {\n useTrapStackControl(() => this.open);\n },\n methods: {\n t,\n clearSearch() {\n this.search = \"\";\n this.$refs.search.focus();\n },\n /**\n * Update the current skin tone by the result of the color picker\n *\n * @param {string} color Color set\n */\n onChangeSkinTone(color) {\n const index = this.skinTonePalette.findIndex((tone) => tone.color.toLowerCase() === color.toLowerCase());\n if (index > -1) {\n this.currentSkinTone = index + 1;\n this.currentColor = this.skinTonePalette[index];\n setCurrentSkinTone(this.currentSkinTone);\n }\n },\n select(emojiObject) {\n this.$emit(\"select\", emojiObject.native);\n this.$emit(\"selectData\", emojiObject);\n if (this.closeOnSelect) {\n this.open = false;\n }\n },\n unselect() {\n this.$emit(\"unselect\");\n },\n afterShow() {\n this.$refs.search.focus();\n },\n afterHide() {\n if (!document.activeElement || this.$refs.picker.$el.contains(document.activeElement) || !isFocusable(document.activeElement)) {\n this.$refs.popover.$el.querySelector('button, [role=\"button\"]')?.focus();\n }\n },\n /**\n * Manually handle Tab navigation skipping emoji buttons.\n * Navigation over emojis is handled by Arrow keys.\n *\n * @param {KeyboardEvent} event - Keyboard event\n */\n handleTabNavigationSkippingEmojis(event) {\n const current = event.target;\n const focusable = Array.from(this.$refs.picker.$el.querySelectorAll(\"button:not(.emoji-mart-emoji), input\"));\n if (!event.shiftKey) {\n const nextNode = focusable.find((node) => current.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_FOLLOWING) || focusable[0];\n nextNode.focus();\n } else {\n const prevNode = focusable.findLast((node) => current.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_PRECEDING) || focusable.at(-1);\n prevNode.focus();\n }\n },\n /**\n * Handle arrow navigation via <Picker>'s handlers with scroll bug fix\n *\n * @param {'onArrowLeft' | 'onArrowRight' | 'onArrowDown' | 'onArrowUp'} originalHandlerName - Picker's arrow keydown handler name\n * @param {KeyboardEvent} event - Keyboard event\n */\n async callPickerArrowHandlerWithScrollFix(originalHandlerName, event) {\n this.$refs.picker[originalHandlerName](event);\n await this.$nextTick();\n const selectedEmoji = this.$refs.picker.$el.querySelector(\".emoji-mart-emoji-selected\");\n selectedEmoji?.scrollIntoView({\n block: \"center\",\n inline: \"center\"\n });\n }\n }\n};\nconst _hoisted_1 = { class: \"nc-emoji-picker-container\" };\nconst _hoisted_2 = { class: \"search__wrapper\" };\nconst _hoisted_3 = { class: \"emoji-mart-category-label\" };\nconst _hoisted_4 = { class: \"emoji-mart-category-label\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcTextField = resolveComponent(\"NcTextField\");\n const _component_IconCircle = resolveComponent(\"IconCircle\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_NcColorPicker = resolveComponent(\"NcColorPicker\");\n const _component_Emoji = resolveComponent(\"Emoji\");\n const _component_Picker = resolveComponent(\"Picker\");\n const _component_NcPopover = resolveComponent(\"NcPopover\");\n return openBlock(), createBlock(_component_NcPopover, {\n ref: \"popover\",\n shown: $data.open,\n \"onUpdate:shown\": _cache[6] || (_cache[6] = ($event) => $data.open = $event),\n container: $props.container,\n \"popup-role\": \"dialog\",\n \"no-focus-trap\": true,\n onAfterShow: $options.afterShow,\n onAfterHide: $options.afterHide\n }, {\n trigger: withCtx((slotProps) => [\n renderSlot(_ctx.$slots, \"default\", normalizeProps(guardReactiveProps(slotProps)), void 0, true)\n ]),\n default: withCtx(() => [\n createElementVNode(\"div\", _hoisted_1, [\n createVNode(_component_Picker, mergeProps({\n ref: \"picker\",\n color: \"var(--color-primary-element)\",\n data: $setup.emojiIndex,\n emoji: $props.previewFallbackEmoji,\n i18n: $setup.i18n,\n native: $options.native,\n \"emoji-size\": 20,\n \"per-line\": 8,\n \"picker-styles\": { width: \"320px\" },\n \"show-preview\": $props.showPreview,\n skin: $data.currentSkinTone,\n \"show-skin-tones\": false,\n title: $props.previewFallbackName,\n role: \"dialog\",\n \"aria-modal\": \"true\",\n \"aria-label\": $options.t(\"Emoji picker\")\n }, _ctx.$attrs, {\n onKeydown: withKeys(withModifiers($options.handleTabNavigationSkippingEmojis, [\"prevent\"]), [\"tab\"]),\n onSelect: $options.select\n }), createSlots({\n searchTemplate: withCtx(({ onSearch }) => [\n createElementVNode(\"div\", _hoisted_2, [\n createVNode(_component_NcTextField, {\n ref: \"search\",\n modelValue: $data.search,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.search = $event),\n ($event) => onSearch($data.search)\n ],\n class: \"search\",\n label: $options.t(\"Search\"),\n \"label-visible\": true,\n placeholder: $setup.i18n.search,\n \"trailing-button-icon\": \"close\",\n \"trailing-button-label\": $options.t(\"Clear search\"),\n \"show-trailing-button\": $data.search !== \"\",\n onKeydown: [\n _cache[1] || (_cache[1] = withKeys(($event) => $options.callPickerArrowHandlerWithScrollFix(\"onArrowLeft\", $event), [\"left\"])),\n _cache[2] || (_cache[2] = withKeys(($event) => $options.callPickerArrowHandlerWithScrollFix(\"onArrowRight\", $event), [\"right\"])),\n _cache[3] || (_cache[3] = withKeys(($event) => $options.callPickerArrowHandlerWithScrollFix(\"onArrowDown\", $event), [\"down\"])),\n _cache[4] || (_cache[4] = withKeys(($event) => $options.callPickerArrowHandlerWithScrollFix(\"onArrowUp\", $event), [\"up\"])),\n _cache[5] || (_cache[5] = withKeys(($event) => _ctx.$refs.picker.onEnter($event), [\"enter\"]))\n ],\n onTrailingButtonClick: ($event) => {\n $options.clearSearch();\n onSearch(\"\");\n }\n }, null, 8, [\"modelValue\", \"label\", \"placeholder\", \"trailing-button-label\", \"show-trailing-button\", \"onTrailingButtonClick\", \"onUpdate:modelValue\"]),\n createVNode(_component_NcColorPicker, {\n \"palette-only\": \"\",\n container: $props.container,\n palette: $setup.skinTonePalette,\n \"model-value\": $data.currentColor.color,\n \"onUpdate:modelValue\": $options.onChangeSkinTone\n }, {\n default: withCtx(() => [\n createVNode(_component_NcButton, {\n \"aria-label\": $options.t(\"Skin tone\"),\n variant: \"tertiary-no-background\"\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconCircle, {\n style: normalizeStyle({ color: $data.currentColor.color }),\n title: $data.currentColor.name,\n size: 20\n }, null, 8, [\"style\", \"title\"])\n ]),\n _: 1\n }, 8, [\"aria-label\"])\n ]),\n _: 1\n }, 8, [\"container\", \"palette\", \"model-value\", \"onUpdate:modelValue\"])\n ])\n ]),\n _: 2\n }, [\n $props.allowUnselect && $props.selectedEmoji ? {\n name: \"customCategory\",\n fn: withCtx(() => [\n createElementVNode(\"div\", _hoisted_3, [\n createElementVNode(\"h3\", _hoisted_4, toDisplayString($options.t(\"Selected\")), 1)\n ]),\n createVNode(_component_Emoji, {\n class: \"emoji-selected\",\n data: $setup.emojiIndex,\n emoji: $props.selectedEmoji,\n native: \"\",\n size: 32,\n onClick: $options.unselect\n }, null, 8, [\"data\", \"emoji\", \"onClick\"]),\n createVNode(_component_Emoji, {\n class: \"emoji-delete\",\n data: $setup.emojiIndex,\n emoji: \":x:\",\n native: \"\",\n size: 10,\n onClick: $options.unselect\n }, null, 8, [\"data\", \"onClick\"])\n ]),\n key: \"0\"\n } : void 0\n ]), 1040, [\"data\", \"emoji\", \"i18n\", \"native\", \"show-preview\", \"skin\", \"title\", \"aria-label\", \"onKeydown\", \"onSelect\"])\n ])\n ]),\n _: 3\n }, 8, [\"shown\", \"container\", \"onAfterShow\", \"onAfterHide\"]);\n}\nconst NcEmojiPicker = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-f2f99131\"]]);\nexport {\n NcEmojiPicker as N\n};\n//# sourceMappingURL=NcEmojiPicker-CReazifM.mjs.map\n","import { d as mdiCheck, e as mdiContentCopy } from \"./mdi-CpchYUUV.mjs\";\nimport { ref, computed, toValue } from \"vue\";\nimport { r as register, e as t22, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nregister(t22);\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst DELAY = 2e3;\nfunction useCopy(content) {\n const isCopied = ref(false);\n const icon = computed(() => isCopied.value ? mdiCheck : mdiContentCopy);\n const altText = computed(() => isCopied.value ? t(\"Copied\") : t(\"Copy to clipboard\"));\n async function copy() {\n if (isCopied.value) {\n return;\n }\n const value = toValue(content);\n try {\n await navigator.clipboard.writeText(value);\n } catch {\n prompt(\"\", value);\n }\n isCopied.value = true;\n setTimeout(() => {\n isCopied.value = false;\n }, DELAY);\n }\n return {\n isCopied,\n copy,\n icon,\n altText\n };\n}\nexport {\n useCopy as u\n};\n//# sourceMappingURL=useCopy-D4CcMqlA.mjs.map\n","import '../assets/NcKbd-BGW1_Jb7.css';\nimport { defineComponent, computed, createElementBlock, openBlock, normalizeClass, renderSlot, createTextVNode, toDisplayString } from \"vue\";\nimport { r as register, o as t7, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { i as isMac } from \"./platform-CC2ecGvV.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t7);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcKbd\",\n props: {\n symbol: { default: () => void 0 },\n mac: { type: Boolean, default: () => isMac }\n },\n setup(__props) {\n const labels = computed(() => ({\n ArrowUp: \"↑\",\n ArrowDown: \"↓\",\n ArrowLeft: \"←\",\n ArrowRight: \"→\",\n Control: !__props.mac ? t(\"Ctrl\") : \"⌘\",\n Alt: !__props.mac ? t(\"Alt\") : \"⌥\",\n Shift: !__props.mac ? t(\"Shift\") : \"⇧\",\n Enter: !__props.mac ? t(\"Enter\") : \"⏎\",\n Tab: !__props.mac ? t(\"Tab\") : \"⇥\",\n Delete: !__props.mac ? t(\"Delete\") : \"⌫\",\n Escape: !__props.mac ? t(\"Escape\") : \"⎋\",\n Space: t(\"Space\")\n // TRANSLATORS: Space key on keyboard\n }));\n const label = computed(() => __props.symbol && labels.value[__props.symbol] || __props.symbol);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"kbd\", {\n class: normalizeClass(_ctx.$style.kbd)\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(label.value), 1)\n ])\n ], 2);\n };\n }\n});\nconst kbd = \"_kbd_lf0a1_20\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_lf0a1_12\",\n kbd\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcKbd = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcKbd as N\n};\n//# sourceMappingURL=NcKbd-CZdynD1d.mjs.map\n","import '../assets/NcHotkeyList-gAZN0WIu.css';\nimport { defineComponent, createElementBlock, openBlock, normalizeClass, createElementVNode, toDisplayString, unref, renderSlot } from \"vue\";\nimport { r as register, p as t31, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t31);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcHotkeyList\",\n props: {\n label: { default: () => void 0 }\n },\n setup(__props) {\n const labelId = `NcHotkeyList_${createElementId()}`;\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass(_ctx.$style.hotkeyList)\n }, [\n createElementVNode(\"div\", {\n id: labelId,\n class: normalizeClass([_ctx.$style.hotkeyList__heading, { \"hidden-visually\": !_ctx.label }])\n }, toDisplayString(_ctx.label || unref(t)(\"Keyboard shortcuts\")), 3),\n createElementVNode(\"ul\", { \"aria-labelledby\": labelId }, [\n renderSlot(_ctx.$slots, \"default\")\n ])\n ], 2);\n };\n }\n});\nconst hotkeyList = \"_hotkeyList_pf97p_2\";\nconst hotkeyList__heading = \"_hotkeyList__heading_pf97p_6\";\nconst style0 = {\n hotkeyList,\n hotkeyList__heading\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcHotkeyList = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcHotkeyList as N\n};\n//# sourceMappingURL=NcHotkeyList-67NnF26Y.mjs.map\n","import '../assets/NcProgressBar-BAPOXMAL.css';\nimport { defineComponent, useCssVars, computed, createElementBlock, openBlock, normalizeClass, createElementVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"aria-valuenow\"];\nconst _hoisted_2 = [\"height\", \"width\"];\nconst _hoisted_3 = [\"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-width\", \"r\", \"cx\", \"cy\"];\nconst _hoisted_4 = [\"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-width\", \"r\", \"cx\", \"cy\"];\nconst _hoisted_5 = [\"value\"];\nconst gridBaseline = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-grid-baseline\"));\nconst clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-clickable-area\"));\nconst clickableAreaSmall = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--clickable-area-small\"));\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcProgressBar\",\n props: {\n value: { default: 0 },\n size: { default: \"small\" },\n error: { type: Boolean },\n type: { default: \"linear\" },\n color: { default: \"var(--color-primary-element)\" }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"0a7905e8\": _ctx.color,\n \"d7eb5974\": heightPx.value\n }));\n const props = __props;\n const normalizedProgress = computed(() => Math.max(0, Math.min(100, props.value)) / 100);\n const height = computed(() => {\n if (typeof props.size === \"number\") {\n return Math.round(props.size);\n }\n if (props.type === \"circular\") {\n if (props.size === \"medium\") {\n return clickableArea;\n } else {\n return clickableAreaSmall;\n }\n }\n if (props.size === \"medium\") {\n return 1.5 * gridBaseline;\n }\n return gridBaseline;\n });\n const heightPx = computed(() => `${height.value}px`);\n const strokeWidth = computed(() => Math.max(gridBaseline, height.value / clickableArea * gridBaseline));\n const circleCenterPosition = computed(() => height.value / 2);\n const circleRadius = computed(() => height.value / 2 - strokeWidth.value);\n const circumference = computed(() => circleRadius.value * 2 * Math.PI);\n return (_ctx, _cache) => {\n return _ctx.type === \"circular\" ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n role: \"progressbar\",\n \"aria-valuenow\": _ctx.value,\n class: normalizeClass([{ \"progress-bar--error\": _ctx.error }, \"progress-bar progress-bar--circular\"])\n }, [\n (openBlock(), createElementBlock(\"svg\", {\n height: height.value,\n width: height.value\n }, [\n createElementVNode(\"circle\", {\n stroke: \"currentColor\",\n fill: \"transparent\",\n \"stroke-dasharray\": `${normalizedProgress.value * circumference.value} ${(1 - normalizedProgress.value) * circumference.value}`,\n \"stroke-dashoffset\": 0.25 * circumference.value,\n \"stroke-width\": strokeWidth.value,\n r: circleRadius.value,\n cx: circleCenterPosition.value,\n cy: circleCenterPosition.value\n }, null, 8, _hoisted_3),\n createElementVNode(\"circle\", {\n stroke: \"var(--color-background-darker)\",\n fill: \"transparent\",\n \"stroke-dasharray\": `${(1 - normalizedProgress.value) * circumference.value} ${normalizedProgress.value * circumference.value}`,\n \"stroke-dashoffset\": (0.25 - normalizedProgress.value) * circumference.value,\n \"stroke-width\": strokeWidth.value,\n r: circleRadius.value,\n cx: circleCenterPosition.value,\n cy: circleCenterPosition.value\n }, null, 8, _hoisted_4)\n ], 8, _hoisted_2))\n ], 10, _hoisted_1)) : (openBlock(), createElementBlock(\"progress\", {\n key: 1,\n class: normalizeClass([\"progress-bar progress-bar--linear vue\", { \"progress-bar--error\": _ctx.error }]),\n value: _ctx.value,\n max: \"100\"\n }, null, 10, _hoisted_5));\n };\n }\n});\nconst NcProgressBar = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-38ba4aa1\"]]);\nexport {\n NcProgressBar as N\n};\n//# sourceMappingURL=NcProgressBar-DDMAo4h-.mjs.map\n","import '../assets/NcRelatedResourcesPanel-DYB-wrU0.css';\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { r as register, S as t38, a as t, T as t41, U as t9 } from \"./_l10n-CgsPi8nC.mjs\";\nimport { N as NcButton } from \"./NcButton-CzpKEx4V.mjs\";\nimport { g as getRoute } from \"./autolink-U5pBzLgI.mjs\";\nimport { resolveComponent, createElementBlock, openBlock, createVNode, withCtx, createTextVNode, toDisplayString, createElementVNode, mergeProps, createCommentVNode, Fragment, renderList, createBlock } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { C as ChevronDown } from \"./ChevronDown-FiGpp0KT.mjs\";\nimport { C as ChevronUp } from \"./ChevronUp-DPXFp1ss.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nregister(t38);\nconst _sfc_main$4 = {\n name: \"NcResource\",\n components: {\n NcButton\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n icon: {\n type: String,\n required: true\n },\n name: {\n type: String,\n required: true\n },\n url: {\n type: String,\n required: true\n }\n },\n data() {\n return {\n labelTranslated: t('Open link to \"{resourceName}\"', { resourceName: this.name })\n };\n },\n computed: {\n route() {\n return getRoute(this.$router, this.url);\n }\n },\n methods: {\n t\n }\n};\nconst _hoisted_1$4 = { class: \"resource\" };\nconst _hoisted_2$4 = { class: \"resource__icon\" };\nconst _hoisted_3$3 = [\"src\"];\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcButton = resolveComponent(\"NcButton\");\n return openBlock(), createElementBlock(\"li\", _hoisted_1$4, [\n createVNode(_component_NcButton, {\n class: \"resource__button\",\n \"aria-label\": $data.labelTranslated,\n to: $options.route,\n href: $options.route ? null : $props.url,\n variant: \"tertiary\"\n }, {\n icon: withCtx(() => [\n createElementVNode(\"div\", _hoisted_2$4, [\n createElementVNode(\"img\", { src: $props.icon }, null, 8, _hoisted_3$3)\n ])\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString($props.name), 1)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"to\", \"href\"])\n ]);\n}\nconst NcResource = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$4], [\"__scopeId\", \"data-v-8db55138\"]]);\nconst _sfc_main$3 = {\n name: \"AccountGroupIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$3 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$3 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon account-group-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$3))\n ], 16, _hoisted_1$3);\n}\nconst AccountGroup = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\n name: \"OpenInNewIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$2 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon open-in-new-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$2);\n}\nconst OpenInNew = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nregister(t41);\nconst teamResourceProviders = getCapabilities()?.circles?.teamResourceProviders ?? [];\nconst _sfc_main$1 = {\n name: \"NcTeamResources\",\n components: {\n AccountGroup,\n ChevronDown,\n ChevronUp,\n OpenInNew,\n NcButton,\n NcIconSvgWrapper\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n providerId: {\n type: String,\n default: null\n },\n itemId: {\n type: [String, Number],\n default: null\n }\n },\n data() {\n return {\n appEnabled: OC?.appswebroots?.circles !== void 0 && (OC.config.version.split(\".\")[0] ?? 0) >= 29,\n loading: false,\n teamResources: null,\n teamOpen: []\n };\n },\n computed: {\n isVisible() {\n return !this.loading && this.teamResources?.length > 0;\n },\n teamProviders() {\n return (teamId) => {\n const team = this.teamResources.find((t2) => t2.teamId === teamId);\n return team.resources?.reduce((acc, resource) => {\n if (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n return acc;\n }\n if (!acc[resource.provider.id]) {\n acc[resource.provider.id] = resource.provider;\n acc[resource.provider.id].resources = [];\n }\n if (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n return acc;\n }\n acc[resource.provider.id].resources.push(resource);\n return acc;\n }, {});\n };\n },\n open() {\n return (teamId) => {\n return this.teamOpen.indexOf(teamId) !== -1;\n };\n }\n },\n watch: {\n providerId() {\n this.fetchTeamResources();\n },\n itemId() {\n this.fetchTeamResources();\n }\n },\n created() {\n this.fetchTeamResources();\n },\n methods: {\n t,\n async fetchTeamResources() {\n if (!teamResourceProviders.includes(this.providerId)) {\n return;\n }\n try {\n this.loading = true;\n const response = await axios.get(generateOcsUrl(`/teams/resources/${this.providerId}/${this.itemId}`));\n this.teamResources = response.data.ocs.data.teams;\n this.teamOpen = [this.teamResources[0]?.teamId];\n } catch (error) {\n this.teamResources = null;\n logger.error(\"[NcTeamResources] Failed to fetch resources\", { error });\n } finally {\n this.loading = false;\n }\n },\n toggleOpen(teamId, open) {\n if (open) {\n this.teamOpen.push(teamId);\n } else {\n this.teamOpen.splice(this.teamOpen.indexOf(teamId), 1);\n }\n }\n }\n};\nconst _hoisted_1$1 = {\n key: 0,\n class: \"team-resources\"\n};\nconst _hoisted_2$1 = { class: \"team-resources__header\" };\nconst _hoisted_3 = [\"open\", \"onToggle\"];\nconst _hoisted_4 = { class: \"related-team__header\" };\nconst _hoisted_5 = { class: \"related-team__name\" };\nconst _hoisted_6 = { key: 0 };\nconst _hoisted_7 = [\"href\"];\nconst _hoisted_8 = {\n key: 0,\n class: \"resource__icon\"\n};\nconst _hoisted_9 = {\n key: 2,\n class: \"resource__icon\"\n};\nconst _hoisted_10 = [\"src\"];\nconst _hoisted_11 = { class: \"resource__name\" };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_AccountGroup = resolveComponent(\"AccountGroup\");\n const _component_OpenInNew = resolveComponent(\"OpenInNew\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_ChevronUp = resolveComponent(\"ChevronUp\");\n const _component_ChevronDown = resolveComponent(\"ChevronDown\");\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n return $data.appEnabled && $options.isVisible ? (openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createElementVNode(\"h5\", _hoisted_2$1, toDisplayString($options.t(\"Related team resources\")), 1),\n (openBlock(true), createElementBlock(Fragment, null, renderList($data.teamResources, (team) => {\n return openBlock(), createElementBlock(\"details\", {\n key: team.teamId,\n name: \"Team resources\",\n class: \"related-team\",\n open: $options.open(team.teamId),\n onToggle: (event) => $options.toggleOpen(team.teamId, event.target.open)\n }, [\n createElementVNode(\"summary\", _hoisted_4, [\n createElementVNode(\"h5\", _hoisted_5, [\n createVNode(_component_AccountGroup, { size: 20 }),\n createTextVNode(\" \" + toDisplayString(team.displayName), 1)\n ]),\n createVNode(_component_NcButton, {\n \"aria-label\": $options.t(\"View team\"),\n href: team.link,\n title: $options.t(\"View team\"),\n variant: \"tertiary\"\n }, {\n icon: withCtx(() => [\n createVNode(_component_OpenInNew, { size: 20 })\n ]),\n _: 2\n }, 1032, [\"aria-label\", \"href\", \"title\"]),\n $options.open(team.teamId) ? (openBlock(), createBlock(_component_ChevronUp, {\n key: 0,\n size: 20\n })) : (openBlock(), createBlock(_component_ChevronDown, {\n key: 1,\n size: 20\n }))\n ]),\n createElementVNode(\"div\", null, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.teamProviders(team.teamId), (provider) => {\n return openBlock(), createElementBlock(\"div\", {\n key: provider.id,\n class: \"related-team-provider\"\n }, [\n provider.resources.length > 0 ? (openBlock(), createElementBlock(\"h6\", _hoisted_6, toDisplayString(provider.name), 1)) : createCommentVNode(\"\", true),\n createElementVNode(\"ul\", null, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(provider.resources, (resource) => {\n return openBlock(), createElementBlock(\"li\", {\n key: resource.url,\n class: \"related-team-resource\"\n }, [\n createElementVNode(\"a\", {\n href: resource.url,\n class: \"related-team-resource__link\"\n }, [\n resource.iconEmoji ? (openBlock(), createElementBlock(\"span\", _hoisted_8, toDisplayString(resource.iconEmoji), 1)) : resource.iconSvg ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 1,\n class: \"resource__icon\",\n svg: resource.iconSvg,\n size: 20\n }, null, 8, [\"svg\"])) : resource.iconURL ? (openBlock(), createElementBlock(\"span\", _hoisted_9, [\n createElementVNode(\"img\", {\n src: resource.iconURL,\n alt: \"\"\n }, null, 8, _hoisted_10)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_11, toDisplayString(resource.label), 1)\n ], 8, _hoisted_7)\n ]);\n }), 128))\n ])\n ]);\n }), 128))\n ])\n ], 40, _hoisted_3);\n }), 128))\n ])) : createCommentVNode(\"\", true);\n}\nconst NcTeamResources = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-a0203ee5\"]]);\nregister(t9);\nconst _sfc_main = {\n name: \"NcRelatedResourcesPanel\",\n components: {\n NcResource,\n NcTeamResources\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * The provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n */\n providerId: {\n type: String,\n default: null\n },\n /**\n * The item id which uniquely identities the e.g. Calendar event, Deck board, file, Talk room, etc.\n */\n itemId: {\n type: [String, Number],\n default: null\n },\n /**\n * Limits to specific resource type. i.e. any provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n */\n resourceType: {\n type: String,\n default: \"\"\n },\n /**\n * Set the maximum number of resources to load\n */\n limit: {\n type: Number,\n default: 0\n },\n /**\n * Only used by the files sidebar\n *\n * File info is passed when registered with `OCA.Sharing.ShareTabSections.registerSection()`\n */\n fileInfo: {\n type: Object,\n default: null\n },\n /**\n * Make the header name dynamic\n */\n header: {\n type: String,\n default: t(\"Related resources\")\n },\n description: {\n type: String,\n default: t(\"Anything shared with the same group of people will show up here\")\n },\n /**\n * If this element is used on a primary element set to true for primary styling.\n */\n primary: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"hasError\",\n \"hasResources\"\n ],\n data() {\n return {\n appEnabled: OC?.appswebroots?.related_resources !== void 0,\n loading: false,\n error: null,\n resources: []\n };\n },\n computed: {\n isVisible() {\n if (this.loading) {\n return false;\n }\n return this.error ?? this.resources.length > 0;\n },\n subline() {\n if (this.error) {\n return t(\"Error getting related resources. Please contact your system administrator if you have any questions.\");\n }\n return this.description;\n },\n hasResourceInfo() {\n if (this.providerId !== null && this.itemId !== null) {\n return true;\n }\n if (this.fileInfo !== null) {\n return true;\n }\n return false;\n },\n isFiles() {\n return this.fileInfo?.id !== void 0;\n },\n url() {\n let providerId = null;\n let itemId = null;\n if (this.isFiles) {\n providerId = \"files\";\n itemId = this.fileInfo.id;\n } else {\n providerId = this.providerId;\n itemId = this.itemId;\n }\n return generateOcsUrl(\"/apps/related_resources/related/{providerId}?itemId={itemId}&resourceType={resourceType}&limit={limit}&format=json\", {\n providerId,\n itemId,\n resourceType: this.resourceType,\n limit: this.limit\n });\n }\n },\n watch: {\n providerId() {\n this.fetchRelatedResources();\n },\n itemId() {\n this.fetchRelatedResources();\n },\n fileInfo() {\n this.fetchRelatedResources();\n },\n error(error) {\n this.$emit(\"hasError\", Boolean(error));\n },\n resources(resources) {\n this.$emit(\"hasResources\", resources.length > 0);\n }\n },\n created() {\n this.fetchRelatedResources();\n },\n methods: {\n t,\n async fetchRelatedResources() {\n if (!this.appEnabled || !this.hasResourceInfo) {\n return;\n }\n this.loading = true;\n this.error = null;\n this.resources = [];\n try {\n const response = await axios.get(this.url);\n this.resources = response.data.ocs?.data;\n } catch (error) {\n this.error = error;\n logger.error(\"[NcRelatedResourcesPanel] Failed to fetch resources\", { error });\n } finally {\n this.loading = false;\n }\n }\n }\n};\nconst _hoisted_1 = {\n key: 0,\n class: \"related-resources\"\n};\nconst _hoisted_2 = { class: \"related-resources__header\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcTeamResources = resolveComponent(\"NcTeamResources\");\n const _component_NcResource = resolveComponent(\"NcResource\");\n return openBlock(), createElementBlock(\"div\", null, [\n createVNode(_component_NcTeamResources, {\n \"provider-id\": $props.providerId,\n \"item-id\": $props.itemId\n }, null, 8, [\"provider-id\", \"item-id\"]),\n $data.appEnabled && $options.isVisible ? (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createElementVNode(\"div\", _hoisted_2, [\n createElementVNode(\"h5\", null, toDisplayString($props.header), 1),\n createElementVNode(\"p\", null, toDisplayString($options.subline), 1)\n ]),\n (openBlock(true), createElementBlock(Fragment, null, renderList($data.resources, (resource) => {\n return openBlock(), createBlock(_component_NcResource, {\n key: resource.itemId,\n class: \"related-resources__entry\",\n icon: resource.icon,\n name: resource.title,\n url: resource.url\n }, null, 8, [\"icon\", \"name\", \"url\"]);\n }), 128))\n ])) : createCommentVNode(\"\", true)\n ]);\n}\nconst NcRelatedResourcesPanel = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-551fe92c\"]]);\nexport {\n NcRelatedResourcesPanel as N\n};\n//# sourceMappingURL=NcRelatedResourcesPanel-Dtxd3-o1.mjs.map\n","if (!Array.prototype.find) {\n Array.prototype.find = function(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined')\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function')\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value\n }\n }\n return undefined\n };\n}\n\nif (window && typeof window.CustomEvent !== \"function\") {\n function CustomEvent$1(event, params) {\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt\n }\n\n if (typeof window.Event !== 'undefined') {\n CustomEvent$1.prototype = window.Event.prototype;\n }\n\n window.CustomEvent = CustomEvent$1;\n}\n\nclass TributeEvents {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.events = this;\n }\n\n static keys() {\n return [\n {\n key: 9,\n value: \"TAB\"\n },\n {\n key: 8,\n value: \"DELETE\"\n },\n {\n key: 13,\n value: \"ENTER\"\n },\n {\n key: 27,\n value: \"ESCAPE\"\n },\n {\n key: 32,\n value: \"SPACE\"\n },\n {\n key: 38,\n value: \"UP\"\n },\n {\n key: 40,\n value: \"DOWN\"\n }\n ];\n }\n\n bind(element) {\n element.boundKeydown = this.keydown.bind(element, this);\n element.boundKeyup = this.keyup.bind(element, this);\n element.boundInput = this.input.bind(element, this);\n\n element.addEventListener(\"keydown\", element.boundKeydown, false);\n element.addEventListener(\"keyup\", element.boundKeyup, false);\n element.addEventListener(\"input\", element.boundInput, false);\n }\n\n unbind(element) {\n element.removeEventListener(\"keydown\", element.boundKeydown, false);\n element.removeEventListener(\"keyup\", element.boundKeyup, false);\n element.removeEventListener(\"input\", element.boundInput, false);\n\n delete element.boundKeydown;\n delete element.boundKeyup;\n delete element.boundInput;\n }\n\n keydown(instance, event) {\n if (instance.shouldDeactivate(event)) {\n instance.tribute.isActive = false;\n instance.tribute.hideMenu();\n }\n\n let element = this;\n instance.commandEvent = false;\n\n TributeEvents.keys().forEach(o => {\n if (o.key === event.keyCode) {\n instance.commandEvent = true;\n instance.callbacks()[o.value.toLowerCase()](event, element);\n }\n });\n }\n\n input(instance, event) {\n instance.inputEvent = true;\n instance.keyup.call(this, instance, event);\n }\n\n click(instance, event) {\n let tribute = instance.tribute;\n if (tribute.menu && tribute.menu.contains(event.target)) {\n let li = event.target;\n event.preventDefault();\n event.stopPropagation();\n while (li.nodeName.toLowerCase() !== \"li\") {\n li = li.parentNode;\n if (!li || li === tribute.menu) {\n throw new Error(\"cannot find the <li> container for the click\");\n }\n }\n tribute.selectItemAtIndex(li.getAttribute(\"data-index\"), event);\n tribute.hideMenu();\n\n // TODO: should fire with externalTrigger and target is outside of menu\n } else if (tribute.current.element && !tribute.current.externalTrigger) {\n tribute.current.externalTrigger = false;\n setTimeout(() => tribute.hideMenu());\n }\n }\n\n keyup(instance, event) {\n if (instance.inputEvent) {\n instance.inputEvent = false;\n }\n instance.updateSelection(this);\n\n if (event.keyCode === 27) return;\n\n if (!instance.tribute.allowSpaces && instance.tribute.hasTrailingSpace) {\n instance.tribute.hasTrailingSpace = false;\n instance.commandEvent = true;\n instance.callbacks()[\"space\"](event, this);\n return;\n }\n\n if (!instance.tribute.isActive) {\n if (instance.tribute.autocompleteMode) {\n instance.callbacks().triggerChar(event, this, \"\");\n } else {\n let keyCode = instance.getKeyCode(instance, this, event);\n\n if (isNaN(keyCode) || !keyCode) return;\n\n let trigger = instance.tribute.triggers().find(trigger => {\n return trigger.charCodeAt(0) === keyCode;\n });\n\n if (typeof trigger !== \"undefined\") {\n instance.callbacks().triggerChar(event, this, trigger);\n }\n }\n }\n\n if (\n instance.tribute.current.mentionText.length <\n instance.tribute.current.collection.menuShowMinLength\n ) {\n return;\n }\n\n if (\n ((instance.tribute.current.trigger ||\n instance.tribute.autocompleteMode) &&\n instance.commandEvent === false) ||\n (instance.tribute.isActive && event.keyCode === 8)\n ) {\n instance.tribute.showMenuFor(this, true);\n }\n }\n\n shouldDeactivate(event) {\n if (!this.tribute.isActive) return false;\n\n if (this.tribute.current.mentionText.length === 0) {\n let eventKeyPressed = false;\n TributeEvents.keys().forEach(o => {\n if (event.keyCode === o.key) eventKeyPressed = true;\n });\n\n return !eventKeyPressed;\n }\n\n return false;\n }\n\n getKeyCode(instance, el, event) {\n let tribute = instance.tribute;\n let info = tribute.range.getTriggerInfo(\n false,\n tribute.hasTrailingSpace,\n true,\n tribute.allowSpaces,\n tribute.autocompleteMode\n );\n\n if (info) {\n return info.mentionTriggerChar.charCodeAt(0);\n } else {\n return false;\n }\n }\n\n updateSelection(el) {\n this.tribute.current.element = el;\n let info = this.tribute.range.getTriggerInfo(\n false,\n this.tribute.hasTrailingSpace,\n true,\n this.tribute.allowSpaces,\n this.tribute.autocompleteMode\n );\n\n if (info) {\n this.tribute.current.selectedPath = info.mentionSelectedPath;\n this.tribute.current.mentionText = info.mentionText;\n this.tribute.current.selectedOffset = info.mentionSelectedOffset;\n }\n }\n\n callbacks() {\n return {\n triggerChar: (e, el, trigger) => {\n let tribute = this.tribute;\n tribute.current.trigger = trigger;\n\n let collectionItem = tribute.collection.find(item => {\n return item.trigger === trigger;\n });\n\n tribute.current.collection = collectionItem;\n\n if (\n tribute.current.mentionText.length >=\n tribute.current.collection.menuShowMinLength &&\n tribute.inputEvent\n ) {\n tribute.showMenuFor(el, true);\n }\n },\n enter: (e, el) => {\n // choose selection\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n setTimeout(() => {\n this.tribute.selectItemAtIndex(this.tribute.menuSelected, e);\n this.tribute.hideMenu();\n }, 0);\n }\n },\n escape: (e, el) => {\n if (this.tribute.isActive) {\n e.preventDefault();\n e.stopPropagation();\n this.tribute.isActive = false;\n this.tribute.hideMenu();\n }\n },\n tab: (e, el) => {\n // choose first match\n this.callbacks().enter(e, el);\n },\n space: (e, el) => {\n if (this.tribute.isActive) {\n if (this.tribute.spaceSelectsMatch) {\n this.callbacks().enter(e, el);\n } else if (!this.tribute.allowSpaces) {\n e.stopPropagation();\n setTimeout(() => {\n this.tribute.hideMenu();\n this.tribute.isActive = false;\n }, 0);\n }\n }\n },\n up: (e, el) => {\n // navigate up ul\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n let count = this.tribute.current.filteredItems.length,\n selected = this.tribute.menuSelected;\n\n if (count > selected && selected > 0) {\n this.tribute.menuSelected--;\n this.setActiveLi();\n } else if (selected === 0) {\n this.tribute.menuSelected = count - 1;\n this.setActiveLi();\n this.tribute.menu.scrollTop = this.tribute.menu.scrollHeight;\n }\n }\n },\n down: (e, el) => {\n // navigate down ul\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n let count = this.tribute.current.filteredItems.length - 1,\n selected = this.tribute.menuSelected;\n\n if (count > selected) {\n this.tribute.menuSelected++;\n this.setActiveLi();\n } else if (count === selected) {\n this.tribute.menuSelected = 0;\n this.setActiveLi();\n this.tribute.menu.scrollTop = 0;\n }\n }\n },\n delete: (e, el) => {\n if (\n this.tribute.isActive &&\n this.tribute.current.mentionText.length < 1\n ) {\n this.tribute.hideMenu();\n } else if (this.tribute.isActive) {\n this.tribute.showMenuFor(el);\n }\n }\n };\n }\n\n setActiveLi(index) {\n let lis = this.tribute.menu.querySelectorAll(\"li\"),\n length = lis.length >>> 0;\n\n if (index) this.tribute.menuSelected = parseInt(index);\n\n for (let i = 0; i < length; i++) {\n let li = lis[i];\n if (i === this.tribute.menuSelected) {\n li.classList.add(this.tribute.current.collection.selectClass);\n\n let liClientRect = li.getBoundingClientRect();\n let menuClientRect = this.tribute.menu.getBoundingClientRect();\n\n if (liClientRect.bottom > menuClientRect.bottom) {\n let scrollDistance = liClientRect.bottom - menuClientRect.bottom;\n this.tribute.menu.scrollTop += scrollDistance;\n } else if (liClientRect.top < menuClientRect.top) {\n let scrollDistance = menuClientRect.top - liClientRect.top;\n this.tribute.menu.scrollTop -= scrollDistance;\n }\n } else {\n li.classList.remove(this.tribute.current.collection.selectClass);\n }\n }\n }\n\n getFullHeight(elem, includeMargin) {\n let height = elem.getBoundingClientRect().height;\n\n if (includeMargin) {\n let style = elem.currentStyle || window.getComputedStyle(elem);\n return (\n height + parseFloat(style.marginTop) + parseFloat(style.marginBottom)\n );\n }\n\n return height;\n }\n}\n\nclass TributeMenuEvents {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.menuEvents = this;\n this.menu = this.tribute.menu;\n }\n\n bind(menu) {\n this.menuClickEvent = this.tribute.events.click.bind(null, this);\n this.menuContainerScrollEvent = this.debounce(\n () => {\n if (this.tribute.isActive) {\n this.tribute.showMenuFor(this.tribute.current.element, false);\n }\n },\n 300,\n false\n );\n this.windowResizeEvent = this.debounce(\n () => {\n if (this.tribute.isActive) {\n this.tribute.range.positionMenuAtCaret(true);\n }\n },\n 300,\n false\n );\n\n // fixes IE11 issues with mousedown\n this.tribute.range\n .getDocument()\n .addEventListener(\"MSPointerDown\", this.menuClickEvent, false);\n this.tribute.range\n .getDocument()\n .addEventListener(\"mousedown\", this.menuClickEvent, false);\n window.addEventListener(\"resize\", this.windowResizeEvent);\n\n if (this.menuContainer) {\n this.menuContainer.addEventListener(\n \"scroll\",\n this.menuContainerScrollEvent,\n false\n );\n } else {\n window.addEventListener(\"scroll\", this.menuContainerScrollEvent);\n }\n }\n\n unbind(menu) {\n this.tribute.range\n .getDocument()\n .removeEventListener(\"mousedown\", this.menuClickEvent, false);\n this.tribute.range\n .getDocument()\n .removeEventListener(\"MSPointerDown\", this.menuClickEvent, false);\n window.removeEventListener(\"resize\", this.windowResizeEvent);\n\n if (this.menuContainer) {\n this.menuContainer.removeEventListener(\n \"scroll\",\n this.menuContainerScrollEvent,\n false\n );\n } else {\n window.removeEventListener(\"scroll\", this.menuContainerScrollEvent);\n }\n }\n\n debounce(func, wait, immediate) {\n var timeout;\n return () => {\n var context = this,\n args = arguments;\n var later = () => {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n }\n}\n\n// Thanks to https://github.com/jeff-collins/ment.io\n\nclass TributeRange {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.range = this;\n }\n\n getDocument() {\n let iframe;\n if (this.tribute.current.collection) {\n iframe = this.tribute.current.collection.iframe;\n }\n\n if (!iframe) {\n return document\n }\n\n return iframe.contentWindow.document\n }\n\n positionMenuAtCaret(scrollTo) {\n let context = this.tribute.current,\n coordinates;\n\n let info = this.getTriggerInfo(false, this.tribute.hasTrailingSpace, true, this.tribute.allowSpaces, this.tribute.autocompleteMode);\n\n if (typeof info !== 'undefined') {\n\n if(!this.tribute.positionMenu){\n this.tribute.menu.style.cssText = `display: block;`;\n return\n }\n\n if (!this.isContentEditable(context.element)) {\n coordinates = this.getTextAreaOrInputUnderlinePosition(this.tribute.current.element,\n info.mentionPosition);\n }\n else {\n coordinates = this.getContentEditableCaretPosition(info.mentionPosition);\n }\n\n this.tribute.menu.style.cssText = `top: ${coordinates.top}px;\n left: ${coordinates.left}px;\n right: ${coordinates.right}px;\n bottom: ${coordinates.bottom}px;\n position: absolute;\n display: block;`;\n\n if (coordinates.left === 'auto') {\n this.tribute.menu.style.left = 'auto';\n }\n\n if (coordinates.top === 'auto') {\n this.tribute.menu.style.top = 'auto';\n }\n\n if (scrollTo) this.scrollIntoView();\n\n window.setTimeout(() => {\n let menuDimensions = {\n width: this.tribute.menu.offsetWidth,\n height: this.tribute.menu.offsetHeight\n };\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n let menuIsOffScreenHorizontally = window.innerWidth > menuDimensions.width && (menuIsOffScreen.left || menuIsOffScreen.right);\n let menuIsOffScreenVertically = window.innerHeight > menuDimensions.height && (menuIsOffScreen.top || menuIsOffScreen.bottom);\n if (menuIsOffScreenHorizontally || menuIsOffScreenVertically) {\n this.tribute.menu.style.cssText = 'display: none';\n this.positionMenuAtCaret(scrollTo);\n }\n }, 0);\n\n } else {\n this.tribute.menu.style.cssText = 'display: none';\n }\n }\n\n get menuContainerIsBody() {\n return this.tribute.menuContainer === document.body || !this.tribute.menuContainer;\n }\n\n\n selectElement(targetElement, path, offset) {\n let range;\n let elem = targetElement;\n\n if (path) {\n for (var i = 0; i < path.length; i++) {\n elem = elem.childNodes[path[i]];\n if (elem === undefined) {\n return\n }\n while (elem.length < offset) {\n offset -= elem.length;\n elem = elem.nextSibling;\n }\n if (elem.childNodes.length === 0 && !elem.length) {\n elem = elem.previousSibling;\n }\n }\n }\n let sel = this.getWindowSelection();\n\n range = this.getDocument().createRange();\n range.setStart(elem, offset);\n range.setEnd(elem, offset);\n range.collapse(true);\n\n try {\n sel.removeAllRanges();\n } catch (error) {}\n\n sel.addRange(range);\n targetElement.focus();\n }\n\n replaceTriggerText(text, requireLeadingSpace, hasTrailingSpace, originalEvent, item) {\n let info = this.getTriggerInfo(true, hasTrailingSpace, requireLeadingSpace, this.tribute.allowSpaces, this.tribute.autocompleteMode);\n\n if (info !== undefined) {\n let context = this.tribute.current;\n let replaceEvent = new CustomEvent('tribute-replaced', {\n detail: {\n item: item,\n instance: context,\n context: info,\n event: originalEvent,\n }\n });\n\n if (!this.isContentEditable(context.element)) {\n let myField = this.tribute.current.element;\n let textSuffix = typeof this.tribute.replaceTextSuffix == 'string'\n ? this.tribute.replaceTextSuffix\n : ' ';\n text += textSuffix;\n let startPos = info.mentionPosition;\n let endPos = info.mentionPosition + info.mentionText.length + textSuffix.length;\n if (!this.tribute.autocompleteMode) {\n endPos += info.mentionTriggerChar.length - 1;\n }\n myField.value = myField.value.substring(0, startPos) + text +\n myField.value.substring(endPos, myField.value.length);\n myField.selectionStart = startPos + text.length;\n myField.selectionEnd = startPos + text.length;\n } else {\n // add a space to the end of the pasted text\n let textSuffix = typeof this.tribute.replaceTextSuffix == 'string'\n ? this.tribute.replaceTextSuffix\n : '\\xA0';\n text += textSuffix;\n let endPos = info.mentionPosition + info.mentionText.length;\n if (!this.tribute.autocompleteMode) {\n endPos += info.mentionTriggerChar.length;\n }\n this.pasteHtml(text, info.mentionPosition, endPos);\n }\n\n context.element.dispatchEvent(new CustomEvent('input', { bubbles: true }));\n context.element.dispatchEvent(replaceEvent);\n }\n }\n\n pasteHtml(html, startPos, endPos) {\n let range, sel;\n sel = this.getWindowSelection();\n range = this.getDocument().createRange();\n range.setStart(sel.anchorNode, startPos);\n range.setEnd(sel.anchorNode, endPos);\n range.deleteContents();\n\n let el = this.getDocument().createElement('div');\n el.innerHTML = html;\n let frag = this.getDocument().createDocumentFragment(),\n node, lastNode;\n while ((node = el.firstChild)) {\n lastNode = frag.appendChild(node);\n }\n range.insertNode(frag);\n\n // Preserve the selection\n if (lastNode) {\n range = range.cloneRange();\n range.setStartAfter(lastNode);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n }\n\n getWindowSelection() {\n if (this.tribute.collection.iframe) {\n return this.tribute.collection.iframe.contentWindow.getSelection()\n }\n\n return window.getSelection()\n }\n\n getNodePositionInParent(element) {\n if (element.parentNode === null) {\n return 0\n }\n\n for (var i = 0; i < element.parentNode.childNodes.length; i++) {\n let node = element.parentNode.childNodes[i];\n\n if (node === element) {\n return i\n }\n }\n }\n\n getContentEditableSelectedPath(ctx) {\n let sel = this.getWindowSelection();\n let selected = sel.anchorNode;\n let path = [];\n let offset;\n\n if (selected != null) {\n let i;\n let ce = selected.contentEditable;\n while (selected !== null && ce !== 'true') {\n i = this.getNodePositionInParent(selected);\n path.push(i);\n selected = selected.parentNode;\n if (selected !== null) {\n ce = selected.contentEditable;\n }\n }\n path.reverse();\n\n // getRangeAt may not exist, need alternative\n offset = sel.getRangeAt(0).startOffset;\n\n return {\n selected: selected,\n path: path,\n offset: offset\n }\n }\n }\n\n getTextPrecedingCurrentSelection() {\n let context = this.tribute.current,\n text = '';\n\n if (!this.isContentEditable(context.element)) {\n let textComponent = this.tribute.current.element;\n if (textComponent) {\n let startPos = textComponent.selectionStart;\n if (textComponent.value && startPos >= 0) {\n text = textComponent.value.substring(0, startPos);\n }\n }\n\n } else {\n let selectedElem = this.getWindowSelection().anchorNode;\n\n if (selectedElem != null) {\n let workingNodeContent = selectedElem.textContent;\n let selectStartOffset = this.getWindowSelection().getRangeAt(0).startOffset;\n\n if (workingNodeContent && selectStartOffset >= 0) {\n text = workingNodeContent.substring(0, selectStartOffset);\n }\n }\n }\n\n return text\n }\n\n getLastWordInText(text) {\n text = text.replace(/\\u00A0/g, ' '); // https://stackoverflow.com/questions/29850407/how-do-i-replace-unicode-character-u00a0-with-a-space-in-javascript\n let wordsArray = text.split(/\\s+/);\n let worldsCount = wordsArray.length - 1;\n return wordsArray[worldsCount].trim()\n }\n\n getTriggerInfo(menuAlreadyActive, hasTrailingSpace, requireLeadingSpace, allowSpaces, isAutocomplete) {\n let ctx = this.tribute.current;\n let selected, path, offset;\n\n if (!this.isContentEditable(ctx.element)) {\n selected = this.tribute.current.element;\n } else {\n let selectionInfo = this.getContentEditableSelectedPath(ctx);\n\n if (selectionInfo) {\n selected = selectionInfo.selected;\n path = selectionInfo.path;\n offset = selectionInfo.offset;\n }\n }\n\n let effectiveRange = this.getTextPrecedingCurrentSelection();\n let lastWordOfEffectiveRange = this.getLastWordInText(effectiveRange);\n\n if (isAutocomplete) {\n return {\n mentionPosition: effectiveRange.length - lastWordOfEffectiveRange.length,\n mentionText: lastWordOfEffectiveRange,\n mentionSelectedElement: selected,\n mentionSelectedPath: path,\n mentionSelectedOffset: offset\n }\n }\n\n if (effectiveRange !== undefined && effectiveRange !== null) {\n let mostRecentTriggerCharPos = -1;\n let triggerChar;\n\n this.tribute.collection.forEach(config => {\n let c = config.trigger;\n let idx = config.requireLeadingSpace ?\n this.lastIndexWithLeadingSpace(effectiveRange, c) :\n effectiveRange.lastIndexOf(c);\n\n if (idx > mostRecentTriggerCharPos) {\n mostRecentTriggerCharPos = idx;\n triggerChar = c;\n requireLeadingSpace = config.requireLeadingSpace;\n }\n });\n\n if (mostRecentTriggerCharPos >= 0 &&\n (\n mostRecentTriggerCharPos === 0 ||\n !requireLeadingSpace ||\n /[\\xA0\\s]/g.test(\n effectiveRange.substring(\n mostRecentTriggerCharPos - 1,\n mostRecentTriggerCharPos)\n )\n )\n ) {\n let currentTriggerSnippet = effectiveRange.substring(mostRecentTriggerCharPos + triggerChar.length,\n effectiveRange.length);\n\n triggerChar = effectiveRange.substring(mostRecentTriggerCharPos, mostRecentTriggerCharPos + triggerChar.length);\n let firstSnippetChar = currentTriggerSnippet.substring(0, 1);\n let leadingSpace = currentTriggerSnippet.length > 0 &&\n (\n firstSnippetChar === ' ' ||\n firstSnippetChar === '\\xA0'\n );\n if (hasTrailingSpace) {\n currentTriggerSnippet = currentTriggerSnippet.trim();\n }\n\n let regex = allowSpaces ? /[^\\S ]/g : /[\\xA0\\s]/g;\n\n this.tribute.hasTrailingSpace = regex.test(currentTriggerSnippet);\n\n if (!leadingSpace && (menuAlreadyActive || !(regex.test(currentTriggerSnippet)))) {\n return {\n mentionPosition: mostRecentTriggerCharPos,\n mentionText: currentTriggerSnippet,\n mentionSelectedElement: selected,\n mentionSelectedPath: path,\n mentionSelectedOffset: offset,\n mentionTriggerChar: triggerChar\n }\n }\n }\n }\n }\n\n lastIndexWithLeadingSpace (str, trigger) {\n let reversedStr = str.split('').reverse().join('');\n let index = -1;\n\n for (let cidx = 0, len = str.length; cidx < len; cidx++) {\n let firstChar = cidx === str.length - 1;\n let leadingSpace = /\\s/.test(reversedStr[cidx + 1]);\n\n let match = true;\n for (let triggerIdx = trigger.length - 1; triggerIdx >= 0; triggerIdx--) {\n if (trigger[triggerIdx] !== reversedStr[cidx-triggerIdx]) {\n match = false;\n break\n }\n }\n\n if (match && (firstChar || leadingSpace)) {\n index = str.length - 1 - cidx;\n break\n }\n }\n\n return index\n }\n\n isContentEditable(element) {\n return element.nodeName !== 'INPUT' && element.nodeName !== 'TEXTAREA'\n }\n\n isMenuOffScreen(coordinates, menuDimensions) {\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let menuTop = typeof coordinates.top === 'number' ? coordinates.top : windowTop + windowHeight - coordinates.bottom - menuDimensions.height;\n let menuRight = typeof coordinates.right === 'number' ? coordinates.right : coordinates.left + menuDimensions.width;\n let menuBottom = typeof coordinates.bottom === 'number' ? coordinates.bottom : coordinates.top + menuDimensions.height;\n let menuLeft = typeof coordinates.left === 'number' ? coordinates.left : windowLeft + windowWidth - coordinates.right - menuDimensions.width;\n\n return {\n top: menuTop < Math.floor(windowTop),\n right: menuRight > Math.ceil(windowLeft + windowWidth),\n bottom: menuBottom > Math.ceil(windowTop + windowHeight),\n left: menuLeft < Math.floor(windowLeft)\n }\n }\n\n getMenuDimensions() {\n // Width of the menu depends of its contents and position\n // We must check what its width would be without any obstruction\n // This way, we can achieve good positioning for flipping the menu\n let dimensions = {\n width: null,\n height: null\n };\n\n this.tribute.menu.style.cssText = `top: 0px;\n left: 0px;\n position: fixed;\n display: block;\n visibility; hidden;`;\n dimensions.width = this.tribute.menu.offsetWidth;\n dimensions.height = this.tribute.menu.offsetHeight;\n\n this.tribute.menu.style.cssText = `display: none;`;\n\n return dimensions\n }\n\n getTextAreaOrInputUnderlinePosition(element, position, flipped) {\n let properties = ['direction', 'boxSizing', 'width', 'height', 'overflowX',\n 'overflowY', 'borderTopWidth', 'borderRightWidth',\n 'borderBottomWidth', 'borderLeftWidth', 'paddingTop',\n 'paddingRight', 'paddingBottom', 'paddingLeft',\n 'fontStyle', 'fontVariant', 'fontWeight', 'fontStretch',\n 'fontSize', 'fontSizeAdjust', 'lineHeight', 'fontFamily',\n 'textAlign', 'textTransform', 'textIndent',\n 'textDecoration', 'letterSpacing', 'wordSpacing'\n ];\n\n let isFirefox = (window.mozInnerScreenX !== null);\n\n let div = this.getDocument().createElement('div');\n div.id = 'input-textarea-caret-position-mirror-div';\n this.getDocument().body.appendChild(div);\n\n let style = div.style;\n let computed = window.getComputedStyle ? getComputedStyle(element) : element.currentStyle;\n\n style.whiteSpace = 'pre-wrap';\n if (element.nodeName !== 'INPUT') {\n style.wordWrap = 'break-word';\n }\n\n // position off-screen\n style.position = 'absolute';\n style.visibility = 'hidden';\n\n // transfer the element's properties to the div\n properties.forEach(prop => {\n style[prop] = computed[prop];\n });\n\n if (isFirefox) {\n style.width = `${(parseInt(computed.width) - 2)}px`;\n if (element.scrollHeight > parseInt(computed.height))\n style.overflowY = 'scroll';\n } else {\n style.overflow = 'hidden';\n }\n\n div.textContent = element.value.substring(0, position);\n\n if (element.nodeName === 'INPUT') {\n div.textContent = div.textContent.replace(/\\s/g, ' ');\n }\n\n let span = this.getDocument().createElement('span');\n span.textContent = element.value.substring(position) || '.';\n div.appendChild(span);\n\n let rect = element.getBoundingClientRect();\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let top = 0;\n let left = 0;\n if (this.menuContainerIsBody) {\n top = rect.top;\n left = rect.left;\n }\n\n let coordinates = {\n top: top + windowTop + span.offsetTop + parseInt(computed.borderTopWidth) + parseInt(computed.fontSize) - element.scrollTop,\n left: left + windowLeft + span.offsetLeft + parseInt(computed.borderLeftWidth)\n };\n\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n\n let menuDimensions = this.getMenuDimensions();\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n if (menuIsOffScreen.right) {\n coordinates.right = windowWidth - coordinates.left;\n coordinates.left = 'auto';\n }\n\n let parentHeight = this.tribute.menuContainer\n ? this.tribute.menuContainer.offsetHeight\n : this.getDocument().body.offsetHeight;\n\n if (menuIsOffScreen.bottom) {\n let parentRect = this.tribute.menuContainer\n ? this.tribute.menuContainer.getBoundingClientRect()\n : this.getDocument().body.getBoundingClientRect();\n let scrollStillAvailable = parentHeight - (windowHeight - parentRect.top);\n\n coordinates.bottom = scrollStillAvailable + (windowHeight - rect.top - span.offsetTop);\n coordinates.top = 'auto';\n }\n\n menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n if (menuIsOffScreen.left) {\n coordinates.left = windowWidth > menuDimensions.width\n ? windowLeft + windowWidth - menuDimensions.width\n : windowLeft;\n delete coordinates.right;\n }\n if (menuIsOffScreen.top) {\n coordinates.top = windowHeight > menuDimensions.height\n ? windowTop + windowHeight - menuDimensions.height\n : windowTop;\n delete coordinates.bottom;\n }\n\n this.getDocument().body.removeChild(div);\n return coordinates\n }\n\n getContentEditableCaretPosition(selectedNodePosition) {\n let range;\n let sel = this.getWindowSelection();\n\n range = this.getDocument().createRange();\n range.setStart(sel.anchorNode, selectedNodePosition);\n range.setEnd(sel.anchorNode, selectedNodePosition);\n\n range.collapse(false);\n\n let rect = range.getBoundingClientRect();\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let left = rect.left;\n let top = rect.top;\n\n let coordinates = {\n left: left + windowLeft,\n top: top + rect.height + windowTop\n };\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n\n let menuDimensions = this.getMenuDimensions();\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n if (menuIsOffScreen.right) {\n coordinates.left = 'auto';\n coordinates.right = windowWidth - rect.left - windowLeft;\n }\n\n let parentHeight = this.tribute.menuContainer\n ? this.tribute.menuContainer.offsetHeight\n : this.getDocument().body.offsetHeight;\n\n if (menuIsOffScreen.bottom) {\n let parentRect = this.tribute.menuContainer\n ? this.tribute.menuContainer.getBoundingClientRect()\n : this.getDocument().body.getBoundingClientRect();\n let scrollStillAvailable = parentHeight - (windowHeight - parentRect.top);\n\n coordinates.top = 'auto';\n coordinates.bottom = scrollStillAvailable + (windowHeight - rect.top);\n }\n\n menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n if (menuIsOffScreen.left) {\n coordinates.left = windowWidth > menuDimensions.width\n ? windowLeft + windowWidth - menuDimensions.width\n : windowLeft;\n delete coordinates.right;\n }\n if (menuIsOffScreen.top) {\n coordinates.top = windowHeight > menuDimensions.height\n ? windowTop + windowHeight - menuDimensions.height\n : windowTop;\n delete coordinates.bottom;\n }\n\n if (!this.menuContainerIsBody) {\n coordinates.left = coordinates.left ? coordinates.left - this.tribute.menuContainer.offsetLeft : coordinates.left;\n coordinates.top = coordinates.top ? coordinates.top - this.tribute.menuContainer.offsetTop : coordinates.top;\n }\n\n return coordinates\n }\n\n scrollIntoView(elem) {\n let reasonableBuffer = 20,\n clientRect;\n let maxScrollDisplacement = 100;\n let e = this.menu;\n\n if (typeof e === 'undefined') return;\n\n while (clientRect === undefined || clientRect.height === 0) {\n clientRect = e.getBoundingClientRect();\n\n if (clientRect.height === 0) {\n e = e.childNodes[0];\n if (e === undefined || !e.getBoundingClientRect) {\n return\n }\n }\n }\n\n let elemTop = clientRect.top;\n let elemBottom = elemTop + clientRect.height;\n\n if (elemTop < 0) {\n window.scrollTo(0, window.pageYOffset + clientRect.top - reasonableBuffer);\n } else if (elemBottom > window.innerHeight) {\n let maxY = window.pageYOffset + clientRect.top - reasonableBuffer;\n\n if (maxY - window.pageYOffset > maxScrollDisplacement) {\n maxY = window.pageYOffset + maxScrollDisplacement;\n }\n\n let targetY = window.pageYOffset - (window.innerHeight - elemBottom);\n\n if (targetY > maxY) {\n targetY = maxY;\n }\n\n window.scrollTo(0, targetY);\n }\n }\n}\n\n// Thanks to https://github.com/mattyork/fuzzy\nclass TributeSearch {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.search = this;\n }\n\n simpleFilter(pattern, array) {\n return array.filter(string => {\n return this.test(pattern, string)\n })\n }\n\n test(pattern, string) {\n return this.match(pattern, string) !== null\n }\n\n match(pattern, string, opts) {\n opts = opts || {};\n let len = string.length,\n pre = opts.pre || '',\n post = opts.post || '',\n compareString = opts.caseSensitive && string || string.toLowerCase();\n\n if (opts.skip) {\n return {rendered: string, score: 0}\n }\n\n pattern = opts.caseSensitive && pattern || pattern.toLowerCase();\n\n let patternCache = this.traverse(compareString, pattern, 0, 0, []);\n if (!patternCache) {\n return null\n }\n return {\n rendered: this.render(string, patternCache.cache, pre, post),\n score: patternCache.score\n }\n }\n\n traverse(string, pattern, stringIndex, patternIndex, patternCache) {\n // if the pattern search at end\n if (pattern.length === patternIndex) {\n\n // calculate score and copy the cache containing the indices where it's found\n return {\n score: this.calculateScore(patternCache),\n cache: patternCache.slice()\n }\n }\n\n // if string at end or remaining pattern > remaining string\n if (string.length === stringIndex || pattern.length - patternIndex > string.length - stringIndex) {\n return undefined\n }\n\n let c = pattern[patternIndex];\n let index = string.indexOf(c, stringIndex);\n let best, temp;\n\n while (index > -1) {\n patternCache.push(index);\n temp = this.traverse(string, pattern, index + 1, patternIndex + 1, patternCache);\n patternCache.pop();\n\n // if downstream traversal failed, return best answer so far\n if (!temp) {\n return best\n }\n\n if (!best || best.score < temp.score) {\n best = temp;\n }\n\n index = string.indexOf(c, index + 1);\n }\n\n return best\n }\n\n calculateScore(patternCache) {\n let score = 0;\n let temp = 1;\n\n patternCache.forEach((index, i) => {\n if (i > 0) {\n if (patternCache[i - 1] + 1 === index) {\n temp += temp + 1;\n }\n else {\n temp = 1;\n }\n }\n\n score += temp;\n });\n\n return score\n }\n\n render(string, indices, pre, post) {\n var rendered = string.substring(0, indices[0]);\n\n indices.forEach((index, i) => {\n rendered += pre + string[index] + post +\n string.substring(index + 1, (indices[i + 1]) ? indices[i + 1] : string.length);\n });\n\n return rendered\n }\n\n filter(pattern, arr, opts) {\n opts = opts || {};\n return arr\n .reduce((prev, element, idx, arr) => {\n let str = element;\n\n if (opts.extract) {\n str = opts.extract(element);\n\n if (!str) { // take care of undefineds / nulls / etc.\n str = '';\n }\n }\n\n let rendered = this.match(pattern, str, opts);\n\n if (rendered != null) {\n prev[prev.length] = {\n string: rendered.rendered,\n score: rendered.score,\n index: idx,\n original: element\n };\n }\n\n return prev\n }, [])\n\n .sort((a, b) => {\n let compare = b.score - a.score;\n if (compare) return compare\n return a.index - b.index\n })\n }\n}\n\nclass Tribute {\n constructor({\n values = null,\n iframe = null,\n selectClass = \"highlight\",\n containerClass = \"tribute-container\",\n itemClass = \"\",\n trigger = \"@\",\n autocompleteMode = false,\n selectTemplate = null,\n menuItemTemplate = null,\n lookup = \"key\",\n fillAttr = \"value\",\n collection = null,\n menuContainer = null,\n noMatchTemplate = null,\n requireLeadingSpace = true,\n allowSpaces = false,\n replaceTextSuffix = null,\n positionMenu = true,\n spaceSelectsMatch = false,\n searchOpts = {},\n menuItemLimit = null,\n menuShowMinLength = 0\n }) {\n this.autocompleteMode = autocompleteMode;\n this.menuSelected = 0;\n this.current = {};\n this.inputEvent = false;\n this.isActive = false;\n this.menuContainer = menuContainer;\n this.allowSpaces = allowSpaces;\n this.replaceTextSuffix = replaceTextSuffix;\n this.positionMenu = positionMenu;\n this.hasTrailingSpace = false;\n this.spaceSelectsMatch = spaceSelectsMatch;\n\n if (this.autocompleteMode) {\n trigger = \"\";\n allowSpaces = false;\n }\n\n if (values) {\n this.collection = [\n {\n // symbol that starts the lookup\n trigger: trigger,\n\n // is it wrapped in an iframe\n iframe: iframe,\n\n // class applied to selected item\n selectClass: selectClass,\n\n // class applied to the Container\n containerClass: containerClass,\n\n // class applied to each item\n itemClass: itemClass,\n\n // function called on select that retuns the content to insert\n selectTemplate: (\n selectTemplate || Tribute.defaultSelectTemplate\n ).bind(this),\n\n // function called that returns content for an item\n menuItemTemplate: (\n menuItemTemplate || Tribute.defaultMenuItemTemplate\n ).bind(this),\n\n // function called when menu is empty, disables hiding of menu.\n noMatchTemplate: (t => {\n if (typeof t === \"string\") {\n if (t.trim() === \"\") return null;\n return t;\n }\n if (typeof t === \"function\") {\n return t.bind(this);\n }\n\n return (\n noMatchTemplate ||\n function() {\n return \"<li>No Match Found!</li>\";\n }.bind(this)\n );\n })(noMatchTemplate),\n\n // column to search against in the object\n lookup: lookup,\n\n // column that contains the content to insert by default\n fillAttr: fillAttr,\n\n // array of objects or a function returning an array of objects\n values: values,\n\n requireLeadingSpace: requireLeadingSpace,\n\n searchOpts: searchOpts,\n\n menuItemLimit: menuItemLimit,\n\n menuShowMinLength: menuShowMinLength\n }\n ];\n } else if (collection) {\n if (this.autocompleteMode)\n console.warn(\n \"Tribute in autocomplete mode does not work for collections\"\n );\n this.collection = collection.map(item => {\n return {\n trigger: item.trigger || trigger,\n iframe: item.iframe || iframe,\n selectClass: item.selectClass || selectClass,\n containerClass: item.containerClass || containerClass,\n itemClass: item.itemClass || itemClass,\n selectTemplate: (\n item.selectTemplate || Tribute.defaultSelectTemplate\n ).bind(this),\n menuItemTemplate: (\n item.menuItemTemplate || Tribute.defaultMenuItemTemplate\n ).bind(this),\n // function called when menu is empty, disables hiding of menu.\n noMatchTemplate: (t => {\n if (typeof t === \"string\") {\n if (t.trim() === \"\") return null;\n return t;\n }\n if (typeof t === \"function\") {\n return t.bind(this);\n }\n\n return (\n noMatchTemplate ||\n function() {\n return \"<li>No Match Found!</li>\";\n }.bind(this)\n );\n })(noMatchTemplate),\n lookup: item.lookup || lookup,\n fillAttr: item.fillAttr || fillAttr,\n values: item.values,\n requireLeadingSpace: item.requireLeadingSpace,\n searchOpts: item.searchOpts || searchOpts,\n menuItemLimit: item.menuItemLimit || menuItemLimit,\n menuShowMinLength: item.menuShowMinLength || menuShowMinLength\n };\n });\n } else {\n throw new Error(\"[Tribute] No collection specified.\");\n }\n\n new TributeRange(this);\n new TributeEvents(this);\n new TributeMenuEvents(this);\n new TributeSearch(this);\n }\n\n get isActive() {\n return this._isActive;\n }\n\n set isActive(val) {\n if (this._isActive != val) {\n this._isActive = val;\n if (this.current.element) {\n let noMatchEvent = new CustomEvent(`tribute-active-${val}`);\n this.current.element.dispatchEvent(noMatchEvent);\n }\n }\n }\n\n static defaultSelectTemplate(item) {\n if (typeof item === \"undefined\")\n return `${this.current.collection.trigger}${this.current.mentionText}`;\n if (this.range.isContentEditable(this.current.element)) {\n return (\n '<span class=\"tribute-mention\">' +\n (this.current.collection.trigger +\n item.original[this.current.collection.fillAttr]) +\n \"</span>\"\n );\n }\n\n return (\n this.current.collection.trigger +\n item.original[this.current.collection.fillAttr]\n );\n }\n\n static defaultMenuItemTemplate(matchItem) {\n return matchItem.string;\n }\n\n static inputTypes() {\n return [\"TEXTAREA\", \"INPUT\"];\n }\n\n triggers() {\n return this.collection.map(config => {\n return config.trigger;\n });\n }\n\n attach(el) {\n if (!el) {\n throw new Error(\"[Tribute] Must pass in a DOM node or NodeList.\");\n }\n\n // Check if it is a jQuery collection\n if (typeof jQuery !== \"undefined\" && el instanceof jQuery) {\n el = el.get();\n }\n\n // Is el an Array/Array-like object?\n if (\n el.constructor === NodeList ||\n el.constructor === HTMLCollection ||\n el.constructor === Array\n ) {\n let length = el.length;\n for (var i = 0; i < length; ++i) {\n this._attach(el[i]);\n }\n } else {\n this._attach(el);\n }\n }\n\n _attach(el) {\n if (el.hasAttribute(\"data-tribute\")) {\n console.warn(\"Tribute was already bound to \" + el.nodeName);\n }\n\n this.ensureEditable(el);\n this.events.bind(el);\n el.setAttribute(\"data-tribute\", true);\n }\n\n ensureEditable(element) {\n if (Tribute.inputTypes().indexOf(element.nodeName) === -1) {\n if (element.contentEditable) {\n element.contentEditable = true;\n } else {\n throw new Error(\"[Tribute] Cannot bind to \" + element.nodeName);\n }\n }\n }\n\n createMenu(containerClass) {\n let wrapper = this.range.getDocument().createElement(\"div\"),\n ul = this.range.getDocument().createElement(\"ul\");\n wrapper.className = containerClass;\n wrapper.appendChild(ul);\n\n if (this.menuContainer) {\n return this.menuContainer.appendChild(wrapper);\n }\n\n return this.range.getDocument().body.appendChild(wrapper);\n }\n\n showMenuFor(element, scrollTo) {\n // Only proceed if menu isn't already shown for the current element & mentionText\n if (\n this.isActive &&\n this.current.element === element &&\n this.current.mentionText === this.currentMentionTextSnapshot\n ) {\n return;\n }\n this.currentMentionTextSnapshot = this.current.mentionText;\n\n // create the menu if it doesn't exist.\n if (!this.menu) {\n this.menu = this.createMenu(this.current.collection.containerClass);\n element.tributeMenu = this.menu;\n this.menuEvents.bind(this.menu);\n }\n\n this.isActive = true;\n this.menuSelected = 0;\n\n if (!this.current.mentionText) {\n this.current.mentionText = \"\";\n }\n\n const processValues = values => {\n // Tribute may not be active any more by the time the value callback returns\n if (!this.isActive) {\n return;\n }\n\n let items = this.search.filter(this.current.mentionText, values, {\n pre: this.current.collection.searchOpts.pre || \"<span>\",\n post: this.current.collection.searchOpts.post || \"</span>\",\n skip: this.current.collection.searchOpts.skip,\n extract: el => {\n if (typeof this.current.collection.lookup === \"string\") {\n return el[this.current.collection.lookup];\n } else if (typeof this.current.collection.lookup === \"function\") {\n return this.current.collection.lookup(el, this.current.mentionText);\n } else {\n throw new Error(\n \"Invalid lookup attribute, lookup must be string or function.\"\n );\n }\n }\n });\n\n if (this.current.collection.menuItemLimit) {\n items = items.slice(0, this.current.collection.menuItemLimit);\n }\n\n this.current.filteredItems = items;\n\n let ul = this.menu.querySelector(\"ul\");\n\n this.range.positionMenuAtCaret(scrollTo);\n\n if (!items.length) {\n let noMatchEvent = new CustomEvent(\"tribute-no-match\", {\n detail: this.menu\n });\n this.current.element.dispatchEvent(noMatchEvent);\n if (\n (typeof this.current.collection.noMatchTemplate === \"function\" &&\n !this.current.collection.noMatchTemplate()) ||\n !this.current.collection.noMatchTemplate\n ) {\n this.hideMenu();\n } else {\n typeof this.current.collection.noMatchTemplate === \"function\"\n ? (ul.innerHTML = this.current.collection.noMatchTemplate())\n : (ul.innerHTML = this.current.collection.noMatchTemplate);\n }\n\n return;\n }\n\n ul.innerHTML = \"\";\n let fragment = this.range.getDocument().createDocumentFragment();\n\n items.forEach((item, index) => {\n let li = this.range.getDocument().createElement(\"li\");\n li.setAttribute(\"data-index\", index);\n li.className = this.current.collection.itemClass;\n li.addEventListener(\"mousemove\", e => {\n let [li, index] = this._findLiTarget(e.target);\n if (e.movementY !== 0) {\n this.events.setActiveLi(index);\n }\n });\n if (this.menuSelected === index) {\n li.classList.add(this.current.collection.selectClass);\n }\n li.innerHTML = this.current.collection.menuItemTemplate(item);\n fragment.appendChild(li);\n });\n ul.appendChild(fragment);\n };\n\n if (typeof this.current.collection.values === \"function\") {\n this.current.collection.values(this.current.mentionText, processValues);\n } else {\n processValues(this.current.collection.values);\n }\n }\n\n _findLiTarget(el) {\n if (!el) return [];\n const index = el.getAttribute(\"data-index\");\n return !index ? this._findLiTarget(el.parentNode) : [el, index];\n }\n\n showMenuForCollection(element, collectionIndex) {\n if (element !== document.activeElement) {\n this.placeCaretAtEnd(element);\n }\n\n this.current.collection = this.collection[collectionIndex || 0];\n this.current.externalTrigger = true;\n this.current.element = element;\n\n if (element.isContentEditable)\n this.insertTextAtCursor(this.current.collection.trigger);\n else this.insertAtCaret(element, this.current.collection.trigger);\n\n this.showMenuFor(element);\n }\n\n // TODO: make sure this works for inputs/textareas\n placeCaretAtEnd(el) {\n el.focus();\n if (\n typeof window.getSelection != \"undefined\" &&\n typeof document.createRange != \"undefined\"\n ) {\n var range = document.createRange();\n range.selectNodeContents(el);\n range.collapse(false);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n } else if (typeof document.body.createTextRange != \"undefined\") {\n var textRange = document.body.createTextRange();\n textRange.moveToElementText(el);\n textRange.collapse(false);\n textRange.select();\n }\n }\n\n // for contenteditable\n insertTextAtCursor(text) {\n var sel, range;\n sel = window.getSelection();\n range = sel.getRangeAt(0);\n range.deleteContents();\n var textNode = document.createTextNode(text);\n range.insertNode(textNode);\n range.selectNodeContents(textNode);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n\n // for regular inputs\n insertAtCaret(textarea, text) {\n var scrollPos = textarea.scrollTop;\n var caretPos = textarea.selectionStart;\n\n var front = textarea.value.substring(0, caretPos);\n var back = textarea.value.substring(\n textarea.selectionEnd,\n textarea.value.length\n );\n textarea.value = front + text + back;\n caretPos = caretPos + text.length;\n textarea.selectionStart = caretPos;\n textarea.selectionEnd = caretPos;\n textarea.focus();\n textarea.scrollTop = scrollPos;\n }\n\n hideMenu() {\n if (this.menu) {\n this.menu.style.cssText = \"display: none;\";\n this.isActive = false;\n this.menuSelected = 0;\n this.current = {};\n }\n }\n\n selectItemAtIndex(index, originalEvent) {\n index = parseInt(index);\n if (typeof index !== \"number\" || isNaN(index)) return;\n let item = this.current.filteredItems[index];\n let content = this.current.collection.selectTemplate(item);\n if (content !== null) this.replaceText(content, originalEvent, item);\n }\n\n replaceText(content, originalEvent, item) {\n this.range.replaceTriggerText(content, true, true, originalEvent, item);\n }\n\n _append(collection, newValues, replace) {\n if (typeof collection.values === \"function\") {\n throw new Error(\"Unable to append to values, as it is a function.\");\n } else if (!replace) {\n collection.values = collection.values.concat(newValues);\n } else {\n collection.values = newValues;\n }\n }\n\n append(collectionIndex, newValues, replace) {\n let index = parseInt(collectionIndex);\n if (typeof index !== \"number\")\n throw new Error(\"please provide an index for the collection to update.\");\n\n let collection = this.collection[index];\n\n this._append(collection, newValues, replace);\n }\n\n appendCurrent(newValues, replace) {\n if (this.isActive) {\n this._append(this.current.collection, newValues, replace);\n } else {\n throw new Error(\n \"No active state. Please use append instead and pass an index.\"\n );\n }\n }\n\n detach(el) {\n if (!el) {\n throw new Error(\"[Tribute] Must pass in a DOM node or NodeList.\");\n }\n\n // Check if it is a jQuery collection\n if (typeof jQuery !== \"undefined\" && el instanceof jQuery) {\n el = el.get();\n }\n\n // Is el an Array/Array-like object?\n if (\n el.constructor === NodeList ||\n el.constructor === HTMLCollection ||\n el.constructor === Array\n ) {\n let length = el.length;\n for (var i = 0; i < length; ++i) {\n this._detach(el[i]);\n }\n } else {\n this._detach(el);\n }\n }\n\n _detach(el) {\n this.events.unbind(el);\n if (el.tributeMenu) {\n this.menuEvents.unbind(el.tributeMenu);\n }\n\n setTimeout(() => {\n el.removeAttribute(\"data-tribute\");\n this.isActive = false;\n if (el.tributeMenu) {\n el.tributeMenu.remove();\n }\n });\n }\n}\n\n/**\n * Tribute.js\n * Native ES6 JavaScript @mention Plugin\n **/\n\nexport default Tribute;\n","import { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nwindow._vue_richtext_widgets ??= {};\nwindow._registerWidget ??= (id, callback, onDestroy, props) => {\n registerWidget(id, callback, onDestroy, props);\n};\nfunction registerWidget(id, callback, onDestroy = () => {\n}, props) {\n const propsWithDefaults = {\n hasInteractiveView: true,\n fullWidth: false,\n ...props\n };\n if (window._vue_richtext_widgets[id]) {\n logger.error(`[ReferencePicker]: Widget for id ${id} already registered`);\n return;\n }\n window._vue_richtext_widgets[id] = {\n id,\n callback,\n onDestroy,\n ...propsWithDefaults\n };\n}\nfunction renderWidget(el, options) {\n const { richObjectType, richObject, accessible, interactive } = options;\n if (richObjectType === \"open-graph\") {\n return;\n }\n if (!window._vue_richtext_widgets[richObjectType]) {\n logger.error(\"Widget for rich object type \" + richObjectType + \" not registered\");\n return;\n }\n window._vue_richtext_widgets[richObjectType].callback(el, { richObjectType, richObject, accessible, interactive });\n}\nfunction destroyWidget(richObjectType, el) {\n if (richObjectType === \"open-graph\") {\n return;\n }\n if (!window._vue_richtext_widgets[richObjectType]) {\n return;\n }\n window._vue_richtext_widgets[richObjectType].onDestroy(el);\n}\nfunction isWidgetRegistered(id) {\n return !!window._vue_richtext_widgets[id];\n}\nfunction hasInteractiveView(id) {\n return !!window._vue_richtext_widgets[id]?.hasInteractiveView;\n}\nfunction hasFullWidth(id) {\n return !!window._vue_richtext_widgets[id]?.fullWidth;\n}\nwindow._vue_richtext_custom_picker_elements ??= {};\nwindow._registerCustomPickerElement ??= registerCustomPickerElement;\nclass NcCustomPickerRenderResult {\n element;\n object;\n /**\n * @param element - The HTML element\n * @param object - The object\n */\n constructor(element, object) {\n this.element = element;\n this.object = object;\n }\n}\nfunction isCustomPickerElementRegistered(id) {\n return !!window._vue_richtext_custom_picker_elements[id];\n}\nfunction getCustomPickerElementSize(id) {\n const size = window._vue_richtext_custom_picker_elements[id]?.size;\n if (size && [\"small\", \"normal\", \"large\", \"full\"].includes(size)) {\n return size;\n }\n return null;\n}\nfunction registerCustomPickerElement(id, callback, onDestroy = () => {\n}, size = \"large\") {\n if (window._vue_richtext_custom_picker_elements[id]) {\n logger.error(`Custom reference picker element for id ${id} already registered`);\n return;\n }\n window._vue_richtext_custom_picker_elements[id] = {\n id,\n callback,\n onDestroy,\n size\n };\n}\nfunction renderCustomPickerElement(el, options) {\n const { providerId, accessible } = options;\n if (!window._vue_richtext_custom_picker_elements[providerId]) {\n logger.error(`Custom reference picker element for reference provider ID ${providerId} not registered`);\n return;\n }\n return window._vue_richtext_custom_picker_elements[providerId].callback(el, { providerId, accessible });\n}\nfunction destroyCustomPickerElement(providerId, el, renderResult) {\n if (!window._vue_richtext_custom_picker_elements[providerId]) {\n return;\n }\n window._vue_richtext_custom_picker_elements[providerId].onDestroy(el, renderResult);\n}\nexport {\n NcCustomPickerRenderResult as N,\n renderWidget as a,\n destroyCustomPickerElement as b,\n isCustomPickerElementRegistered as c,\n destroyWidget as d,\n registerCustomPickerElement as e,\n renderCustomPickerElement as f,\n getCustomPickerElementSize as g,\n hasInteractiveView as h,\n isWidgetRegistered as i,\n hasFullWidth as j,\n registerWidget as r\n};\n//# sourceMappingURL=customPickerElements-4pQTZUnk.mjs.map\n","import '../assets/referencePickerModal-DWMAMaU3.css';\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, createVNode, withCtx, defineComponent, inject, ref, useTemplateRef, nextTick, computed, watch, onBeforeUnmount, normalizeClass, createBlock, resolveDynamicComponent, normalizeStyle, createTextVNode, unref, withKeys, withModifiers, createApp } from \"vue\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { I as IconClose } from \"./Close-D6ngJ4t9.mjs\";\nimport { f as renderCustomPickerElement, b as destroyCustomPickerElement, c as isCustomPickerElementRegistered, j as hasFullWidth, i as isWidgetRegistered, h as hasInteractiveView, a as renderWidget, d as destroyWidget, g as getCustomPickerElementSize } from \"./customPickerElements-4pQTZUnk.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { loadState } from \"@nextcloud/initial-state\";\nimport { imagePath, generateOcsUrl } from \"@nextcloud/router\";\nimport { r as register, W as t8, a as t, X as t45, Y as t40, Z as t24, _ as t25, q as t42, $ as t32, A as t19, a0 as t12 } from \"./_l10n-CgsPi8nC.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcEmptyContent } from \"./NcEmptyContent-B8-90BSI.mjs\";\nimport { _ as _sfc_main$a } from \"./NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs\";\nimport { N as NcSelect } from \"./NcSelect-Cc9_a8nG.mjs\";\nimport debounce from \"debounce\";\nimport { useElementSize, useIntersectionObserver } from \"@vueuse/core\";\nimport { routerKey, RouterLink } from \"vue-router\";\nimport { N as NcButton } from \"./NcButton-CzpKEx4V.mjs\";\nimport { g as getRoute } from \"./autolink-U5pBzLgI.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-b_ajZ_nQ.mjs\";\nimport { _ as _sfc_main$b } from \"./NcTextField.vue_vue_type_script_setup_true_lang-CCsZqnkM.mjs\";\nimport { I as IconDotsHorizontal } from \"./NcActions-4R7icatI.mjs\";\nimport { N as NcModal } from \"./NcModal-D00OJZV2.mjs\";\nconst _sfc_main$9 = {\n name: \"ArrowLeftIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$9 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$7 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$6 = { d: \"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\" };\nconst _hoisted_4$5 = { key: 0 };\nfunction _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon arrow-left-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$6, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$5, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$7))\n ], 16, _hoisted_1$9);\n}\nconst ArrowLeftIcon = /* @__PURE__ */ _export_sfc(_sfc_main$9, [[\"render\", _sfc_render$8]]);\nconst _sfc_main$8 = {\n name: \"NcCustomPickerElement\",\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: true\n }\n },\n emits: [\n \"cancel\",\n \"submit\"\n ],\n data() {\n return {\n isRegistered: isCustomPickerElementRegistered(this.provider.id),\n renderResult: null\n };\n },\n mounted() {\n if (this.isRegistered) {\n this.renderElement();\n }\n },\n beforeUnmount() {\n if (this.isRegistered) {\n destroyCustomPickerElement(this.provider.id, this.$el, this.renderResult);\n }\n },\n methods: {\n renderElement() {\n if (this.$refs.domElement) {\n this.$refs.domElement.innerHTML = \"\";\n }\n const renderFunctionResult = renderCustomPickerElement(this.$refs.domElement, { providerId: this.provider.id, accessible: false });\n Promise.resolve(renderFunctionResult).then((result) => {\n this.renderResult = result;\n if (this.renderResult.object?._isVue && this.renderResult.object?.$on) {\n this.renderResult.object.$on(\"submit\", this.onSubmit);\n this.renderResult.object.$on(\"cancel\", this.onCancel);\n }\n this.renderResult.element.addEventListener(\"submit\", (e) => {\n this.onSubmit(e.detail);\n });\n this.renderResult.element.addEventListener(\"cancel\", this.onCancel);\n });\n },\n onSubmit(value) {\n this.$emit(\"submit\", value);\n },\n onCancel() {\n this.$emit(\"cancel\");\n }\n }\n};\nconst _hoisted_1$8 = { ref: \"domElement\" };\nfunction _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$8, null, 512);\n}\nconst NcCustomPickerElement = /* @__PURE__ */ _export_sfc(_sfc_main$8, [[\"render\", _sfc_render$7], [\"__scopeId\", \"data-v-e408867a\"]]);\nconst _sfc_main$7 = {\n name: \"LinkVariantIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$7 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$6 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$5 = { d: \"M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z\" };\nconst _hoisted_4$4 = { key: 0 };\nfunction _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon link-variant-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$5, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$6))\n ], 16, _hoisted_1$7);\n}\nconst LinkVariantIcon = /* @__PURE__ */ _export_sfc(_sfc_main$7, [[\"render\", _sfc_render$6]]);\nregister(t8);\nconst anyLinkProviderId = \"any-link\";\nconst anyLinkProvider = {\n id: anyLinkProviderId,\n title: t(\"Any link\"),\n order: 0,\n icon_url: imagePath(\"core\", \"filetypes/link.svg\")\n};\nwindow._vue_richtext_reference_providers ??= loadState(\"core\", \"reference-provider-list\", []);\nwindow._vue_richtext_reference_provider_timestamps ??= loadState(\"core\", \"reference-provider-timestamps\", {});\nfunction getProvider(providerId) {\n if (providerId === anyLinkProviderId) {\n return anyLinkProvider;\n }\n return getProviders().find((p) => p.id === providerId);\n}\nfunction getProviders() {\n return window._vue_richtext_reference_providers.filter((p) => {\n const keep = !!p.search_providers_ids && p.search_providers_ids.length > 0 || isCustomPickerElementRegistered(p.id);\n if (!keep) {\n logger.debug(`[smart picker] ${p.id} reference provider is discoverable but does not have any related search provider or custom picker component registered`);\n }\n return keep;\n });\n}\nfunction sortProviders(providerList) {\n const timestamps = window._vue_richtext_reference_provider_timestamps;\n return providerList.sort((a, b) => {\n return a.order === b.order ? 0 : a.order > b.order ? 1 : -1;\n }).sort((a, b) => {\n const ta = timestamps[a.id];\n const tb = timestamps[b.id];\n return ta === tb ? 0 : tb === void 0 ? -1 : ta === void 0 ? 1 : ta > tb ? -1 : 1;\n });\n}\nfunction searchProvider(query, limit) {\n const providers = getProviders();\n const escapedQuery = query.replace(/[/\\-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n const regexp = new RegExp(escapedQuery, \"i\");\n const sortedProviders = sortProviders(providers);\n const filteredSortedProviders = sortedProviders.filter((p) => {\n return p.title.match(regexp);\n });\n const searchResult = limit ? filteredSortedProviders.slice(0, limit) : filteredSortedProviders;\n if (query === \"\" || searchResult.length === 0) {\n searchResult.push(anyLinkProvider);\n }\n return searchResult;\n}\nasync function touchProvider(providerId) {\n const timestamp = Math.floor(Date.now() / 1e3);\n const url = generateOcsUrl(\"references/provider/{providerId}\", { providerId });\n await axios.put(url, { timestamp });\n window._vue_richtext_reference_provider_timestamps[providerId] = timestamp;\n}\nregister(t40, t45);\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isUrl(str) {\n try {\n return Boolean(new URL(str));\n } catch {\n return false;\n }\n}\nconst _sfc_main$6 = {\n name: \"NcProviderList\",\n components: {\n NcSelect,\n NcHighlight: _sfc_main$a,\n NcEmptyContent,\n LinkVariantIcon\n },\n emits: [\n \"selectProvider\",\n \"submit\"\n ],\n data() {\n return {\n selectedProvider: null,\n query: \"\",\n multiselectPlaceholder: t(\"Select provider\"),\n providerIconAlt: t(\"Provider icon\")\n };\n },\n computed: {\n options() {\n const result = [];\n if (this.query !== \"\" && isUrl(this.query)) {\n result.push({\n id: this.query,\n title: this.query,\n isLink: true\n });\n }\n result.push(...searchProvider(this.query));\n return result;\n }\n },\n methods: {\n focus() {\n setTimeout(() => {\n this.$refs[\"provider-select\"]?.$el?.querySelector(\"#provider-select-input\")?.focus();\n }, 300);\n },\n onProviderSelected(p) {\n if (p !== null) {\n if (p.isLink) {\n this.$emit(\"submit\", p.title);\n } else {\n this.$emit(\"selectProvider\", p);\n }\n this.selectedProvider = null;\n }\n },\n onSearch(query) {\n this.query = query;\n }\n }\n};\nconst _hoisted_1$6 = { class: \"provider-list\" };\nconst _hoisted_2$5 = {\n key: 0,\n class: \"provider\"\n};\nconst _hoisted_3$4 = {\n key: 1,\n class: \"provider\"\n};\nconst _hoisted_4$3 = [\"src\", \"alt\"];\nfunction _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_LinkVariantIcon = resolveComponent(\"LinkVariantIcon\");\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$6, [\n createVNode(_component_NcSelect, {\n ref: \"provider-select\",\n modelValue: $data.selectedProvider,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.selectedProvider = $event),\n $options.onProviderSelected\n ],\n class: \"provider-list--select\",\n \"input-id\": \"provider-select-input\",\n label: \"title\",\n placeholder: $data.multiselectPlaceholder,\n options: $options.options,\n \"append-to-body\": false,\n \"clear-search-on-select\": true,\n \"clear-search-on-blur\": () => false,\n filterable: false,\n onSearch: $options.onSearch\n }, {\n option: withCtx((option) => [\n option.isLink ? (openBlock(), createElementBlock(\"div\", _hoisted_2$5, [\n createVNode(_component_LinkVariantIcon, {\n class: \"link-icon\",\n size: 20\n }),\n createElementVNode(\"span\", null, toDisplayString(option.title), 1)\n ])) : (openBlock(), createElementBlock(\"div\", _hoisted_3$4, [\n createElementVNode(\"img\", {\n class: \"provider-icon\",\n src: option.icon_url,\n alt: $data.providerIconAlt\n }, null, 8, _hoisted_4$3),\n createVNode(_component_NcHighlight, {\n class: \"option-text\",\n search: $data.query,\n text: option.title\n }, null, 8, [\"search\", \"text\"])\n ]))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"placeholder\", \"options\", \"onSearch\", \"onUpdate:modelValue\"]),\n createVNode(_component_NcEmptyContent, { class: \"provider-list--empty-content\" }, {\n icon: withCtx(() => [\n createVNode(_component_LinkVariantIcon)\n ]),\n _: 1\n })\n ]);\n}\nconst NcProviderList = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render$5], [\"__scopeId\", \"data-v-90c6aa3b\"]]);\nregister(t24);\nconst _hoisted_1$5 = [\"src\"];\nconst _hoisted_2$4 = { class: \"widget-default--details\" };\nconst _hoisted_3$3 = { class: \"widget-default--name\" };\nconst _hoisted_4$2 = { class: \"widget-default--link\" };\nconst IDLE_TIMEOUT = 3 * 60 * 1e3;\nconst _sfc_main$5 = /* @__PURE__ */ defineComponent({\n __name: \"NcReferenceWidget\",\n props: {\n reference: {},\n interactive: { type: Boolean, default: true },\n interactiveOptIn: { type: Boolean, default: false }\n },\n setup(__props) {\n const props = __props;\n const router = inject(routerKey, null);\n const isVisible = ref(false);\n const customWidget = useTemplateRef(\"customWidget\");\n const widgetRoot = useTemplateRef(\"widgetRoot\");\n const { width } = useElementSize(widgetRoot);\n useIntersectionObserver(widgetRoot, ([entry]) => {\n nextTick(() => {\n isVisible.value = entry.isIntersecting;\n });\n });\n const showInteractive = ref(false);\n const rendered = ref(false);\n let idleTimeout = null;\n const isInteractive = computed(() => {\n return !props.interactiveOptIn && props.interactive || showInteractive.value;\n });\n const referenceHasFullWidth = computed(() => {\n return hasFullWidth(props.reference.richObjectType);\n });\n const hasCustomWidget = computed(() => {\n return isWidgetRegistered(props.reference.richObjectType);\n });\n const referenceHasInteractiveView = computed(() => {\n return hasCustomWidget.value && hasInteractiveView(props.reference.richObjectType);\n });\n const noAccess = computed(() => {\n return !props.reference.accessible;\n });\n const numberOfLines = computed(() => {\n const lineCountOffsets = [450, 550, 650, Infinity];\n return lineCountOffsets.findIndex((max) => width.value < max);\n });\n const descriptionStyle = computed(() => {\n if (numberOfLines.value === 0) {\n return {\n display: \"none\"\n };\n }\n const lineClamp = numberOfLines.value;\n return {\n lineClamp,\n webkitLineClamp: lineClamp\n };\n });\n const compactLink = computed(() => {\n const link = props.reference.openGraphObject.link;\n if (!link) {\n return \"\";\n }\n if (link.startsWith(\"https://\")) {\n return link.substring(8);\n }\n if (link.startsWith(\"http://\")) {\n return link.substring(7);\n }\n return link;\n });\n const route = computed(() => {\n return getRoute(router, props.reference.openGraphObject.link);\n });\n const referenceWidgetLinkComponent = computed(() => {\n return route.value ? RouterLink : \"a\";\n });\n const referenceWidgetLinkProps = computed(() => {\n return route.value ? { to: route.value } : { href: props.reference.openGraphObject.link, target: \"_blank\" };\n });\n watch(isVisible, (val) => {\n if (!val) {\n idleTimeout = setTimeout(() => {\n if (!isVisible.value) {\n destroyReferenceWidget();\n }\n }, IDLE_TIMEOUT);\n return;\n }\n if (idleTimeout) {\n clearTimeout(idleTimeout);\n idleTimeout = null;\n }\n if (!rendered.value) {\n renderReferenceWidget();\n }\n }, { immediate: true });\n onBeforeUnmount(() => {\n destroyReferenceWidget();\n });\n function enableInteractive() {\n showInteractive.value = true;\n renderReferenceWidget();\n }\n function renderReferenceWidget() {\n if (!customWidget.value) {\n return;\n }\n if (props.reference.richObjectType === \"open-graph\") {\n return;\n }\n customWidget.value.innerHTML = \"\";\n const widget = document.createElement(\"div\");\n widget.style.width = \"100%\";\n customWidget.value.appendChild(widget);\n nextTick(() => {\n renderWidget(widget, {\n ...props.reference,\n interactive: isInteractive.value\n });\n rendered.value = true;\n });\n }\n function destroyReferenceWidget() {\n if (rendered.value && widgetRoot.value) {\n destroyWidget(props.reference.richObjectType, widgetRoot.value);\n rendered.value = false;\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref_key: \"widgetRoot\",\n ref: widgetRoot,\n class: normalizeClass({ \"toggle-interactive\": referenceHasInteractiveView.value && !isInteractive.value })\n }, [\n _ctx.reference && hasCustomWidget.value ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n ref_key: \"customWidget\",\n ref: customWidget,\n class: normalizeClass([\"widget-custom\", { \"full-width\": referenceHasFullWidth.value }])\n }, null, 2)) : !noAccess.value && _ctx.reference && _ctx.reference.openGraphObject && !hasCustomWidget.value ? (openBlock(), createBlock(resolveDynamicComponent(referenceWidgetLinkComponent.value), mergeProps({ key: 1 }, referenceWidgetLinkProps.value, {\n rel: \"noopener noreferrer\",\n class: \"widget-default\"\n }), {\n default: withCtx(() => [\n _ctx.reference.openGraphObject.thumb ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"widget-default--image\",\n src: _ctx.reference.openGraphObject.thumb\n }, null, 8, _hoisted_1$5)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_2$4, [\n createElementVNode(\"p\", _hoisted_3$3, toDisplayString(_ctx.reference.openGraphObject.name), 1),\n createElementVNode(\"p\", {\n class: \"widget-default--description\",\n style: normalizeStyle(descriptionStyle.value)\n }, toDisplayString(_ctx.reference.openGraphObject.description), 5),\n createElementVNode(\"p\", _hoisted_4$2, toDisplayString(compactLink.value), 1)\n ])\n ]),\n _: 1\n }, 16)) : createCommentVNode(\"\", true),\n _ctx.interactiveOptIn && referenceHasInteractiveView.value && !isInteractive.value ? (openBlock(), createBlock(NcButton, {\n key: 2,\n class: \"toggle-interactive--button\",\n onClick: enableInteractive\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Enable interactive view\")), 1)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcReferenceWidget = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"__scopeId\", \"data-v-8ce33442\"]]);\nregister(t25);\nconst _sfc_main$4 = {\n name: \"NcRawLinkInput\",\n components: {\n LinkVariantIcon,\n NcEmptyContent,\n NcLoadingIcon,\n NcReferenceWidget,\n NcTextField: _sfc_main$b\n },\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: true\n }\n },\n emits: [\n \"submit\"\n ],\n data() {\n return {\n inputValue: \"\",\n loading: false,\n reference: null,\n abortController: null,\n inputPlaceholder: t(\"Enter link\")\n };\n },\n computed: {\n isLinkValid() {\n return isUrl(this.inputValue);\n },\n debouncedUpdateReference() {\n return debounce(this.updateReference, 500);\n }\n },\n methods: {\n focus() {\n this.$refs[\"url-input\"].$el.getElementsByTagName(\"input\")[0]?.focus();\n },\n onSubmit(e) {\n const value = e.target.value;\n if (this.isLinkValid) {\n this.$emit(\"submit\", value);\n }\n },\n onClear() {\n this.inputValue = \"\";\n this.reference = null;\n },\n onInput() {\n this.reference = null;\n if (this.abortController) {\n this.abortController.abort();\n }\n if (this.isLinkValid) {\n this.debouncedUpdateReference();\n }\n },\n updateReference() {\n this.loading = true;\n this.abortController = new AbortController();\n axios.get(generateOcsUrl(\"references/resolve\", 2) + \"?reference=\" + encodeURIComponent(this.inputValue), {\n signal: this.abortController.signal\n }).then((response) => {\n this.reference = response.data.ocs.data.references[this.inputValue];\n }).catch((error) => {\n logger.error(\"[NcRawLinkInput] Failed to update reference\", { error });\n }).then(() => {\n this.loading = false;\n });\n }\n }\n};\nconst _hoisted_1$4 = { class: \"raw-link\" };\nconst _hoisted_2$3 = { class: \"input-wrapper\" };\nconst _hoisted_3$2 = [\"src\"];\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_LinkVariantIcon = resolveComponent(\"LinkVariantIcon\");\n const _component_NcTextField = resolveComponent(\"NcTextField\");\n const _component_NcReferenceWidget = resolveComponent(\"NcReferenceWidget\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$4, [\n createElementVNode(\"div\", _hoisted_2$3, [\n createVNode(_component_NcTextField, {\n ref: \"url-input\",\n modelValue: $data.inputValue,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.inputValue = $event),\n $options.onInput\n ],\n \"show-trailing-button\": $data.inputValue !== \"\",\n label: $data.inputPlaceholder,\n onTrailingButtonClick: $options.onClear,\n onKeyup: withKeys($options.onSubmit, [\"enter\"])\n }, {\n default: withCtx(() => [\n $data.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, {\n key: 0,\n size: 16\n })) : (openBlock(), createBlock(_component_LinkVariantIcon, {\n key: 1,\n size: 16\n }))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"show-trailing-button\", \"label\", \"onTrailingButtonClick\", \"onUpdate:modelValue\", \"onKeyup\"])\n ]),\n $data.reference !== null ? (openBlock(), createBlock(_component_NcReferenceWidget, {\n key: 0,\n class: \"reference-widget\",\n reference: $data.reference\n }, null, 8, [\"reference\"])) : (openBlock(), createBlock(_component_NcEmptyContent, {\n key: 1,\n class: \"raw-link--empty-content\"\n }, {\n icon: withCtx(() => [\n $props.provider.icon_url ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"provider-icon\",\n src: $props.provider.icon_url\n }, null, 8, _hoisted_3$2)) : (openBlock(), createBlock(_component_LinkVariantIcon, { key: 1 }))\n ]),\n _: 1\n }))\n ]);\n}\nconst NcRawLinkInput = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$4], [\"__scopeId\", \"data-v-a0658f2a\"]]);\nconst _sfc_main$3 = {\n name: \"NcSearchResult\",\n components: {\n NcHighlight: _sfc_main$a\n },\n props: {\n /**\n * Unified search result entry\n */\n entry: {\n type: Object,\n required: true\n },\n /**\n * The query that led to getting this result\n * Used to highlight the entry text\n */\n query: {\n type: String,\n required: true\n }\n }\n};\nconst _hoisted_1$3 = { class: \"result\" };\nconst _hoisted_2$2 = [\"src\"];\nconst _hoisted_3$1 = { class: \"result--content\" };\nconst _hoisted_4$1 = { class: \"result--content--name\" };\nconst _hoisted_5$1 = { class: \"result--content--subline\" };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$3, [\n $props.entry.icon ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([{ [$props.entry.icon]: true, rounded: $props.entry.rounded }, \"result--icon-class\"])\n }, null, 2)) : (openBlock(), createElementBlock(\"img\", {\n key: 1,\n class: normalizeClass([\"result--image\", { rounded: $props.entry.rounded }]),\n src: $props.entry.thumbnailUrl\n }, null, 10, _hoisted_2$2)),\n createElementVNode(\"div\", _hoisted_3$1, [\n createElementVNode(\"span\", _hoisted_4$1, [\n createVNode(_component_NcHighlight, {\n search: $props.query,\n text: $props.entry.title\n }, null, 8, [\"search\", \"text\"])\n ]),\n createElementVNode(\"span\", _hoisted_5$1, [\n createVNode(_component_NcHighlight, {\n search: $props.query,\n text: $props.entry.subline\n }, null, 8, [\"search\", \"text\"])\n ])\n ])\n ]);\n}\nconst NcSearchResult = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3], [\"__scopeId\", \"data-v-059edcfb\"]]);\nregister(t32, t40, t42);\nconst LIMIT = 5;\nconst _sfc_main$2 = {\n name: \"NcSearch\",\n components: {\n LinkVariantIcon,\n DotsHorizontalIcon: IconDotsHorizontal,\n NcEmptyContent,\n NcSelect,\n NcSearchResult\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * The selected reference provider\n */\n provider: {\n type: Object,\n required: true\n },\n showEmptyContent: {\n type: Boolean,\n default: true\n },\n /**\n * Placeholder of the search\n */\n searchPlaceholder: {\n type: String,\n default: null\n }\n },\n emits: [\n \"submit\"\n ],\n data() {\n return {\n searchQuery: \"\",\n selectedResult: null,\n resultsBySearchProvider: {},\n searching: false,\n searchingMoreOf: null,\n abortController: null,\n noOptionsText: t(\"Start typing to search\"),\n providerIconAlt: t(\"Provider icon\")\n };\n },\n computed: {\n mySearchPlaceholder() {\n return this.searchPlaceholder || t(\"Search\");\n },\n searchProviderIds() {\n return this.provider.search_providers_ids;\n },\n options() {\n if (this.searchQuery === \"\") {\n return [];\n }\n const options = [];\n if (isUrl(this.searchQuery)) {\n options.push(this.rawLinkEntry);\n }\n options.push(...this.formattedSearchResults);\n return options;\n },\n rawLinkEntry() {\n return {\n id: \"rawLinkEntry\",\n resourceUrl: this.searchQuery,\n isRawLink: true\n };\n },\n formattedSearchResults() {\n const results = [];\n this.searchProviderIds.forEach((pid) => {\n if (this.resultsBySearchProvider[pid].entries.length > 0) {\n if (this.searchProviderIds.length > 1 || this.resultsBySearchProvider[pid].entries.length > 1) {\n results.push({\n id: \"groupTitle-\" + pid,\n name: this.resultsBySearchProvider[pid].name,\n isCustomGroupTitle: true,\n providerId: pid\n });\n }\n const providerEntriesWithId = this.resultsBySearchProvider[pid].entries.map((entry, index) => {\n return {\n id: \"provider-\" + pid + \"-entry-\" + index,\n ...entry\n };\n });\n results.push(...providerEntriesWithId);\n if (this.resultsBySearchProvider[pid].isPaginated) {\n results.push({\n id: \"moreOf-\" + pid,\n name: this.resultsBySearchProvider[pid].name,\n isMore: true,\n providerId: pid,\n isLoading: this.searchingMoreOf === pid\n });\n }\n }\n });\n return results;\n },\n debouncedUpdateSearch() {\n return debounce(this.updateSearch, 500);\n }\n },\n mounted() {\n this.resetResults();\n },\n beforeUnmount() {\n this.cancelSearchRequests();\n },\n methods: {\n t,\n resetResults() {\n const resultsBySearchProvider = {};\n this.searchProviderIds.forEach((pid) => {\n resultsBySearchProvider[pid] = {\n entries: []\n };\n });\n this.resultsBySearchProvider = resultsBySearchProvider;\n },\n focus() {\n setTimeout(() => {\n this.$refs[\"search-select\"]?.$el?.querySelector(\"#search-select-input\")?.focus();\n }, 300);\n },\n cancelSearchRequests() {\n if (this.abortController) {\n this.abortController.abort();\n }\n },\n onSearchInput(query) {\n this.searchQuery = query;\n this.debouncedUpdateSearch();\n },\n onSelectResultSelected(item) {\n if (item !== null) {\n if (item.resourceUrl) {\n this.cancelSearchRequests();\n this.$emit(\"submit\", item.resourceUrl);\n } else if (item.isMore) {\n this.searchMoreOf(item.providerId).then(() => {\n this.selectedResult = null;\n });\n }\n }\n },\n searchMoreOf(searchProviderId) {\n this.searchingMoreOf = searchProviderId;\n this.cancelSearchRequests();\n return this.searchProviders(searchProviderId);\n },\n updateSearch() {\n this.cancelSearchRequests();\n this.resetResults();\n if (this.searchQuery === \"\") {\n this.searching = false;\n return;\n }\n return this.searchProviders();\n },\n searchProviders(searchProviderId = null) {\n this.abortController = new AbortController();\n this.searching = true;\n const searchPromises = searchProviderId === null ? [...this.searchProviderIds].map((pid) => {\n return this.searchOneProvider(pid);\n }) : [this.searchOneProvider(searchProviderId, this.resultsBySearchProvider[searchProviderId]?.cursor ?? null)];\n return Promise.allSettled(searchPromises).then((promises) => {\n const isOneCanceled = !!promises.find((p) => {\n return p.status === \"rejected\" && (p.reason.name === \"CanceledError\" || p.reason.code === \"ERR_CANCELED\");\n });\n if (!isOneCanceled) {\n this.searching = false;\n this.searchingMoreOf = null;\n }\n });\n },\n searchOneProvider(providerId, cursor = null) {\n const url = cursor === null ? generateOcsUrl(\"search/providers/{providerId}/search?term={term}&limit={limit}\", { providerId, term: this.searchQuery, limit: LIMIT }) : generateOcsUrl(\"search/providers/{providerId}/search?term={term}&limit={limit}&cursor={cursor}\", { providerId, term: this.searchQuery, limit: LIMIT, cursor });\n return axios.get(url, {\n signal: this.abortController.signal\n }).then((response) => {\n const data = response.data.ocs.data;\n this.resultsBySearchProvider[providerId].name = data.name;\n this.resultsBySearchProvider[providerId].cursor = data.cursor;\n this.resultsBySearchProvider[providerId].isPaginated = data.isPaginated;\n this.resultsBySearchProvider[providerId].entries.push(...data.entries);\n });\n }\n }\n};\nconst _hoisted_1$2 = {\n key: 0,\n class: \"custom-option\"\n};\nconst _hoisted_2$1 = { class: \"option-text\" };\nconst _hoisted_3 = {\n key: 2,\n class: \"custom-option group-name\"\n};\nconst _hoisted_4 = [\"src\"];\nconst _hoisted_5 = { class: \"option-text\" };\nconst _hoisted_6 = {\n key: 3,\n class: \"custom-option\"\n};\nconst _hoisted_7 = {\n key: 0,\n class: \"option-simple-icon icon-loading-small\"\n};\nconst _hoisted_8 = { class: \"option-text\" };\nconst _hoisted_9 = [\"alt\", \"src\"];\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_LinkVariantIcon = resolveComponent(\"LinkVariantIcon\");\n const _component_NcSearchResult = resolveComponent(\"NcSearchResult\");\n const _component_DotsHorizontalIcon = resolveComponent(\"DotsHorizontalIcon\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"smart-picker-search\", { \"with-empty-content\": $props.showEmptyContent }])\n }, [\n createVNode(_component_NcSelect, {\n ref: \"search-select\",\n modelValue: $data.selectedResult,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.selectedResult = $event),\n $options.onSelectResultSelected\n ],\n class: \"smart-picker-search--select\",\n \"input-id\": \"search-select-input\",\n label: \"name\",\n placeholder: $options.mySearchPlaceholder,\n options: $options.options,\n \"append-to-body\": false,\n \"close-on-select\": false,\n \"clear-search-on-select\": false,\n \"clear-search-on-blur\": () => false,\n \"reset-focus-on-options-change\": false,\n filterable: false,\n autoscroll: true,\n \"reset-on-options-change\": false,\n loading: $data.searching,\n onSearch: $options.onSearchInput\n }, {\n option: withCtx((option) => [\n option.isRawLink ? (openBlock(), createElementBlock(\"div\", _hoisted_1$2, [\n createVNode(_component_LinkVariantIcon, {\n class: \"option-simple-icon\",\n size: 20\n }),\n createElementVNode(\"span\", _hoisted_2$1, toDisplayString($options.t(\"Raw link {options}\", { options: option.resourceUrl })), 1)\n ])) : option.resourceUrl ? (openBlock(), createBlock(_component_NcSearchResult, {\n key: 1,\n class: \"search-result\",\n entry: option,\n query: $data.searchQuery\n }, null, 8, [\"entry\", \"query\"])) : option.isCustomGroupTitle ? (openBlock(), createElementBlock(\"span\", _hoisted_3, [\n $props.provider.icon_url ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"provider-icon group-name-icon\",\n src: $props.provider.icon_url\n }, null, 8, _hoisted_4)) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_5, [\n createElementVNode(\"strong\", null, toDisplayString(option.name), 1)\n ])\n ])) : option.isMore ? (openBlock(), createElementBlock(\"span\", _hoisted_6, [\n option.isLoading ? (openBlock(), createElementBlock(\"span\", _hoisted_7)) : (openBlock(), createBlock(_component_DotsHorizontalIcon, {\n key: 1,\n class: \"option-simple-icon\",\n size: 20\n })),\n createElementVNode(\"span\", _hoisted_8, toDisplayString($options.t('Load more \"{options}\"', { options: option.name })), 1)\n ])) : createCommentVNode(\"\", true)\n ]),\n \"no-options\": withCtx(() => [\n createTextVNode(toDisplayString($data.noOptionsText), 1)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"placeholder\", \"options\", \"loading\", \"onSearch\", \"onUpdate:modelValue\"]),\n $props.showEmptyContent ? (openBlock(), createBlock(_component_NcEmptyContent, {\n key: 0,\n class: \"smart-picker-search--empty-content\"\n }, {\n icon: withCtx(() => [\n $props.provider.icon_url ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"provider-icon\",\n alt: $data.providerIconAlt,\n src: $props.provider.icon_url\n }, null, 8, _hoisted_9)) : (openBlock(), createBlock(_component_LinkVariantIcon, { key: 1 }))\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst NcSearch = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2], [\"__scopeId\", \"data-v-e8abf1d4\"]]);\nconst MODES = {\n providerList: 1,\n standardLinkInput: 2,\n searchInput: 3,\n customElement: 4\n};\nconst _sfc_main$1 = {\n name: \"NcReferencePicker\",\n components: {\n NcCustomPickerElement,\n NcProviderList,\n NcRawLinkInput,\n NcSearch\n },\n props: {\n /**\n * Provider to select on creation\n * Default: null. Show the provider list\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Optional width in pixels\n * Default: 100%\n */\n width: {\n type: Number,\n default: null\n },\n /**\n * Focus on the provider list select input on creation\n * Default: true\n */\n focusOnCreate: {\n type: Boolean,\n default: true\n }\n },\n emits: [\n \"cancel\",\n \"cancelRawLink\",\n \"cancelSearch\",\n \"providerSelected\",\n \"submit\"\n ],\n data() {\n return {\n MODES,\n selectedProvider: this.initialProvider\n };\n },\n computed: {\n mode() {\n return this.selectedProvider === null ? MODES.providerList : isCustomPickerElementRegistered(this.selectedProvider.id) ? MODES.customElement : this.selectedProvider.search_providers_ids ? MODES.searchInput : MODES.standardLinkInput;\n },\n pickerWrapperStyle() {\n return {\n width: this.width ? this.width + \"px\" : void 0\n };\n }\n },\n mounted() {\n if (this.focusOnCreate) {\n if (this.initialProvider) {\n setTimeout(() => {\n this.$refs[\"url-input\"]?.focus();\n }, 300);\n } else {\n this.$nextTick(() => {\n this.$refs[\"provider-list\"]?.focus();\n });\n }\n }\n },\n methods: {\n onEscapePressed() {\n if (this.selectedProvider !== null) {\n this.deselectProvider();\n } else {\n this.cancelProviderSelection();\n }\n },\n onProviderSelected(provider) {\n this.selectedProvider = provider;\n this.$emit(\"providerSelected\", provider);\n this.$nextTick(() => {\n this.$refs[\"url-input\"]?.focus();\n });\n },\n cancelCustomElement() {\n this.deselectProvider();\n },\n cancelSearch() {\n this.$emit(\"cancelSearch\", this.selectedProvider?.title);\n this.deselectProvider();\n },\n cancelRawLinkInput() {\n this.$emit(\"cancelRawLink\", this.selectedProvider?.title);\n this.deselectProvider();\n },\n cancelProviderSelection() {\n this.$emit(\"cancel\");\n },\n submitLink(link) {\n if (this.selectedProvider !== null) {\n touchProvider(this.selectedProvider.id);\n }\n this.$emit(\"submit\", link);\n this.deselectProvider();\n },\n deselectProvider() {\n this.selectedProvider = null;\n this.$emit(\"providerSelected\", null);\n setTimeout(() => {\n this.$refs[\"provider-list\"]?.focus();\n }, 300);\n }\n }\n};\nconst _hoisted_1$1 = {\n key: 3,\n class: \"custom-element-wrapper\"\n};\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcProviderList = resolveComponent(\"NcProviderList\");\n const _component_NcRawLinkInput = resolveComponent(\"NcRawLinkInput\");\n const _component_NcSearch = resolveComponent(\"NcSearch\");\n const _component_NcCustomPickerElement = resolveComponent(\"NcCustomPickerElement\");\n return openBlock(), createElementBlock(\"div\", {\n class: \"reference-picker\",\n style: normalizeStyle($options.pickerWrapperStyle),\n tabindex: \"-1\",\n onKeydown: _cache[0] || (_cache[0] = withKeys(withModifiers((...args) => $options.onEscapePressed && $options.onEscapePressed(...args), [\"stop\", \"prevent\"]), [\"esc\"]))\n }, [\n $options.mode === $data.MODES.providerList ? (openBlock(), createBlock(_component_NcProviderList, {\n key: 0,\n ref: \"provider-list\",\n onSelectProvider: $options.onProviderSelected,\n onSubmit: $options.submitLink,\n onCancel: $options.cancelProviderSelection\n }, null, 8, [\"onSelectProvider\", \"onSubmit\", \"onCancel\"])) : $options.mode === $data.MODES.standardLinkInput ? (openBlock(), createBlock(_component_NcRawLinkInput, {\n key: 1,\n ref: \"url-input\",\n provider: $data.selectedProvider,\n onSubmit: $options.submitLink,\n onCancel: $options.cancelRawLinkInput\n }, null, 8, [\"provider\", \"onSubmit\", \"onCancel\"])) : $options.mode === $data.MODES.searchInput ? (openBlock(), createBlock(_component_NcSearch, {\n key: 2,\n ref: \"url-input\",\n provider: $data.selectedProvider,\n onCancel: $options.cancelSearch,\n onSubmit: $options.submitLink\n }, null, 8, [\"provider\", \"onCancel\", \"onSubmit\"])) : $options.mode === $data.MODES.customElement ? (openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createVNode(_component_NcCustomPickerElement, {\n provider: $data.selectedProvider,\n class: \"custom-element\",\n onSubmit: $options.submitLink,\n onCancel: $options.cancelCustomElement\n }, null, 8, [\"provider\", \"onSubmit\", \"onCancel\"])\n ])) : createCommentVNode(\"\", true)\n ], 36);\n}\nconst NcReferencePicker = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-b193005a\"]]);\nregister(t12, t19);\nconst _sfc_main = {\n name: \"NcReferencePickerModal\",\n components: {\n NcReferencePicker,\n NcModal,\n NcButton,\n ArrowLeftIcon,\n CloseIcon: IconClose\n },\n props: {\n /**\n * Provider to select on creation\n * Show the provider list if no initial one is provided\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Focus on the input item on create\n */\n focusOnCreate: {\n type: Boolean,\n default: true\n },\n /**\n * If true, add the modal content to the Viewer trap elements via the event-bus\n */\n isInsideViewer: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"cancel\",\n \"submit\"\n ],\n data() {\n return {\n show: true,\n selectedProvider: this.initialProvider,\n backButtonTitle: t(\"Back to provider selection\"),\n closeButtonTitle: t(\"Close\"),\n closeButtonLabel: t(\"Close Smart Picker\")\n };\n },\n computed: {\n isProviderSelected() {\n return this.selectedProvider !== null;\n },\n showBackButton() {\n return this.initialProvider === null && this.isProviderSelected;\n },\n modalSize() {\n return this.isProviderSelected && isCustomPickerElementRegistered(this.selectedProvider.id) ? getCustomPickerElementSize(this.selectedProvider.id) ?? \"large\" : \"normal\";\n },\n showModalName() {\n return !this.isProviderSelected || !isCustomPickerElementRegistered(this.selectedProvider.id);\n },\n modalName() {\n return this.isProviderSelected ? this.selectedProvider.title : t(\"Smart Picker\");\n }\n },\n mounted() {\n if (this.isInsideViewer) {\n const elem = this.$refs.modal_content;\n emit(\"viewer:trapElements:changed\", elem);\n }\n },\n methods: {\n onCancel() {\n this.show = false;\n this.$emit(\"cancel\");\n },\n onSubmit(value) {\n this.show = false;\n this.$emit(\"submit\", value);\n },\n onProviderSelect(provider) {\n this.selectedProvider = provider;\n if (provider === null && this.initialProvider !== null) {\n this.onCancel();\n }\n },\n onBackClicked() {\n this.$refs.referencePicker.deselectProvider();\n }\n }\n};\nconst _hoisted_1 = {\n ref: \"modal_content\",\n class: \"reference-picker-modal--content\"\n};\nconst _hoisted_2 = { key: 1 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ArrowLeftIcon = resolveComponent(\"ArrowLeftIcon\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_CloseIcon = resolveComponent(\"CloseIcon\");\n const _component_NcReferencePicker = resolveComponent(\"NcReferencePicker\");\n const _component_NcModal = resolveComponent(\"NcModal\");\n return $data.show ? (openBlock(), createBlock(_component_NcModal, {\n key: 0,\n size: $options.modalSize,\n class: \"reference-picker-modal\",\n onClose: $options.onCancel\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", _hoisted_1, [\n $options.showBackButton ? (openBlock(), createBlock(_component_NcButton, {\n key: 0,\n \"aria-label\": $data.backButtonTitle,\n title: $data.backButtonTitle,\n class: \"back-button\",\n onClick: $options.onBackClicked\n }, {\n icon: withCtx(() => [\n createVNode(_component_ArrowLeftIcon)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"])) : createCommentVNode(\"\", true),\n createVNode(_component_NcButton, {\n class: \"close-button\",\n \"aria-label\": $data.closeButtonLabel,\n title: $data.closeButtonTitle,\n variant: \"tertiary\",\n onClick: $options.onCancel\n }, {\n icon: withCtx(() => [\n createVNode(_component_CloseIcon)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"]),\n $options.showModalName ? (openBlock(), createElementBlock(\"h2\", _hoisted_2, toDisplayString($options.modalName), 1)) : createCommentVNode(\"\", true),\n createVNode(_component_NcReferencePicker, {\n ref: \"referencePicker\",\n \"initial-provider\": $props.initialProvider,\n \"focus-on-create\": $props.focusOnCreate,\n onProviderSelected: $options.onProviderSelect,\n onSubmit: $options.onSubmit,\n onCancel: $options.onCancel\n }, null, 8, [\"initial-provider\", \"focus-on-create\", \"onProviderSelected\", \"onSubmit\", \"onCancel\"])\n ], 512)\n ]),\n _: 1\n }, 8, [\"size\", \"onClose\"])) : createCommentVNode(\"\", true);\n}\nconst NcReferencePickerModal = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-15018516\"]]);\nasync function getLinkWithPicker(providerId, isInsideViewer) {\n const modalId = \"referencePickerModal\";\n const modalElement = document.createElement(\"div\");\n modalElement.id = modalId;\n document.body.append(modalElement);\n const { promise, reject, resolve } = Promise.withResolvers();\n const initialProvider = providerId && getProvider(providerId) || null;\n const view = createApp(NcReferencePickerModal, {\n initialProvider,\n isInsideViewer,\n onCancel() {\n view.unmount();\n reject(new Error(\"User cancellation\"));\n },\n onSubmit(link) {\n view.unmount();\n resolve(link);\n }\n });\n view.mount(modalElement);\n return promise;\n}\nexport {\n NcReferencePicker as N,\n anyLinkProviderId as a,\n getProvider as b,\n getProviders as c,\n sortProviders as d,\n NcReferencePickerModal as e,\n NcReferenceWidget as f,\n getLinkWithPicker as g,\n NcSearch as h,\n searchProvider as s\n};\n//# sourceMappingURL=referencePickerModal-CXAtbcPd.mjs.map\n","import '../assets/NcRichText-RvICaxkO.css';\nimport rehypeExternalLinks from \"rehype-external-links\";\nimport rehype2react from \"rehype-react\";\nimport breaks from \"remark-breaks\";\nimport remarkParse from \"remark-parse\";\nimport remark2rehype from \"remark-rehype\";\nimport remarkUnlinkProtocols from \"remark-unlink-protocols\";\nimport { unified } from \"unified\";\nimport { resolveComponent, createElementBlock, createCommentVNode, openBlock, normalizeClass, Fragment, renderList, createBlock, defineComponent, unref, withCtx, createVNode, ref, h } from \"vue\";\nimport { RouterLink } from \"vue-router\";\nimport { N as NcCheckboxRadioSwitch } from \"./NcCheckboxRadioSwitch-DisCqPZK.mjs\";\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { getSharingToken } from \"@nextcloud/sharing/public\";\nimport { f as NcReferenceWidget } from \"./referencePickerModal-CXAtbcPd.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { U as URL_PATTERN, g as getRoute, p as parseUrl, r as remarkAutolink } from \"./autolink-U5pBzLgI.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcButton } from \"./NcButton-CzpKEx4V.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { u as useCopy } from \"./useCopy-D4CcMqlA.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { u } from \"unist-builder\";\nimport { visit, EXIT as EXIT$1, SKIP as SKIP$1 } from \"unist-util-visit\";\nconst _sfc_main$2 = {\n name: \"NcReferenceList\",\n components: {\n NcReferenceWidget\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n text: {\n type: String,\n default: \"\"\n },\n referenceData: {\n type: Array,\n default: null\n },\n limit: {\n type: Number,\n default: 1\n },\n displayFallback: {\n type: Boolean,\n default: false\n },\n interactive: {\n type: Boolean,\n default: true\n },\n interactiveOptIn: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"loaded\"],\n data() {\n return {\n references: null,\n loading: true\n };\n },\n computed: {\n isVisible() {\n return this.loading || this.displayedReferences.length !== 0;\n },\n values() {\n if (this.referenceData) {\n return this.referenceData;\n }\n if (this.displayFallback && !this.loading && !this.references) {\n return [this.fallbackReference];\n }\n return this.references ? Object.values(this.references) : [];\n },\n firstReference() {\n return this.values[0] ?? null;\n },\n displayedReferences() {\n return this.values.filter(Boolean).slice(0, this.limit);\n },\n fallbackReference() {\n return {\n accessible: true,\n openGraphObject: {\n id: this.text,\n link: this.text,\n name: this.text\n },\n richObjectType: \"open-graph\"\n };\n }\n },\n watch: {\n text: \"fetch\"\n },\n mounted() {\n this.fetch();\n },\n methods: {\n fetch() {\n this.loading = true;\n if (this.referenceData) {\n this.references = null;\n this.loading = false;\n return;\n }\n if (!new RegExp(URL_PATTERN).exec(this.text)) {\n this.references = null;\n this.loading = false;\n return;\n }\n this.resolve().then((response) => {\n this.references = response.data.ocs.data.references;\n this.loading = false;\n this.$emit(\"loaded\");\n }).catch((error) => {\n logger.error(\"[NcReferenceList] Failed to extract references\", { error });\n this.loading = false;\n this.$emit(\"loaded\");\n });\n },\n resolve() {\n const match = new RegExp(URL_PATTERN).exec(this.text.trim());\n const isPublic = getCurrentUser() === null;\n if (this.limit === 1 && match) {\n return isPublic ? axios.get(generateOcsUrl(\"references/resolvePublic\") + `?reference=${encodeURIComponent(match[0])}&sharingToken=${getSharingToken()}`) : axios.get(generateOcsUrl(\"references/resolve\") + `?reference=${encodeURIComponent(match[0])}`);\n }\n return isPublic ? axios.post(generateOcsUrl(\"references/extractPublic\"), {\n text: this.text,\n resolve: true,\n limit: this.limit,\n sharingToken: getSharingToken()\n }) : axios.post(generateOcsUrl(\"references/extract\"), {\n text: this.text,\n resolve: true,\n limit: this.limit\n });\n }\n }\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcReferenceWidget = resolveComponent(\"NcReferenceWidget\");\n return $options.isVisible ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"widgets--list\", { \"icon-loading\": $data.loading }])\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.displayedReferences, (reference) => {\n return openBlock(), createBlock(_component_NcReferenceWidget, {\n key: reference.openGraphObject?.id,\n reference,\n interactive: $props.interactive,\n \"interactive-opt-in\": $props.interactiveOptIn\n }, null, 8, [\"reference\", \"interactive\", \"interactive-opt-in\"]);\n }), 128))\n ], 2)) : createCommentVNode(\"\", true);\n}\nconst NcReferenceList = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-cd116174\"]]);\nfunction ccount(value, character) {\n const source = String(value);\n if (typeof character !== \"string\") {\n throw new TypeError(\"Expected character\");\n }\n let count = 0;\n let index = source.indexOf(character);\n while (index !== -1) {\n count++;\n index = source.indexOf(character, index + character.length);\n }\n return count;\n}\nfunction ok$1() {\n}\nconst asciiAlpha = regexCheck(/[A-Za-z]/);\nconst asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\nfunction asciiControl(code2) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code2 !== null && (code2 < 32 || code2 === 127)\n );\n}\nfunction markdownLineEnding(code2) {\n return code2 !== null && code2 < -2;\n}\nfunction markdownLineEndingOrSpace(code2) {\n return code2 !== null && (code2 < 0 || code2 === 32);\n}\nfunction markdownSpace(code2) {\n return code2 === -2 || code2 === -1 || code2 === 32;\n}\nconst unicodePunctuation = regexCheck(new RegExp(\"\\\\p{P}|\\\\p{S}\", \"u\"));\nconst unicodeWhitespace = regexCheck(/\\s/);\nfunction regexCheck(regex) {\n return check;\n function check(code2) {\n return code2 !== null && code2 > -1 && regex.test(String.fromCharCode(code2));\n }\n}\nfunction escapeStringRegexp(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(\"Expected a string\");\n }\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n}\nconst convert = (\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n (function(test) {\n if (test === null || test === void 0) {\n return ok;\n }\n if (typeof test === \"function\") {\n return castFactory(test);\n }\n if (typeof test === \"object\") {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test);\n }\n if (typeof test === \"string\") {\n return typeFactory(test);\n }\n throw new Error(\"Expected function, string, or object as test\");\n })\n);\nfunction anyFactory(tests) {\n const checks = [];\n let index = -1;\n while (++index < tests.length) {\n checks[index] = convert(tests[index]);\n }\n return castFactory(any);\n function any(...parameters) {\n let index2 = -1;\n while (++index2 < checks.length) {\n if (checks[index2].apply(this, parameters)) return true;\n }\n return false;\n }\n}\nfunction propsFactory(check) {\n const checkAsRecord = (\n /** @type {Record<string, unknown>} */\n check\n );\n return castFactory(all2);\n function all2(node2) {\n const nodeAsRecord = (\n /** @type {Record<string, unknown>} */\n /** @type {unknown} */\n node2\n );\n let key;\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false;\n }\n return true;\n }\n}\nfunction typeFactory(check) {\n return castFactory(type);\n function type(node2) {\n return node2 && node2.type === check;\n }\n}\nfunction castFactory(testFunction) {\n return check;\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) && testFunction.call(\n this,\n value,\n typeof index === \"number\" ? index : void 0,\n parent || void 0\n )\n );\n }\n}\nfunction ok() {\n return true;\n}\nfunction looksLikeANode(value) {\n return value !== null && typeof value === \"object\" && \"type\" in value;\n}\nfunction color(d) {\n return d;\n}\nconst empty = [];\nconst CONTINUE = true;\nconst EXIT = false;\nconst SKIP = \"skip\";\nfunction visitParents(tree, test, visitor, reverse) {\n let check;\n {\n check = test;\n }\n const is = convert(check);\n const step = 1;\n factory(tree, void 0, [])();\n function factory(node2, index, parents) {\n const value = (\n /** @type {Record<string, unknown>} */\n node2 && typeof node2 === \"object\" ? node2 : {}\n );\n if (typeof value.type === \"string\") {\n const name = (\n // `hast`\n typeof value.tagName === \"string\" ? value.tagName : (\n // `xast`\n typeof value.name === \"string\" ? value.name : void 0\n )\n );\n Object.defineProperty(visit2, \"name\", {\n value: \"node (\" + color(node2.type + (name ? \"<\" + name + \">\" : \"\")) + \")\"\n });\n }\n return visit2;\n function visit2() {\n let result = empty;\n let subresult;\n let offset;\n let grandparents;\n if (is(node2, index, parents[parents.length - 1] || void 0)) {\n result = toResult(visitor(node2, parents));\n if (result[0] === EXIT) {\n return result;\n }\n }\n if (\"children\" in node2 && node2.children) {\n const nodeAsParent = (\n /** @type {UnistParent} */\n node2\n );\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = -1 + step;\n grandparents = parents.concat(nodeAsParent);\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset];\n subresult = factory(child, offset, grandparents)();\n if (subresult[0] === EXIT) {\n return subresult;\n }\n offset = typeof subresult[1] === \"number\" ? subresult[1] : offset + step;\n }\n }\n }\n return result;\n }\n }\n}\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value;\n }\n if (typeof value === \"number\") {\n return [CONTINUE, value];\n }\n return value === null || value === void 0 ? empty : [value];\n}\nfunction findAndReplace(tree, list2, options) {\n const settings = options || {};\n const ignored = convert(settings.ignore || []);\n const pairs = toPairs(list2);\n let pairIndex = -1;\n while (++pairIndex < pairs.length) {\n visitParents(tree, \"text\", visitor);\n }\n function visitor(node2, parents) {\n let index = -1;\n let grandparent;\n while (++index < parents.length) {\n const parent = parents[index];\n const siblings = grandparent ? grandparent.children : void 0;\n if (ignored(\n parent,\n siblings ? siblings.indexOf(parent) : void 0,\n grandparent\n )) {\n return;\n }\n grandparent = parent;\n }\n if (grandparent) {\n return handler(node2, parents);\n }\n }\n function handler(node2, parents) {\n const parent = parents[parents.length - 1];\n const find = pairs[pairIndex][0];\n const replace2 = pairs[pairIndex][1];\n let start = 0;\n const siblings = parent.children;\n const index = siblings.indexOf(node2);\n let change = false;\n let nodes = [];\n find.lastIndex = 0;\n let match = find.exec(node2.value);\n while (match) {\n const position = match.index;\n const matchObject = {\n index: match.index,\n input: match.input,\n stack: [...parents, node2]\n };\n let value = replace2(...match, matchObject);\n if (typeof value === \"string\") {\n value = value.length > 0 ? { type: \"text\", value } : void 0;\n }\n if (value === false) {\n find.lastIndex = position + 1;\n } else {\n if (start !== position) {\n nodes.push({\n type: \"text\",\n value: node2.value.slice(start, position)\n });\n }\n if (Array.isArray(value)) {\n nodes.push(...value);\n } else if (value) {\n nodes.push(value);\n }\n start = position + match[0].length;\n change = true;\n }\n if (!find.global) {\n break;\n }\n match = find.exec(node2.value);\n }\n if (change) {\n if (start < node2.value.length) {\n nodes.push({ type: \"text\", value: node2.value.slice(start) });\n }\n parent.children.splice(index, 1, ...nodes);\n } else {\n nodes = [node2];\n }\n return index + nodes.length;\n }\n}\nfunction toPairs(tupleOrList) {\n const result = [];\n if (!Array.isArray(tupleOrList)) {\n throw new TypeError(\"Expected find and replace tuple or list of tuples\");\n }\n const list2 = !tupleOrList[0] || Array.isArray(tupleOrList[0]) ? tupleOrList : [tupleOrList];\n let index = -1;\n while (++index < list2.length) {\n const tuple = list2[index];\n result.push([toExpression(tuple[0]), toFunction(tuple[1])]);\n }\n return result;\n}\nfunction toExpression(find) {\n return typeof find === \"string\" ? new RegExp(escapeStringRegexp(find), \"g\") : find;\n}\nfunction toFunction(replace2) {\n return typeof replace2 === \"function\" ? replace2 : function() {\n return replace2;\n };\n}\nconst inConstruct = \"phrasing\";\nconst notInConstruct = [\"autolink\", \"link\", \"image\", \"label\"];\nfunction gfmAutolinkLiteralFromMarkdown() {\n return {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n };\n}\nfunction gfmAutolinkLiteralToMarkdown() {\n return {\n unsafe: [\n {\n character: \"@\",\n before: \"[+\\\\-.\\\\w]\",\n after: \"[\\\\-.\\\\w]\",\n inConstruct,\n notInConstruct\n },\n {\n character: \".\",\n before: \"[Ww]\",\n after: \"[\\\\-.\\\\w]\",\n inConstruct,\n notInConstruct\n },\n {\n character: \":\",\n before: \"[ps]\",\n after: \"\\\\/\",\n inConstruct,\n notInConstruct\n }\n ]\n };\n}\nfunction enterLiteralAutolink(token) {\n this.enter({ type: \"link\", title: null, url: \"\", children: [] }, token);\n}\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token);\n}\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token);\n}\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token);\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"link\");\n node2.url = \"http://\" + this.sliceSerialize(token);\n}\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token);\n}\nfunction exitLiteralAutolink(token) {\n this.exit(token);\n}\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g, findEmail]\n ],\n { ignore: [\"link\", \"linkReference\"] }\n );\n}\nfunction findUrl(_, protocol, domain2, path2, match) {\n let prefix = \"\";\n if (!previous(match)) {\n return false;\n }\n if (/^w/i.test(protocol)) {\n domain2 = protocol + domain2;\n protocol = \"\";\n prefix = \"http://\";\n }\n if (!isCorrectDomain(domain2)) {\n return false;\n }\n const parts = splitUrl(domain2 + path2);\n if (!parts[0]) return false;\n const result = {\n type: \"link\",\n title: null,\n url: prefix + protocol + parts[0],\n children: [{ type: \"text\", value: protocol + parts[0] }]\n };\n if (parts[1]) {\n return [result, { type: \"text\", value: parts[1] }];\n }\n return result;\n}\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) || // Label ends in not allowed character.\n /[-\\d_]$/.test(label)\n ) {\n return false;\n }\n return {\n type: \"link\",\n title: null,\n url: \"mailto:\" + atext + \"@\" + label,\n children: [{ type: \"text\", value: atext + \"@\" + label }]\n };\n}\nfunction isCorrectDomain(domain2) {\n const parts = domain2.split(\".\");\n if (parts.length < 2 || parts[parts.length - 1] && (/_/.test(parts[parts.length - 1]) || !/[a-zA-Z\\d]/.test(parts[parts.length - 1])) || parts[parts.length - 2] && (/_/.test(parts[parts.length - 2]) || !/[a-zA-Z\\d]/.test(parts[parts.length - 2]))) {\n return false;\n }\n return true;\n}\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url);\n if (!trailExec) {\n return [url, void 0];\n }\n url = url.slice(0, trailExec.index);\n let trail2 = trailExec[0];\n let closingParenIndex = trail2.indexOf(\")\");\n const openingParens = ccount(url, \"(\");\n let closingParens = ccount(url, \")\");\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail2.slice(0, closingParenIndex + 1);\n trail2 = trail2.slice(closingParenIndex + 1);\n closingParenIndex = trail2.indexOf(\")\");\n closingParens++;\n }\n return [url, trail2];\n}\nfunction previous(match, email) {\n const code2 = match.input.charCodeAt(match.index - 1);\n return (match.index === 0 || unicodeWhitespace(code2) || unicodePunctuation(code2)) && (!email || code2 !== 47);\n}\nfunction normalizeIdentifier(value) {\n return value.replace(/[\\t\\n\\r ]+/g, \" \").replace(/^ | $/g, \"\").toLowerCase().toUpperCase();\n}\nfootnoteReference.peek = footnoteReferencePeek;\nfunction enterFootnoteCallString() {\n this.buffer();\n}\nfunction enterFootnoteCall(token) {\n this.enter({ type: \"footnoteReference\", identifier: \"\", label: \"\" }, token);\n}\nfunction enterFootnoteDefinitionLabelString() {\n this.buffer();\n}\nfunction enterFootnoteDefinition(token) {\n this.enter(\n { type: \"footnoteDefinition\", identifier: \"\", label: \"\", children: [] },\n token\n );\n}\nfunction exitFootnoteCallString(token) {\n const label = this.resume();\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"footnoteReference\");\n node2.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase();\n node2.label = label;\n}\nfunction exitFootnoteCall(token) {\n this.exit(token);\n}\nfunction exitFootnoteDefinitionLabelString(token) {\n const label = this.resume();\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"footnoteDefinition\");\n node2.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase();\n node2.label = label;\n}\nfunction exitFootnoteDefinition(token) {\n this.exit(token);\n}\nfunction footnoteReferencePeek() {\n return \"[\";\n}\nfunction footnoteReference(node2, _, state, info) {\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[^\");\n const exit2 = state.enter(\"footnoteReference\");\n const subexit = state.enter(\"reference\");\n value += tracker.move(\n state.safe(state.associationId(node2), { after: \"]\", before: value })\n );\n subexit();\n exit2();\n value += tracker.move(\"]\");\n return value;\n}\nfunction gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteCallString: enterFootnoteCallString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteDefinition: enterFootnoteDefinition\n },\n exit: {\n gfmFootnoteCallString: exitFootnoteCallString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteDefinition: exitFootnoteDefinition\n }\n };\n}\nfunction gfmFootnoteToMarkdown(options) {\n let firstLineBlank = false;\n if (options && options.firstLineBlank) {\n firstLineBlank = true;\n }\n return {\n handlers: { footnoteDefinition, footnoteReference },\n // This is on by default already.\n unsafe: [{ character: \"[\", inConstruct: [\"label\", \"phrasing\", \"reference\"] }]\n };\n function footnoteDefinition(node2, _, state, info) {\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[^\");\n const exit2 = state.enter(\"footnoteDefinition\");\n const subexit = state.enter(\"label\");\n value += tracker.move(\n state.safe(state.associationId(node2), { before: value, after: \"]\" })\n );\n subexit();\n value += tracker.move(\"]:\");\n if (node2.children && node2.children.length > 0) {\n tracker.shift(4);\n value += tracker.move(\n (firstLineBlank ? \"\\n\" : \" \") + state.indentLines(\n state.containerFlow(node2, tracker.current()),\n firstLineBlank ? mapAll : mapExceptFirst\n )\n );\n }\n exit2();\n return value;\n }\n}\nfunction mapExceptFirst(line, index, blank) {\n return index === 0 ? line : mapAll(line, index, blank);\n}\nfunction mapAll(line, index, blank) {\n return (blank ? \"\" : \" \") + line;\n}\nconst constructsWithoutStrikethrough = [\n \"autolink\",\n \"destinationLiteral\",\n \"destinationRaw\",\n \"reference\",\n \"titleQuote\",\n \"titleApostrophe\"\n];\nhandleDelete.peek = peekDelete;\nfunction gfmStrikethroughFromMarkdown() {\n return {\n canContainEols: [\"delete\"],\n enter: { strikethrough: enterStrikethrough },\n exit: { strikethrough: exitStrikethrough }\n };\n}\nfunction gfmStrikethroughToMarkdown() {\n return {\n unsafe: [\n {\n character: \"~\",\n inConstruct: \"phrasing\",\n notInConstruct: constructsWithoutStrikethrough\n }\n ],\n handlers: { delete: handleDelete }\n };\n}\nfunction enterStrikethrough(token) {\n this.enter({ type: \"delete\", children: [] }, token);\n}\nfunction exitStrikethrough(token) {\n this.exit(token);\n}\nfunction handleDelete(node2, _, state, info) {\n const tracker = state.createTracker(info);\n const exit2 = state.enter(\"strikethrough\");\n let value = tracker.move(\"~~\");\n value += state.containerPhrasing(node2, {\n ...tracker.current(),\n before: value,\n after: \"~\"\n });\n value += tracker.move(\"~~\");\n exit2();\n return value;\n}\nfunction peekDelete() {\n return \"~\";\n}\nfunction defaultStringLength(value) {\n return value.length;\n}\nfunction markdownTable(table, options) {\n const settings = options || {};\n const align = (settings.align || []).concat();\n const stringLength = settings.stringLength || defaultStringLength;\n const alignments = [];\n const cellMatrix = [];\n const sizeMatrix = [];\n const longestCellByColumn = [];\n let mostCellsPerRow = 0;\n let rowIndex = -1;\n while (++rowIndex < table.length) {\n const row2 = [];\n const sizes2 = [];\n let columnIndex2 = -1;\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length;\n }\n while (++columnIndex2 < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex2]);\n if (settings.alignDelimiters !== false) {\n const size = stringLength(cell);\n sizes2[columnIndex2] = size;\n if (longestCellByColumn[columnIndex2] === void 0 || size > longestCellByColumn[columnIndex2]) {\n longestCellByColumn[columnIndex2] = size;\n }\n }\n row2.push(cell);\n }\n cellMatrix[rowIndex] = row2;\n sizeMatrix[rowIndex] = sizes2;\n }\n let columnIndex = -1;\n if (typeof align === \"object\" && \"length\" in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex]);\n }\n } else {\n const code2 = toAlignment(align);\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code2;\n }\n }\n columnIndex = -1;\n const row = [];\n const sizes = [];\n while (++columnIndex < mostCellsPerRow) {\n const code2 = alignments[columnIndex];\n let before = \"\";\n let after = \"\";\n if (code2 === 99) {\n before = \":\";\n after = \":\";\n } else if (code2 === 108) {\n before = \":\";\n } else if (code2 === 114) {\n after = \":\";\n }\n let size = settings.alignDelimiters === false ? 1 : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n );\n const cell = before + \"-\".repeat(size) + after;\n if (settings.alignDelimiters !== false) {\n size = before.length + size + after.length;\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size;\n }\n sizes[columnIndex] = size;\n }\n row[columnIndex] = cell;\n }\n cellMatrix.splice(1, 0, row);\n sizeMatrix.splice(1, 0, sizes);\n rowIndex = -1;\n const lines = [];\n while (++rowIndex < cellMatrix.length) {\n const row2 = cellMatrix[rowIndex];\n const sizes2 = sizeMatrix[rowIndex];\n columnIndex = -1;\n const line = [];\n while (++columnIndex < mostCellsPerRow) {\n const cell = row2[columnIndex] || \"\";\n let before = \"\";\n let after = \"\";\n if (settings.alignDelimiters !== false) {\n const size = longestCellByColumn[columnIndex] - (sizes2[columnIndex] || 0);\n const code2 = alignments[columnIndex];\n if (code2 === 114) {\n before = \" \".repeat(size);\n } else if (code2 === 99) {\n if (size % 2) {\n before = \" \".repeat(size / 2 + 0.5);\n after = \" \".repeat(size / 2 - 0.5);\n } else {\n before = \" \".repeat(size / 2);\n after = before;\n }\n } else {\n after = \" \".repeat(size);\n }\n }\n if (settings.delimiterStart !== false && !columnIndex) {\n line.push(\"|\");\n }\n if (settings.padding !== false && // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(settings.alignDelimiters === false && cell === \"\") && (settings.delimiterStart !== false || columnIndex)) {\n line.push(\" \");\n }\n if (settings.alignDelimiters !== false) {\n line.push(before);\n }\n line.push(cell);\n if (settings.alignDelimiters !== false) {\n line.push(after);\n }\n if (settings.padding !== false) {\n line.push(\" \");\n }\n if (settings.delimiterEnd !== false || columnIndex !== mostCellsPerRow - 1) {\n line.push(\"|\");\n }\n }\n lines.push(\n settings.delimiterEnd === false ? line.join(\"\").replace(/ +$/, \"\") : line.join(\"\")\n );\n }\n return lines.join(\"\\n\");\n}\nfunction serialize(value) {\n return value === null || value === void 0 ? \"\" : String(value);\n}\nfunction toAlignment(value) {\n const code2 = typeof value === \"string\" ? value.codePointAt(0) : 0;\n return code2 === 67 || code2 === 99 ? 99 : code2 === 76 || code2 === 108 ? 108 : code2 === 82 || code2 === 114 ? 114 : 0;\n}\nfunction blockquote(node2, _, state, info) {\n const exit2 = state.enter(\"blockquote\");\n const tracker = state.createTracker(info);\n tracker.move(\"> \");\n tracker.shift(2);\n const value = state.indentLines(\n state.containerFlow(node2, tracker.current()),\n map$1\n );\n exit2();\n return value;\n}\nfunction map$1(line, _, blank) {\n return \">\" + (blank ? \"\" : \" \") + line;\n}\nfunction patternInScope(stack, pattern) {\n return listInScope(stack, pattern.inConstruct, true) && !listInScope(stack, pattern.notInConstruct, false);\n}\nfunction listInScope(stack, list2, none) {\n if (typeof list2 === \"string\") {\n list2 = [list2];\n }\n if (!list2 || list2.length === 0) {\n return none;\n }\n let index = -1;\n while (++index < list2.length) {\n if (stack.includes(list2[index])) {\n return true;\n }\n }\n return false;\n}\nfunction hardBreak(_, _1, state, info) {\n let index = -1;\n while (++index < state.unsafe.length) {\n if (state.unsafe[index].character === \"\\n\" && patternInScope(state.stack, state.unsafe[index])) {\n return /[ \\t]/.test(info.before) ? \"\" : \" \";\n }\n }\n return \"\\\\\\n\";\n}\nfunction longestStreak(value, substring) {\n const source = String(value);\n let index = source.indexOf(substring);\n let expected = index;\n let count = 0;\n let max = 0;\n if (typeof substring !== \"string\") {\n throw new TypeError(\"Expected substring\");\n }\n while (index !== -1) {\n if (index === expected) {\n if (++count > max) {\n max = count;\n }\n } else {\n count = 1;\n }\n expected = index + substring.length;\n index = source.indexOf(substring, expected);\n }\n return max;\n}\nfunction formatCodeAsIndented(node2, state) {\n return Boolean(\n state.options.fences === false && node2.value && // If there’s no info…\n !node2.lang && // And there’s a non-whitespace character…\n /[^ \\r\\n]/.test(node2.value) && // And the value doesn’t start or end in a blank…\n !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node2.value)\n );\n}\nfunction checkFence(state) {\n const marker = state.options.fence || \"`\";\n if (marker !== \"`\" && marker !== \"~\") {\n throw new Error(\n \"Cannot serialize code with `\" + marker + \"` for `options.fence`, expected `` ` `` or `~`\"\n );\n }\n return marker;\n}\nfunction code$1(node2, _, state, info) {\n const marker = checkFence(state);\n const raw = node2.value || \"\";\n const suffix = marker === \"`\" ? \"GraveAccent\" : \"Tilde\";\n if (formatCodeAsIndented(node2, state)) {\n const exit3 = state.enter(\"codeIndented\");\n const value2 = state.indentLines(raw, map);\n exit3();\n return value2;\n }\n const tracker = state.createTracker(info);\n const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3));\n const exit2 = state.enter(\"codeFenced\");\n let value = tracker.move(sequence);\n if (node2.lang) {\n const subexit = state.enter(`codeFencedLang${suffix}`);\n value += tracker.move(\n state.safe(node2.lang, {\n before: value,\n after: \" \",\n encode: [\"`\"],\n ...tracker.current()\n })\n );\n subexit();\n }\n if (node2.lang && node2.meta) {\n const subexit = state.enter(`codeFencedMeta${suffix}`);\n value += tracker.move(\" \");\n value += tracker.move(\n state.safe(node2.meta, {\n before: value,\n after: \"\\n\",\n encode: [\"`\"],\n ...tracker.current()\n })\n );\n subexit();\n }\n value += tracker.move(\"\\n\");\n if (raw) {\n value += tracker.move(raw + \"\\n\");\n }\n value += tracker.move(sequence);\n exit2();\n return value;\n}\nfunction map(line, _, blank) {\n return (blank ? \"\" : \" \") + line;\n}\nfunction checkQuote(state) {\n const marker = state.options.quote || '\"';\n if (marker !== '\"' && marker !== \"'\") {\n throw new Error(\n \"Cannot serialize title with `\" + marker + \"` for `options.quote`, expected `\\\"`, or `'`\"\n );\n }\n return marker;\n}\nfunction definition(node2, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const exit2 = state.enter(\"definition\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[\");\n value += tracker.move(\n state.safe(state.associationId(node2), {\n before: value,\n after: \"]\",\n ...tracker.current()\n })\n );\n value += tracker.move(\"]: \");\n subexit();\n if (\n // If there’s no url, or…\n !node2.url || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node2.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node2.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node2.url, {\n before: value,\n after: node2.title ? \" \" : \"\\n\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node2.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node2.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n exit2();\n return value;\n}\nfunction checkEmphasis(state) {\n const marker = state.options.emphasis || \"*\";\n if (marker !== \"*\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize emphasis with `\" + marker + \"` for `options.emphasis`, expected `*`, or `_`\"\n );\n }\n return marker;\n}\nfunction encodeCharacterReference(code2) {\n return \"&#x\" + code2.toString(16).toUpperCase() + \";\";\n}\nfunction classifyCharacter(code2) {\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return 1;\n }\n if (unicodePunctuation(code2)) {\n return 2;\n }\n}\nfunction encodeInfo(outside, inside, marker) {\n const outsideKind = classifyCharacter(outside);\n const insideKind = classifyCharacter(inside);\n if (outsideKind === void 0) {\n return insideKind === void 0 ? (\n // Letter inside:\n // we have to encode *both* letters for `_` as it is looser.\n // it already forms for `*` (and GFMs `~`).\n marker === \"_\" ? { inside: true, outside: true } : { inside: false, outside: false }\n ) : insideKind === 1 ? (\n // Whitespace inside: encode both (letter, whitespace).\n { inside: true, outside: true }\n ) : (\n // Punctuation inside: encode outer (letter)\n { inside: false, outside: true }\n );\n }\n if (outsideKind === 1) {\n return insideKind === void 0 ? (\n // Letter inside: already forms.\n { inside: false, outside: false }\n ) : insideKind === 1 ? (\n // Whitespace inside: encode both (whitespace).\n { inside: true, outside: true }\n ) : (\n // Punctuation inside: already forms.\n { inside: false, outside: false }\n );\n }\n return insideKind === void 0 ? (\n // Letter inside: already forms.\n { inside: false, outside: false }\n ) : insideKind === 1 ? (\n // Whitespace inside: encode inner (whitespace).\n { inside: true, outside: false }\n ) : (\n // Punctuation inside: already forms.\n { inside: false, outside: false }\n );\n}\nemphasis.peek = emphasisPeek;\nfunction emphasis(node2, _, state, info) {\n const marker = checkEmphasis(state);\n const exit2 = state.enter(\"emphasis\");\n const tracker = state.createTracker(info);\n const before = tracker.move(marker);\n let between = tracker.move(\n state.containerPhrasing(node2, {\n after: marker,\n before,\n ...tracker.current()\n })\n );\n const betweenHead = between.charCodeAt(0);\n const open = encodeInfo(\n info.before.charCodeAt(info.before.length - 1),\n betweenHead,\n marker\n );\n if (open.inside) {\n between = encodeCharacterReference(betweenHead) + between.slice(1);\n }\n const betweenTail = between.charCodeAt(between.length - 1);\n const close = encodeInfo(info.after.charCodeAt(0), betweenTail, marker);\n if (close.inside) {\n between = between.slice(0, -1) + encodeCharacterReference(betweenTail);\n }\n const after = tracker.move(marker);\n exit2();\n state.attentionEncodeSurroundingInfo = {\n after: close.outside,\n before: open.outside\n };\n return before + between + after;\n}\nfunction emphasisPeek(_, _1, state) {\n return state.options.emphasis || \"*\";\n}\nconst emptyOptions$1 = {};\nfunction toString(value, options) {\n const settings = emptyOptions$1;\n const includeImageAlt = typeof settings.includeImageAlt === \"boolean\" ? settings.includeImageAlt : true;\n const includeHtml = typeof settings.includeHtml === \"boolean\" ? settings.includeHtml : true;\n return one(value, includeImageAlt, includeHtml);\n}\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if (\"value\" in value) {\n return value.type === \"html\" && !includeHtml ? \"\" : value.value;\n }\n if (includeImageAlt && \"alt\" in value && value.alt) {\n return value.alt;\n }\n if (\"children\" in value) {\n return all(value.children, includeImageAlt, includeHtml);\n }\n }\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml);\n }\n return \"\";\n}\nfunction all(values, includeImageAlt, includeHtml) {\n const result = [];\n let index = -1;\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml);\n }\n return result.join(\"\");\n}\nfunction node(value) {\n return Boolean(value && typeof value === \"object\");\n}\nfunction formatHeadingAsSetext(node2, state) {\n let literalWithBreak = false;\n visit(node2, function(node3) {\n if (\"value\" in node3 && /\\r?\\n|\\r/.test(node3.value) || node3.type === \"break\") {\n literalWithBreak = true;\n return EXIT$1;\n }\n });\n return Boolean(\n (!node2.depth || node2.depth < 3) && toString(node2) && (state.options.setext || literalWithBreak)\n );\n}\nfunction heading(node2, _, state, info) {\n const rank = Math.max(Math.min(6, node2.depth || 1), 1);\n const tracker = state.createTracker(info);\n if (formatHeadingAsSetext(node2, state)) {\n const exit3 = state.enter(\"headingSetext\");\n const subexit2 = state.enter(\"phrasing\");\n const value2 = state.containerPhrasing(node2, {\n ...tracker.current(),\n before: \"\\n\",\n after: \"\\n\"\n });\n subexit2();\n exit3();\n return value2 + \"\\n\" + (rank === 1 ? \"=\" : \"-\").repeat(\n // The whole size…\n value2.length - // Minus the position of the character after the last EOL (or\n // 0 if there is none)…\n (Math.max(value2.lastIndexOf(\"\\r\"), value2.lastIndexOf(\"\\n\")) + 1)\n );\n }\n const sequence = \"#\".repeat(rank);\n const exit2 = state.enter(\"headingAtx\");\n const subexit = state.enter(\"phrasing\");\n tracker.move(sequence + \" \");\n let value = state.containerPhrasing(node2, {\n before: \"# \",\n after: \"\\n\",\n ...tracker.current()\n });\n if (/^[\\t ]/.test(value)) {\n value = encodeCharacterReference(value.charCodeAt(0)) + value.slice(1);\n }\n value = value ? sequence + \" \" + value : sequence;\n if (state.options.closeAtx) {\n value += \" \" + sequence;\n }\n subexit();\n exit2();\n return value;\n}\nhtml.peek = htmlPeek;\nfunction html(node2) {\n return node2.value || \"\";\n}\nfunction htmlPeek() {\n return \"<\";\n}\nimage.peek = imagePeek;\nfunction image(node2, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const exit2 = state.enter(\"image\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"![\");\n value += tracker.move(\n state.safe(node2.alt, { before: value, after: \"]\", ...tracker.current() })\n );\n value += tracker.move(\"](\");\n subexit();\n if (\n // If there’s no url but there is a title…\n !node2.url && node2.title || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node2.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node2.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node2.url, {\n before: value,\n after: node2.title ? \" \" : \")\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node2.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node2.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n value += tracker.move(\")\");\n exit2();\n return value;\n}\nfunction imagePeek() {\n return \"!\";\n}\nimageReference.peek = imageReferencePeek;\nfunction imageReference(node2, _, state, info) {\n const type = node2.referenceType;\n const exit2 = state.enter(\"imageReference\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"![\");\n const alt = state.safe(node2.alt, {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n value += tracker.move(alt + \"][\");\n subexit();\n const stack = state.stack;\n state.stack = [];\n subexit = state.enter(\"reference\");\n const reference = state.safe(state.associationId(node2), {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n subexit();\n state.stack = stack;\n exit2();\n if (type === \"full\" || !alt || alt !== reference) {\n value += tracker.move(reference + \"]\");\n } else if (type === \"shortcut\") {\n value = value.slice(0, -1);\n } else {\n value += tracker.move(\"]\");\n }\n return value;\n}\nfunction imageReferencePeek() {\n return \"!\";\n}\ninlineCode.peek = inlineCodePeek;\nfunction inlineCode(node2, _, state) {\n let value = node2.value || \"\";\n let sequence = \"`\";\n let index = -1;\n while (new RegExp(\"(^|[^`])\" + sequence + \"([^`]|$)\").test(value)) {\n sequence += \"`\";\n }\n if (/[^ \\r\\n]/.test(value) && (/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value) || /^`|`$/.test(value))) {\n value = \" \" + value + \" \";\n }\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index];\n const expression = state.compilePattern(pattern);\n let match;\n if (!pattern.atBreak) continue;\n while (match = expression.exec(value)) {\n let position = match.index;\n if (value.charCodeAt(position) === 10 && value.charCodeAt(position - 1) === 13) {\n position--;\n }\n value = value.slice(0, position) + \" \" + value.slice(match.index + 1);\n }\n }\n return sequence + value + sequence;\n}\nfunction inlineCodePeek() {\n return \"`\";\n}\nfunction formatLinkAsAutolink(node2, state) {\n const raw = toString(node2);\n return Boolean(\n !state.options.resourceLink && // If there’s a url…\n node2.url && // And there’s a no title…\n !node2.title && // And the content of `node` is a single text node…\n node2.children && node2.children.length === 1 && node2.children[0].type === \"text\" && // And if the url is the same as the content…\n (raw === node2.url || \"mailto:\" + raw === node2.url) && // And that starts w/ a protocol…\n /^[a-z][a-z+.-]+:/i.test(node2.url) && // And that doesn’t contain ASCII control codes (character escapes and\n // references don’t work), space, or angle brackets…\n !/[\\0- <>\\u007F]/.test(node2.url)\n );\n}\nlink.peek = linkPeek;\nfunction link(node2, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const tracker = state.createTracker(info);\n let exit2;\n let subexit;\n if (formatLinkAsAutolink(node2, state)) {\n const stack = state.stack;\n state.stack = [];\n exit2 = state.enter(\"autolink\");\n let value2 = tracker.move(\"<\");\n value2 += tracker.move(\n state.containerPhrasing(node2, {\n before: value2,\n after: \">\",\n ...tracker.current()\n })\n );\n value2 += tracker.move(\">\");\n exit2();\n state.stack = stack;\n return value2;\n }\n exit2 = state.enter(\"link\");\n subexit = state.enter(\"label\");\n let value = tracker.move(\"[\");\n value += tracker.move(\n state.containerPhrasing(node2, {\n before: value,\n after: \"](\",\n ...tracker.current()\n })\n );\n value += tracker.move(\"](\");\n subexit();\n if (\n // If there’s no url but there is a title…\n !node2.url && node2.title || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node2.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node2.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node2.url, {\n before: value,\n after: node2.title ? \" \" : \")\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node2.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node2.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n value += tracker.move(\")\");\n exit2();\n return value;\n}\nfunction linkPeek(node2, _, state) {\n return formatLinkAsAutolink(node2, state) ? \"<\" : \"[\";\n}\nlinkReference.peek = linkReferencePeek;\nfunction linkReference(node2, _, state, info) {\n const type = node2.referenceType;\n const exit2 = state.enter(\"linkReference\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[\");\n const text2 = state.containerPhrasing(node2, {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n value += tracker.move(text2 + \"][\");\n subexit();\n const stack = state.stack;\n state.stack = [];\n subexit = state.enter(\"reference\");\n const reference = state.safe(state.associationId(node2), {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n subexit();\n state.stack = stack;\n exit2();\n if (type === \"full\" || !text2 || text2 !== reference) {\n value += tracker.move(reference + \"]\");\n } else if (type === \"shortcut\") {\n value = value.slice(0, -1);\n } else {\n value += tracker.move(\"]\");\n }\n return value;\n}\nfunction linkReferencePeek() {\n return \"[\";\n}\nfunction checkBullet(state) {\n const marker = state.options.bullet || \"*\";\n if (marker !== \"*\" && marker !== \"+\" && marker !== \"-\") {\n throw new Error(\n \"Cannot serialize items with `\" + marker + \"` for `options.bullet`, expected `*`, `+`, or `-`\"\n );\n }\n return marker;\n}\nfunction checkBulletOther(state) {\n const bullet = checkBullet(state);\n const bulletOther = state.options.bulletOther;\n if (!bulletOther) {\n return bullet === \"*\" ? \"-\" : \"*\";\n }\n if (bulletOther !== \"*\" && bulletOther !== \"+\" && bulletOther !== \"-\") {\n throw new Error(\n \"Cannot serialize items with `\" + bulletOther + \"` for `options.bulletOther`, expected `*`, `+`, or `-`\"\n );\n }\n if (bulletOther === bullet) {\n throw new Error(\n \"Expected `bullet` (`\" + bullet + \"`) and `bulletOther` (`\" + bulletOther + \"`) to be different\"\n );\n }\n return bulletOther;\n}\nfunction checkBulletOrdered(state) {\n const marker = state.options.bulletOrdered || \".\";\n if (marker !== \".\" && marker !== \")\") {\n throw new Error(\n \"Cannot serialize items with `\" + marker + \"` for `options.bulletOrdered`, expected `.` or `)`\"\n );\n }\n return marker;\n}\nfunction checkRule(state) {\n const marker = state.options.rule || \"*\";\n if (marker !== \"*\" && marker !== \"-\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize rules with `\" + marker + \"` for `options.rule`, expected `*`, `-`, or `_`\"\n );\n }\n return marker;\n}\nfunction list(node2, parent, state, info) {\n const exit2 = state.enter(\"list\");\n const bulletCurrent = state.bulletCurrent;\n let bullet = node2.ordered ? checkBulletOrdered(state) : checkBullet(state);\n const bulletOther = node2.ordered ? bullet === \".\" ? \")\" : \".\" : checkBulletOther(state);\n let useDifferentMarker = parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false;\n if (!node2.ordered) {\n const firstListItem = node2.children ? node2.children[0] : void 0;\n if (\n // Bullet could be used as a thematic break marker:\n (bullet === \"*\" || bullet === \"-\") && // Empty first list item:\n firstListItem && (!firstListItem.children || !firstListItem.children[0]) && // Directly in two other list items:\n state.stack[state.stack.length - 1] === \"list\" && state.stack[state.stack.length - 2] === \"listItem\" && state.stack[state.stack.length - 3] === \"list\" && state.stack[state.stack.length - 4] === \"listItem\" && // That are each the first child.\n state.indexStack[state.indexStack.length - 1] === 0 && state.indexStack[state.indexStack.length - 2] === 0 && state.indexStack[state.indexStack.length - 3] === 0\n ) {\n useDifferentMarker = true;\n }\n if (checkRule(state) === bullet && firstListItem) {\n let index = -1;\n while (++index < node2.children.length) {\n const item = node2.children[index];\n if (item && item.type === \"listItem\" && item.children && item.children[0] && item.children[0].type === \"thematicBreak\") {\n useDifferentMarker = true;\n break;\n }\n }\n }\n }\n if (useDifferentMarker) {\n bullet = bulletOther;\n }\n state.bulletCurrent = bullet;\n const value = state.containerFlow(node2, info);\n state.bulletLastUsed = bullet;\n state.bulletCurrent = bulletCurrent;\n exit2();\n return value;\n}\nfunction checkListItemIndent(state) {\n const style = state.options.listItemIndent || \"one\";\n if (style !== \"tab\" && style !== \"one\" && style !== \"mixed\") {\n throw new Error(\n \"Cannot serialize items with `\" + style + \"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`\"\n );\n }\n return style;\n}\nfunction listItem(node2, parent, state, info) {\n const listItemIndent = checkListItemIndent(state);\n let bullet = state.bulletCurrent || checkBullet(state);\n if (parent && parent.type === \"list\" && parent.ordered) {\n bullet = (typeof parent.start === \"number\" && parent.start > -1 ? parent.start : 1) + (state.options.incrementListMarker === false ? 0 : parent.children.indexOf(node2)) + bullet;\n }\n let size = bullet.length + 1;\n if (listItemIndent === \"tab\" || listItemIndent === \"mixed\" && (parent && parent.type === \"list\" && parent.spread || node2.spread)) {\n size = Math.ceil(size / 4) * 4;\n }\n const tracker = state.createTracker(info);\n tracker.move(bullet + \" \".repeat(size - bullet.length));\n tracker.shift(size);\n const exit2 = state.enter(\"listItem\");\n const value = state.indentLines(\n state.containerFlow(node2, tracker.current()),\n map2\n );\n exit2();\n return value;\n function map2(line, index, blank) {\n if (index) {\n return (blank ? \"\" : \" \".repeat(size)) + line;\n }\n return (blank ? bullet : bullet + \" \".repeat(size - bullet.length)) + line;\n }\n}\nfunction paragraph(node2, _, state, info) {\n const exit2 = state.enter(\"paragraph\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node2, info);\n subexit();\n exit2();\n return value;\n}\nconst phrasing = (\n /** @type {(node?: unknown) => node is Exclude<PhrasingContent, Html>} */\n convert([\n \"break\",\n \"delete\",\n \"emphasis\",\n // To do: next major: removed since footnotes were added to GFM.\n \"footnote\",\n \"footnoteReference\",\n \"image\",\n \"imageReference\",\n \"inlineCode\",\n // Enabled by `mdast-util-math`:\n \"inlineMath\",\n \"link\",\n \"linkReference\",\n // Enabled by `mdast-util-mdx`:\n \"mdxJsxTextElement\",\n // Enabled by `mdast-util-mdx`:\n \"mdxTextExpression\",\n \"strong\",\n \"text\",\n // Enabled by `mdast-util-directive`:\n \"textDirective\"\n ])\n);\nfunction root(node2, _, state, info) {\n const hasPhrasing = node2.children.some(function(d) {\n return phrasing(d);\n });\n const container = hasPhrasing ? state.containerPhrasing : state.containerFlow;\n return container.call(state, node2, info);\n}\nfunction checkStrong(state) {\n const marker = state.options.strong || \"*\";\n if (marker !== \"*\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize strong with `\" + marker + \"` for `options.strong`, expected `*`, or `_`\"\n );\n }\n return marker;\n}\nstrong.peek = strongPeek;\nfunction strong(node2, _, state, info) {\n const marker = checkStrong(state);\n const exit2 = state.enter(\"strong\");\n const tracker = state.createTracker(info);\n const before = tracker.move(marker + marker);\n let between = tracker.move(\n state.containerPhrasing(node2, {\n after: marker,\n before,\n ...tracker.current()\n })\n );\n const betweenHead = between.charCodeAt(0);\n const open = encodeInfo(\n info.before.charCodeAt(info.before.length - 1),\n betweenHead,\n marker\n );\n if (open.inside) {\n between = encodeCharacterReference(betweenHead) + between.slice(1);\n }\n const betweenTail = between.charCodeAt(between.length - 1);\n const close = encodeInfo(info.after.charCodeAt(0), betweenTail, marker);\n if (close.inside) {\n between = between.slice(0, -1) + encodeCharacterReference(betweenTail);\n }\n const after = tracker.move(marker + marker);\n exit2();\n state.attentionEncodeSurroundingInfo = {\n after: close.outside,\n before: open.outside\n };\n return before + between + after;\n}\nfunction strongPeek(_, _1, state) {\n return state.options.strong || \"*\";\n}\nfunction text$1(node2, _, state, info) {\n return state.safe(node2.value, info);\n}\nfunction checkRuleRepetition(state) {\n const repetition = state.options.ruleRepetition || 3;\n if (repetition < 3) {\n throw new Error(\n \"Cannot serialize rules with repetition `\" + repetition + \"` for `options.ruleRepetition`, expected `3` or more\"\n );\n }\n return repetition;\n}\nfunction thematicBreak(_, _1, state) {\n const value = (checkRule(state) + (state.options.ruleSpaces ? \" \" : \"\")).repeat(checkRuleRepetition(state));\n return state.options.ruleSpaces ? value.slice(0, -1) : value;\n}\nconst handle = {\n blockquote,\n break: hardBreak,\n code: code$1,\n definition,\n emphasis,\n hardBreak,\n heading,\n html,\n image,\n imageReference,\n inlineCode,\n link,\n linkReference,\n list,\n listItem,\n paragraph,\n root,\n strong,\n text: text$1,\n thematicBreak\n};\nfunction gfmTableFromMarkdown() {\n return {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n };\n}\nfunction enterTable(token) {\n const align = token._align;\n this.enter(\n {\n type: \"table\",\n align: align.map(function(d) {\n return d === \"none\" ? null : d;\n }),\n children: []\n },\n token\n );\n this.data.inTable = true;\n}\nfunction exitTable(token) {\n this.exit(token);\n this.data.inTable = void 0;\n}\nfunction enterRow(token) {\n this.enter({ type: \"tableRow\", children: [] }, token);\n}\nfunction exit(token) {\n this.exit(token);\n}\nfunction enterCell(token) {\n this.enter({ type: \"tableCell\", children: [] }, token);\n}\nfunction exitCodeText(token) {\n let value = this.resume();\n if (this.data.inTable) {\n value = value.replace(/\\\\([\\\\|])/g, replace);\n }\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"inlineCode\");\n node2.value = value;\n this.exit(token);\n}\nfunction replace($0, $1) {\n return $1 === \"|\" ? $1 : $0;\n}\nfunction gfmTableToMarkdown(options) {\n const settings = options || {};\n const padding = settings.tableCellPadding;\n const alignDelimiters = settings.tablePipeAlign;\n const stringLength = settings.stringLength;\n const around = padding ? \" \" : \"|\";\n return {\n unsafe: [\n { character: \"\\r\", inConstruct: \"tableCell\" },\n { character: \"\\n\", inConstruct: \"tableCell\" },\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n { atBreak: true, character: \"|\", after: \"[\t :-]\" },\n // A pipe in a cell must be encoded.\n { character: \"|\", inConstruct: \"tableCell\" },\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n { atBreak: true, character: \":\", after: \"-\" },\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // <https://github.com/syntax-tree/mdast-util-to-markdown/blob/51a2038/lib/unsafe.js#L57>\n { atBreak: true, character: \"-\", after: \"[:|-]\" }\n ],\n handlers: {\n inlineCode: inlineCodeWithTable,\n table: handleTable,\n tableCell: handleTableCell,\n tableRow: handleTableRow\n }\n };\n function handleTable(node2, _, state, info) {\n return serializeData(handleTableAsData(node2, state, info), node2.align);\n }\n function handleTableRow(node2, _, state, info) {\n const row = handleTableRowAsData(node2, state, info);\n const value = serializeData([row]);\n return value.slice(0, value.indexOf(\"\\n\"));\n }\n function handleTableCell(node2, _, state, info) {\n const exit2 = state.enter(\"tableCell\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node2, {\n ...info,\n before: around,\n after: around\n });\n subexit();\n exit2();\n return value;\n }\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n // @ts-expect-error: `markdown-table` types should support `null`.\n alignDelimiters,\n // @ts-expect-error: `markdown-table` types should support `null`.\n padding,\n // @ts-expect-error: `markdown-table` types should support `null`.\n stringLength\n });\n }\n function handleTableAsData(node2, state, info) {\n const children = node2.children;\n let index = -1;\n const result = [];\n const subexit = state.enter(\"table\");\n while (++index < children.length) {\n result[index] = handleTableRowAsData(children[index], state, info);\n }\n subexit();\n return result;\n }\n function handleTableRowAsData(node2, state, info) {\n const children = node2.children;\n let index = -1;\n const result = [];\n const subexit = state.enter(\"tableRow\");\n while (++index < children.length) {\n result[index] = handleTableCell(children[index], node2, state, info);\n }\n subexit();\n return result;\n }\n function inlineCodeWithTable(node2, parent, state) {\n let value = handle.inlineCode(node2, parent, state);\n if (state.stack.includes(\"tableCell\")) {\n value = value.replace(/\\|/g, \"\\\\$&\");\n }\n return value;\n }\n}\nfunction gfmTaskListItemFromMarkdown() {\n return {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n };\n}\nfunction gfmTaskListItemToMarkdown() {\n return {\n unsafe: [{ atBreak: true, character: \"-\", after: \"[:|-]\" }],\n handlers: { listItem: listItemWithTaskListItem }\n };\n}\nfunction exitCheck(token) {\n const node2 = this.stack[this.stack.length - 2];\n ok$1(node2.type === \"listItem\");\n node2.checked = token.type === \"taskListCheckValueChecked\";\n}\nfunction exitParagraphWithTaskListItem(token) {\n const parent = this.stack[this.stack.length - 2];\n if (parent && parent.type === \"listItem\" && typeof parent.checked === \"boolean\") {\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"paragraph\");\n const head = node2.children[0];\n if (head && head.type === \"text\") {\n const siblings = parent.children;\n let index = -1;\n let firstParaghraph;\n while (++index < siblings.length) {\n const sibling = siblings[index];\n if (sibling.type === \"paragraph\") {\n firstParaghraph = sibling;\n break;\n }\n }\n if (firstParaghraph === node2) {\n head.value = head.value.slice(1);\n if (head.value.length === 0) {\n node2.children.shift();\n } else if (node2.position && head.position && typeof head.position.start.offset === \"number\") {\n head.position.start.column++;\n head.position.start.offset++;\n node2.position.start = Object.assign({}, head.position.start);\n }\n }\n }\n }\n this.exit(token);\n}\nfunction listItemWithTaskListItem(node2, parent, state, info) {\n const head = node2.children[0];\n const checkable = typeof node2.checked === \"boolean\" && head && head.type === \"paragraph\";\n const checkbox = \"[\" + (node2.checked ? \"x\" : \" \") + \"] \";\n const tracker = state.createTracker(info);\n if (checkable) {\n tracker.move(checkbox);\n }\n let value = handle.listItem(node2, parent, state, {\n ...info,\n ...tracker.current()\n });\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check);\n }\n return value;\n function check($0) {\n return $0 + checkbox;\n }\n}\nfunction gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown(),\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown(),\n gfmTableFromMarkdown(),\n gfmTaskListItemFromMarkdown()\n ];\n}\nfunction gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown(),\n gfmFootnoteToMarkdown(options),\n gfmStrikethroughToMarkdown(),\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown()\n ]\n };\n}\nfunction splice(list2, start, remove, items) {\n const end = list2.length;\n let chunkStart = 0;\n let parameters;\n if (start < 0) {\n start = -start > end ? 0 : end + start;\n } else {\n start = start > end ? end : start;\n }\n remove = remove > 0 ? remove : 0;\n if (items.length < 1e4) {\n parameters = Array.from(items);\n parameters.unshift(start, remove);\n list2.splice(...parameters);\n } else {\n if (remove) list2.splice(start, remove);\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 1e4);\n parameters.unshift(start, 0);\n list2.splice(...parameters);\n chunkStart += 1e4;\n start += 1e4;\n }\n }\n}\nconst hasOwnProperty = {}.hasOwnProperty;\nfunction combineExtensions(extensions) {\n const all2 = {};\n let index = -1;\n while (++index < extensions.length) {\n syntaxExtension(all2, extensions[index]);\n }\n return all2;\n}\nfunction syntaxExtension(all2, extension) {\n let hook;\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all2, hook) ? all2[hook] : void 0;\n const left = maybe || (all2[hook] = {});\n const right = extension[hook];\n let code2;\n if (right) {\n for (code2 in right) {\n if (!hasOwnProperty.call(left, code2)) left[code2] = [];\n const value = right[code2];\n constructs(\n // @ts-expect-error Looks like a list.\n left[code2],\n Array.isArray(value) ? value : value ? [value] : []\n );\n }\n }\n }\n}\nfunction constructs(existing, list2) {\n let index = -1;\n const before = [];\n while (++index < list2.length) {\n (list2[index].add === \"after\" ? existing : before).push(list2[index]);\n }\n splice(existing, 0, 0, before);\n}\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n};\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n};\nconst path = {\n tokenize: tokenizePath,\n partial: true\n};\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n};\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n};\nconst wwwAutolink = {\n name: \"wwwAutolink\",\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n};\nconst protocolAutolink = {\n name: \"protocolAutolink\",\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n};\nconst emailAutolink = {\n name: \"emailAutolink\",\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n};\nconst text = {};\nfunction gfmAutolinkLiteral() {\n return {\n text\n };\n}\nlet code = 48;\nwhile (code < 123) {\n text[code] = emailAutolink;\n code++;\n if (code === 58) code = 65;\n else if (code === 91) code = 97;\n}\ntext[43] = emailAutolink;\ntext[45] = emailAutolink;\ntext[46] = emailAutolink;\ntext[95] = emailAutolink;\ntext[72] = [emailAutolink, protocolAutolink];\ntext[104] = [emailAutolink, protocolAutolink];\ntext[87] = [emailAutolink, wwwAutolink];\ntext[119] = [emailAutolink, wwwAutolink];\nfunction tokenizeEmailAutolink(effects, ok2, nok) {\n const self = this;\n let dot;\n let data;\n return start;\n function start(code2) {\n if (!gfmAtext(code2) || !previousEmail.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkEmail\");\n return atext(code2);\n }\n function atext(code2) {\n if (gfmAtext(code2)) {\n effects.consume(code2);\n return atext;\n }\n if (code2 === 64) {\n effects.consume(code2);\n return emailDomain;\n }\n return nok(code2);\n }\n function emailDomain(code2) {\n if (code2 === 46) {\n return effects.check(emailDomainDotTrail, emailDomainAfter, emailDomainDot)(code2);\n }\n if (code2 === 45 || code2 === 95 || asciiAlphanumeric(code2)) {\n data = true;\n effects.consume(code2);\n return emailDomain;\n }\n return emailDomainAfter(code2);\n }\n function emailDomainDot(code2) {\n effects.consume(code2);\n dot = true;\n return emailDomain;\n }\n function emailDomainAfter(code2) {\n if (data && dot && asciiAlpha(self.previous)) {\n effects.exit(\"literalAutolinkEmail\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n return nok(code2);\n }\n}\nfunction tokenizeWwwAutolink(effects, ok2, nok) {\n const self = this;\n return wwwStart;\n function wwwStart(code2) {\n if (code2 !== 87 && code2 !== 119 || !previousWww.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkWww\");\n return effects.check(wwwPrefix, effects.attempt(domain, effects.attempt(path, wwwAfter), nok), nok)(code2);\n }\n function wwwAfter(code2) {\n effects.exit(\"literalAutolinkWww\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n}\nfunction tokenizeProtocolAutolink(effects, ok2, nok) {\n const self = this;\n let buffer = \"\";\n let seen = false;\n return protocolStart;\n function protocolStart(code2) {\n if ((code2 === 72 || code2 === 104) && previousProtocol.call(self, self.previous) && !previousUnbalanced(self.events)) {\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkHttp\");\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n return nok(code2);\n }\n function protocolPrefixInside(code2) {\n if (asciiAlpha(code2) && buffer.length < 5) {\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n if (code2 === 58) {\n const protocol = buffer.toLowerCase();\n if (protocol === \"http\" || protocol === \"https\") {\n effects.consume(code2);\n return protocolSlashesInside;\n }\n }\n return nok(code2);\n }\n function protocolSlashesInside(code2) {\n if (code2 === 47) {\n effects.consume(code2);\n if (seen) {\n return afterProtocol;\n }\n seen = true;\n return protocolSlashesInside;\n }\n return nok(code2);\n }\n function afterProtocol(code2) {\n return code2 === null || asciiControl(code2) || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || unicodePunctuation(code2) ? nok(code2) : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code2);\n }\n function protocolAfter(code2) {\n effects.exit(\"literalAutolinkHttp\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n}\nfunction tokenizeWwwPrefix(effects, ok2, nok) {\n let size = 0;\n return wwwPrefixInside;\n function wwwPrefixInside(code2) {\n if ((code2 === 87 || code2 === 119) && size < 3) {\n size++;\n effects.consume(code2);\n return wwwPrefixInside;\n }\n if (code2 === 46 && size === 3) {\n effects.consume(code2);\n return wwwPrefixAfter;\n }\n return nok(code2);\n }\n function wwwPrefixAfter(code2) {\n return code2 === null ? nok(code2) : ok2(code2);\n }\n}\nfunction tokenizeDomain(effects, ok2, nok) {\n let underscoreInLastSegment;\n let underscoreInLastLastSegment;\n let seen;\n return domainInside;\n function domainInside(code2) {\n if (code2 === 46 || code2 === 95) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || code2 !== 45 && unicodePunctuation(code2)) {\n return domainAfter(code2);\n }\n seen = true;\n effects.consume(code2);\n return domainInside;\n }\n function domainAtPunctuation(code2) {\n if (code2 === 95) {\n underscoreInLastSegment = true;\n } else {\n underscoreInLastLastSegment = underscoreInLastSegment;\n underscoreInLastSegment = void 0;\n }\n effects.consume(code2);\n return domainInside;\n }\n function domainAfter(code2) {\n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code2);\n }\n return ok2(code2);\n }\n}\nfunction tokenizePath(effects, ok2) {\n let sizeOpen = 0;\n let sizeClose = 0;\n return pathInside;\n function pathInside(code2) {\n if (code2 === 40) {\n sizeOpen++;\n effects.consume(code2);\n return pathInside;\n }\n if (code2 === 41 && sizeClose < sizeOpen) {\n return pathAtPunctuation(code2);\n }\n if (code2 === 33 || code2 === 34 || code2 === 38 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 60 || code2 === 63 || code2 === 93 || code2 === 95 || code2 === 126) {\n return effects.check(trail, ok2, pathAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok2(code2);\n }\n effects.consume(code2);\n return pathInside;\n }\n function pathAtPunctuation(code2) {\n if (code2 === 41) {\n sizeClose++;\n }\n effects.consume(code2);\n return pathInside;\n }\n}\nfunction tokenizeTrail(effects, ok2, nok) {\n return trail2;\n function trail2(code2) {\n if (code2 === 33 || code2 === 34 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 63 || code2 === 95 || code2 === 126) {\n effects.consume(code2);\n return trail2;\n }\n if (code2 === 38) {\n effects.consume(code2);\n return trailCharacterReferenceStart;\n }\n if (code2 === 93) {\n effects.consume(code2);\n return trailBracketAfter;\n }\n if (\n // `<` is an end.\n code2 === 60 || // So is whitespace.\n code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)\n ) {\n return ok2(code2);\n }\n return nok(code2);\n }\n function trailBracketAfter(code2) {\n if (code2 === null || code2 === 40 || code2 === 91 || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok2(code2);\n }\n return trail2(code2);\n }\n function trailCharacterReferenceStart(code2) {\n return asciiAlpha(code2) ? trailCharacterReferenceInside(code2) : nok(code2);\n }\n function trailCharacterReferenceInside(code2) {\n if (code2 === 59) {\n effects.consume(code2);\n return trail2;\n }\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n return trailCharacterReferenceInside;\n }\n return nok(code2);\n }\n}\nfunction tokenizeEmailDomainDotTrail(effects, ok2, nok) {\n return start;\n function start(code2) {\n effects.consume(code2);\n return after;\n }\n function after(code2) {\n return asciiAlphanumeric(code2) ? nok(code2) : ok2(code2);\n }\n}\nfunction previousWww(code2) {\n return code2 === null || code2 === 40 || code2 === 42 || code2 === 95 || code2 === 91 || code2 === 93 || code2 === 126 || markdownLineEndingOrSpace(code2);\n}\nfunction previousProtocol(code2) {\n return !asciiAlpha(code2);\n}\nfunction previousEmail(code2) {\n return !(code2 === 47 || gfmAtext(code2));\n}\nfunction gfmAtext(code2) {\n return code2 === 43 || code2 === 45 || code2 === 46 || code2 === 95 || asciiAlphanumeric(code2);\n}\nfunction previousUnbalanced(events) {\n let index = events.length;\n let result = false;\n while (index--) {\n const token = events[index][1];\n if ((token.type === \"labelLink\" || token.type === \"labelImage\") && !token._balanced) {\n result = true;\n break;\n }\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false;\n break;\n }\n }\n if (events.length > 0 && !result) {\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;\n }\n return result;\n}\nfunction resolveAll(constructs2, events, context) {\n const called = [];\n let index = -1;\n while (++index < constructs2.length) {\n const resolve = constructs2[index].resolveAll;\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context);\n called.push(resolve);\n }\n }\n return events;\n}\nfunction factorySpace(effects, ok2, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY;\n let size = 0;\n return start;\n function start(code2) {\n if (markdownSpace(code2)) {\n effects.enter(type);\n return prefix(code2);\n }\n return ok2(code2);\n }\n function prefix(code2) {\n if (markdownSpace(code2) && size++ < limit) {\n effects.consume(code2);\n return prefix;\n }\n effects.exit(type);\n return ok2(code2);\n }\n}\nconst blankLine = {\n partial: true,\n tokenize: tokenizeBlankLine\n};\nfunction tokenizeBlankLine(effects, ok2, nok) {\n return start;\n function start(code2) {\n return markdownSpace(code2) ? factorySpace(effects, after, \"linePrefix\")(code2) : after(code2);\n }\n function after(code2) {\n return code2 === null || markdownLineEnding(code2) ? ok2(code2) : nok(code2);\n }\n}\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n};\nfunction gfmFootnote() {\n return {\n document: {\n [91]: {\n name: \"gfmFootnoteDefinition\",\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n name: \"gfmFootnoteCall\",\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n name: \"gfmPotentialFootnoteCall\",\n add: \"after\",\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n };\n}\nfunction tokenizePotentialGfmFootnoteCall(effects, ok2, nok) {\n const self = this;\n let index = self.events.length;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let labelStart;\n while (index--) {\n const token = self.events[index][1];\n if (token.type === \"labelImage\") {\n labelStart = token;\n break;\n }\n if (token.type === \"gfmFootnoteCall\" || token.type === \"labelLink\" || token.type === \"label\" || token.type === \"image\" || token.type === \"link\") {\n break;\n }\n }\n return start;\n function start(code2) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code2);\n }\n const id = normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n }));\n if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return ok2(code2);\n }\n}\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length;\n while (index--) {\n if (events[index][1].type === \"labelImage\" && events[index][0] === \"enter\") {\n events[index][1];\n break;\n }\n }\n events[index + 1][1].type = \"data\";\n events[index + 3][1].type = \"gfmFootnoteCallLabelMarker\";\n const call = {\n type: \"gfmFootnoteCall\",\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n const marker = {\n type: \"gfmFootnoteCallMarker\",\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n };\n marker.end.column++;\n marker.end.offset++;\n marker.end._bufferIndex++;\n const string = {\n type: \"gfmFootnoteCallString\",\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n };\n const chunk = {\n type: \"chunkString\",\n contentType: \"string\",\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n };\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1],\n events[index + 2],\n [\"enter\", call, context],\n // The `[`\n events[index + 3],\n events[index + 4],\n // The `^`.\n [\"enter\", marker, context],\n [\"exit\", marker, context],\n // Everything in between.\n [\"enter\", string, context],\n [\"enter\", chunk, context],\n [\"exit\", chunk, context],\n [\"exit\", string, context],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2],\n events[events.length - 1],\n [\"exit\", call, context]\n ];\n events.splice(index, events.length - index + 1, ...replacement);\n return events;\n}\nfunction tokenizeGfmFootnoteCall(effects, ok2, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let size = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteCall\");\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return callStart;\n }\n function callStart(code2) {\n if (code2 !== 94) return nok(code2);\n effects.enter(\"gfmFootnoteCallMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallMarker\");\n effects.enter(\"gfmFootnoteCallString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return callData;\n }\n function callData(code2) {\n if (\n // Too long.\n size > 999 || // Closing brace with nothing.\n code2 === 93 && !data || // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)\n ) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteCallString\");\n if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n effects.exit(\"gfmFootnoteCall\");\n return ok2;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size++;\n effects.consume(code2);\n return code2 === 92 ? callEscape : callData;\n }\n function callEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size++;\n return callData;\n }\n return callData(code2);\n }\n}\nfunction tokenizeDefinitionStart(effects, ok2, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let identifier;\n let size = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteDefinition\")._container = true;\n effects.enter(\"gfmFootnoteDefinitionLabel\");\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n return labelAtMarker;\n }\n function labelAtMarker(code2) {\n if (code2 === 94) {\n effects.enter(\"gfmFootnoteDefinitionMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionMarker\");\n effects.enter(\"gfmFootnoteDefinitionLabelString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return labelInside;\n }\n return nok(code2);\n }\n function labelInside(code2) {\n if (\n // Too long.\n size > 999 || // Closing brace with nothing.\n code2 === 93 && !data || // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)\n ) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteDefinitionLabelString\");\n identifier = normalizeIdentifier(self.sliceSerialize(token));\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n effects.exit(\"gfmFootnoteDefinitionLabel\");\n return labelAfter;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size++;\n effects.consume(code2);\n return code2 === 92 ? labelEscape : labelInside;\n }\n function labelEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size++;\n return labelInside;\n }\n return labelInside(code2);\n }\n function labelAfter(code2) {\n if (code2 === 58) {\n effects.enter(\"definitionMarker\");\n effects.consume(code2);\n effects.exit(\"definitionMarker\");\n if (!defined.includes(identifier)) {\n defined.push(identifier);\n }\n return factorySpace(effects, whitespaceAfter, \"gfmFootnoteDefinitionWhitespace\");\n }\n return nok(code2);\n }\n function whitespaceAfter(code2) {\n return ok2(code2);\n }\n}\nfunction tokenizeDefinitionContinuation(effects, ok2, nok) {\n return effects.check(blankLine, ok2, effects.attempt(indent, ok2, nok));\n}\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit(\"gfmFootnoteDefinition\");\n}\nfunction tokenizeIndent(effects, ok2, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, \"gfmFootnoteDefinitionIndent\", 4 + 1);\n function afterPrefix(code2) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"gfmFootnoteDefinitionIndent\" && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok2(code2) : nok(code2);\n }\n}\nfunction gfmStrikethrough(options) {\n const options_ = options || {};\n let single = options_.singleTilde;\n const tokenizer = {\n name: \"strikethrough\",\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n };\n if (single === null || single === void 0) {\n single = true;\n }\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n };\n function resolveAllStrikethrough(events, context) {\n let index = -1;\n while (++index < events.length) {\n if (events[index][0] === \"enter\" && events[index][1].type === \"strikethroughSequenceTemporary\" && events[index][1]._close) {\n let open = index;\n while (open--) {\n if (events[open][0] === \"exit\" && events[open][1].type === \"strikethroughSequenceTemporary\" && events[open][1]._open && // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {\n events[index][1].type = \"strikethroughSequence\";\n events[open][1].type = \"strikethroughSequence\";\n const strikethrough = {\n type: \"strikethrough\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n };\n const text2 = {\n type: \"strikethroughText\",\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n const nextEvents = [[\"enter\", strikethrough, context], [\"enter\", events[open][1], context], [\"exit\", events[open][1], context], [\"enter\", text2, context]];\n const insideSpan = context.parser.constructs.insideSpan.null;\n if (insideSpan) {\n splice(nextEvents, nextEvents.length, 0, resolveAll(insideSpan, events.slice(open + 1, index), context));\n }\n splice(nextEvents, nextEvents.length, 0, [[\"exit\", text2, context], [\"enter\", events[index][1], context], [\"exit\", events[index][1], context], [\"exit\", strikethrough, context]]);\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - 2;\n break;\n }\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === \"strikethroughSequenceTemporary\") {\n events[index][1].type = \"data\";\n }\n }\n return events;\n }\n function tokenizeStrikethrough(effects, ok2, nok) {\n const previous2 = this.previous;\n const events = this.events;\n let size = 0;\n return start;\n function start(code2) {\n if (previous2 === 126 && events[events.length - 1][1].type !== \"characterEscape\") {\n return nok(code2);\n }\n effects.enter(\"strikethroughSequenceTemporary\");\n return more(code2);\n }\n function more(code2) {\n const before = classifyCharacter(previous2);\n if (code2 === 126) {\n if (size > 1) return nok(code2);\n effects.consume(code2);\n size++;\n return more;\n }\n if (size < 2 && !single) return nok(code2);\n const token = effects.exit(\"strikethroughSequenceTemporary\");\n const after = classifyCharacter(code2);\n token._open = !after || after === 2 && Boolean(before);\n token._close = !before || before === 2 && Boolean(after);\n return ok2(code2);\n }\n }\n}\nclass EditMap {\n /**\n * Create a new edit map.\n */\n constructor() {\n this.map = [];\n }\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * @param {number} remove\n * @param {Array<Event>} add\n * @returns {undefined}\n */\n add(index, remove, add) {\n addImplementation(this, index, remove, add);\n }\n // To do: add this when moving to `micromark`.\n // /**\n // * Create an edit: but insert `add` before existing additions.\n // *\n // * @param {number} index\n // * @param {number} remove\n // * @param {Array<Event>} add\n // * @returns {undefined}\n // */\n // addBefore(index, remove, add) {\n // addImplementation(this, index, remove, add, true)\n // }\n /**\n * Done, change the events.\n *\n * @param {Array<Event>} events\n * @returns {undefined}\n */\n consume(events) {\n this.map.sort(function(a, b) {\n return a[0] - b[0];\n });\n if (this.map.length === 0) {\n return;\n }\n let index = this.map.length;\n const vecs = [];\n while (index > 0) {\n index -= 1;\n vecs.push(events.slice(this.map[index][0] + this.map[index][1]), this.map[index][2]);\n events.length = this.map[index][0];\n }\n vecs.push(events.slice());\n events.length = 0;\n let slice = vecs.pop();\n while (slice) {\n for (const element of slice) {\n events.push(element);\n }\n slice = vecs.pop();\n }\n this.map.length = 0;\n }\n}\nfunction addImplementation(editMap, at, remove, add) {\n let index = 0;\n if (remove === 0 && add.length === 0) {\n return;\n }\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove;\n editMap.map[index][2].push(...add);\n return;\n }\n index += 1;\n }\n editMap.map.push([at, remove, add]);\n}\nfunction gfmTableAlign(events, index) {\n let inDelimiterRow = false;\n const align = [];\n while (index < events.length) {\n const event = events[index];\n if (inDelimiterRow) {\n if (event[0] === \"enter\") {\n if (event[1].type === \"tableContent\") {\n align.push(events[index + 1][1].type === \"tableDelimiterMarker\" ? \"left\" : \"none\");\n }\n } else if (event[1].type === \"tableContent\") {\n if (events[index - 1][1].type === \"tableDelimiterMarker\") {\n const alignIndex = align.length - 1;\n align[alignIndex] = align[alignIndex] === \"left\" ? \"center\" : \"right\";\n }\n } else if (event[1].type === \"tableDelimiterRow\") {\n break;\n }\n } else if (event[0] === \"enter\" && event[1].type === \"tableDelimiterRow\") {\n inDelimiterRow = true;\n }\n index += 1;\n }\n return align;\n}\nfunction gfmTable() {\n return {\n flow: {\n null: {\n name: \"table\",\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n };\n}\nfunction tokenizeTable(effects, ok2, nok) {\n const self = this;\n let size = 0;\n let sizeB = 0;\n let seen;\n return start;\n function start(code2) {\n let index = self.events.length - 1;\n while (index > -1) {\n const type = self.events[index][1].type;\n if (type === \"lineEnding\" || // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n type === \"linePrefix\") index--;\n else break;\n }\n const tail = index > -1 ? self.events[index][1].type : null;\n const next = tail === \"tableHead\" || tail === \"tableRow\" ? bodyRowStart : headRowBefore;\n if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n return nok(code2);\n }\n return next(code2);\n }\n function headRowBefore(code2) {\n effects.enter(\"tableHead\");\n effects.enter(\"tableRow\");\n return headRowStart(code2);\n }\n function headRowStart(code2) {\n if (code2 === 124) {\n return headRowBreak(code2);\n }\n seen = true;\n sizeB += 1;\n return headRowBreak(code2);\n }\n function headRowBreak(code2) {\n if (code2 === null) {\n return nok(code2);\n }\n if (markdownLineEnding(code2)) {\n if (sizeB > 1) {\n sizeB = 0;\n self.interrupt = true;\n effects.exit(\"tableRow\");\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return headDelimiterStart;\n }\n return nok(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, headRowBreak, \"whitespace\")(code2);\n }\n sizeB += 1;\n if (seen) {\n seen = false;\n size += 1;\n }\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n seen = true;\n return headRowBreak;\n }\n effects.enter(\"data\");\n return headRowData(code2);\n }\n function headRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return headRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? headRowEscape : headRowData;\n }\n function headRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return headRowData;\n }\n return headRowData(code2);\n }\n function headDelimiterStart(code2) {\n self.interrupt = false;\n if (self.parser.lazy[self.now().line]) {\n return nok(code2);\n }\n effects.enter(\"tableDelimiterRow\");\n seen = false;\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterBefore, \"linePrefix\", self.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(code2);\n }\n return headDelimiterBefore(code2);\n }\n function headDelimiterBefore(code2) {\n if (code2 === 45 || code2 === 58) {\n return headDelimiterValueBefore(code2);\n }\n if (code2 === 124) {\n seen = true;\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return headDelimiterCellBefore;\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterCellBefore(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterValueBefore, \"whitespace\")(code2);\n }\n return headDelimiterValueBefore(code2);\n }\n function headDelimiterValueBefore(code2) {\n if (code2 === 58) {\n sizeB += 1;\n seen = true;\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterLeftAlignmentAfter;\n }\n if (code2 === 45) {\n sizeB += 1;\n return headDelimiterLeftAlignmentAfter(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n return headDelimiterCellAfter(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterLeftAlignmentAfter(code2) {\n if (code2 === 45) {\n effects.enter(\"tableDelimiterFiller\");\n return headDelimiterFiller(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterFiller(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n return headDelimiterFiller;\n }\n if (code2 === 58) {\n seen = true;\n effects.exit(\"tableDelimiterFiller\");\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterRightAlignmentAfter;\n }\n effects.exit(\"tableDelimiterFiller\");\n return headDelimiterRightAlignmentAfter(code2);\n }\n function headDelimiterRightAlignmentAfter(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterCellAfter, \"whitespace\")(code2);\n }\n return headDelimiterCellAfter(code2);\n }\n function headDelimiterCellAfter(code2) {\n if (code2 === 124) {\n return headDelimiterBefore(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n if (!seen || size !== sizeB) {\n return headDelimiterNok(code2);\n }\n effects.exit(\"tableDelimiterRow\");\n effects.exit(\"tableHead\");\n return ok2(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterNok(code2) {\n return nok(code2);\n }\n function bodyRowStart(code2) {\n effects.enter(\"tableRow\");\n return bodyRowBreak(code2);\n }\n function bodyRowBreak(code2) {\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return bodyRowBreak;\n }\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"tableRow\");\n return ok2(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, bodyRowBreak, \"whitespace\")(code2);\n }\n effects.enter(\"data\");\n return bodyRowData(code2);\n }\n function bodyRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return bodyRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? bodyRowEscape : bodyRowData;\n }\n function bodyRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return bodyRowData;\n }\n return bodyRowData(code2);\n }\n}\nfunction resolveTable(events, context) {\n let index = -1;\n let inFirstCellAwaitingPipe = true;\n let rowKind = 0;\n let lastCell = [0, 0, 0, 0];\n let cell = [0, 0, 0, 0];\n let afterHeadAwaitingFirstBodyRow = false;\n let lastTableEnd = 0;\n let currentTable;\n let currentBody;\n let currentCell;\n const map2 = new EditMap();\n while (++index < events.length) {\n const event = events[index];\n const token = event[1];\n if (event[0] === \"enter\") {\n if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = false;\n if (lastTableEnd !== 0) {\n flushTableEnd(map2, context, lastTableEnd, currentTable, currentBody);\n currentBody = void 0;\n lastTableEnd = 0;\n }\n currentTable = {\n type: \"table\",\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map2.add(index, 0, [[\"enter\", currentTable, context]]);\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n inFirstCellAwaitingPipe = true;\n currentCell = void 0;\n lastCell = [0, 0, 0, 0];\n cell = [0, index + 1, 0, 0];\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false;\n currentBody = {\n type: \"tableBody\",\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map2.add(index, 0, [[\"enter\", currentBody, context]]);\n }\n rowKind = token.type === \"tableDelimiterRow\" ? 2 : currentBody ? 3 : 1;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n inFirstCellAwaitingPipe = false;\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map2, context, lastCell, rowKind, void 0, currentCell);\n lastCell = [0, 0, 0, 0];\n }\n cell[2] = index;\n }\n } else if (token.type === \"tableCellDivider\") {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false;\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map2, context, lastCell, rowKind, void 0, currentCell);\n }\n lastCell = cell;\n cell = [lastCell[1], index, 0, 0];\n }\n }\n } else if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = true;\n lastTableEnd = index;\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n lastTableEnd = index;\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map2, context, lastCell, rowKind, index, currentCell);\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map2, context, cell, rowKind, index, currentCell);\n }\n rowKind = 0;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n cell[3] = index;\n }\n }\n if (lastTableEnd !== 0) {\n flushTableEnd(map2, context, lastTableEnd, currentTable, currentBody);\n }\n map2.consume(context.events);\n index = -1;\n while (++index < context.events.length) {\n const event = context.events[index];\n if (event[0] === \"enter\" && event[1].type === \"table\") {\n event[1]._align = gfmTableAlign(context.events, index);\n }\n }\n return events;\n}\nfunction flushCell(map2, context, range, rowKind, rowEnd, previousCell) {\n const groupName = rowKind === 1 ? \"tableHeader\" : rowKind === 2 ? \"tableDelimiter\" : \"tableData\";\n const valueName = \"tableContent\";\n if (range[0] !== 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]));\n map2.add(range[0], 0, [[\"exit\", previousCell, context]]);\n }\n const now = getPoint(context.events, range[1]);\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n // Note: correct end is set later.\n end: Object.assign({}, now)\n };\n map2.add(range[1], 0, [[\"enter\", previousCell, context]]);\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2]);\n const relatedEnd = getPoint(context.events, range[3]);\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n };\n map2.add(range[2], 0, [[\"enter\", valueToken, context]]);\n if (rowKind !== 2) {\n const start = context.events[range[2]];\n const end = context.events[range[3]];\n start[1].end = Object.assign({}, end[1].end);\n start[1].type = \"chunkText\";\n start[1].contentType = \"text\";\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1;\n const b = range[3] - range[2] - 1;\n map2.add(a, b, []);\n }\n }\n map2.add(range[3] + 1, 0, [[\"exit\", valueToken, context]]);\n }\n if (rowEnd !== void 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd));\n map2.add(rowEnd, 0, [[\"exit\", previousCell, context]]);\n previousCell = void 0;\n }\n return previousCell;\n}\nfunction flushTableEnd(map2, context, index, table, tableBody) {\n const exits = [];\n const related = getPoint(context.events, index);\n if (tableBody) {\n tableBody.end = Object.assign({}, related);\n exits.push([\"exit\", tableBody, context]);\n }\n table.end = Object.assign({}, related);\n exits.push([\"exit\", table, context]);\n map2.add(index + 1, 0, exits);\n}\nfunction getPoint(events, index) {\n const event = events[index];\n const side = event[0] === \"enter\" ? \"start\" : \"end\";\n return event[1][side];\n}\nconst tasklistCheck = {\n name: \"tasklistCheck\",\n tokenize: tokenizeTasklistCheck\n};\nfunction gfmTaskListItem() {\n return {\n text: {\n [91]: tasklistCheck\n }\n };\n}\nfunction tokenizeTasklistCheck(effects, ok2, nok) {\n const self = this;\n return open;\n function open(code2) {\n if (\n // Exit if there’s stuff before.\n self.previous !== null || // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem\n ) {\n return nok(code2);\n }\n effects.enter(\"taskListCheck\");\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n return inside;\n }\n function inside(code2) {\n if (markdownLineEndingOrSpace(code2)) {\n effects.enter(\"taskListCheckValueUnchecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueUnchecked\");\n return close;\n }\n if (code2 === 88 || code2 === 120) {\n effects.enter(\"taskListCheckValueChecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueChecked\");\n return close;\n }\n return nok(code2);\n }\n function close(code2) {\n if (code2 === 93) {\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n effects.exit(\"taskListCheck\");\n return after;\n }\n return nok(code2);\n }\n function after(code2) {\n if (markdownLineEnding(code2)) {\n return ok2(code2);\n }\n if (markdownSpace(code2)) {\n return effects.check({\n tokenize: spaceThenNonSpace\n }, ok2, nok)(code2);\n }\n return nok(code2);\n }\n}\nfunction spaceThenNonSpace(effects, ok2, nok) {\n return factorySpace(effects, after, \"whitespace\");\n function after(code2) {\n return code2 === null ? nok(code2) : ok2(code2);\n }\n}\nfunction gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral(),\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable(),\n gfmTaskListItem()\n ]);\n}\nconst emptyOptions = {};\nfunction remarkGfm(options) {\n const self = (\n /** @type {Processor<Root>} */\n this\n );\n const settings = options || emptyOptions;\n const data = self.data();\n const micromarkExtensions = data.micromarkExtensions || (data.micromarkExtensions = []);\n const fromMarkdownExtensions = data.fromMarkdownExtensions || (data.fromMarkdownExtensions = []);\n const toMarkdownExtensions = data.toMarkdownExtensions || (data.toMarkdownExtensions = []);\n micromarkExtensions.push(gfm(settings));\n fromMarkdownExtensions.push(gfmFromMarkdown());\n toMarkdownExtensions.push(gfmToMarkdown(settings));\n}\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcRichTextCopyButton\",\n props: {\n contentId: {}\n },\n setup(__props) {\n const { copy, icon, altText } = useCopy(() => document.getElementById(__props.contentId).textContent);\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcButton, {\n variant: \"tertiary\",\n size: \"small\",\n \"aria-label\": unref(altText),\n title: unref(altText),\n onClick: unref(copy)\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: unref(icon),\n inline: \"\"\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"]);\n };\n }\n});\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isTextNode$1(node2) {\n return node2.type === \"text\";\n}\nconst transformPlaceholders = function(ast) {\n visit(ast, isTextNode$1, visitor);\n function visitor(node2, index, parent) {\n const placeholders = node2.value.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map((entry) => {\n const matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!matches) {\n return u(\"text\", entry);\n }\n const [, component] = matches;\n return u(\"element\", {\n tagName: `#${component}`,\n children: []\n });\n });\n parent.children.splice(index, 1, ...placeholders);\n }\n};\nconst remarkPlaceholder = () => transformPlaceholders;\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isTextNode(node2) {\n return [\"text\", \"code\", \"inlineCode\"].includes(node2.type);\n}\nconst remarkUnescape = function() {\n return function(tree) {\n visit(tree, isTextNode, (node2, index, parent) => {\n parent.children.splice(index, 1, {\n ...node2,\n value: node2.value.replace(/</gmi, \"<\").replace(/>/gmi, \">\")\n });\n return [SKIP$1, index + 1];\n });\n };\n};\nconst LINK_PROTOCOLS = [\"http\", \"https\", \"mailto\", \"tel\"];\nconst rehypeHighlight = ref(null);\nasync function importRehypeHighlightLibrary() {\n const module = await import(\"rehype-highlight\");\n rehypeHighlight.value = module.default;\n}\nconst _sfc_main = {\n name: \"NcRichText\",\n components: {\n NcReferenceList\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * The main text\n */\n text: {\n type: String,\n default: \"\"\n },\n arguments: {\n type: Object,\n default: () => {\n return {};\n }\n },\n referenceLimit: {\n type: Number,\n default: 0\n },\n referenceInteractive: {\n type: Boolean,\n default: true\n },\n referenceInteractiveOptIn: {\n type: Boolean,\n default: false\n },\n /** Provide data upfront to avoid extra http request */\n references: {\n type: Array,\n default: null\n },\n /** Provide basic Markdown syntax */\n useMarkdown: {\n type: Boolean,\n default: false\n },\n /** Provide GitHub Flavored Markdown syntax */\n useExtendedMarkdown: {\n type: Boolean,\n default: false\n },\n /** Provide event from rendered markdown inputs */\n interactive: {\n type: Boolean,\n default: false\n },\n /**\n * Automatically convert link-like text to markdown links\n */\n autolink: {\n type: Boolean,\n default: true\n }\n },\n emits: [\n \"interactTodo\"\n ],\n data() {\n return {\n parentId: createElementId()\n };\n },\n methods: {\n renderPlaintext() {\n const placeholders = this.text.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map((entry) => {\n const matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!matches) {\n return this.prepareTextNode(entry);\n }\n const argumentId = matches[1];\n const argument = this.arguments[argumentId];\n if (typeof argument === \"object\") {\n const { component, props } = argument;\n return h(typeof component === \"string\" ? resolveComponent(component) : component, {\n ...props,\n class: \"rich-text--component\"\n });\n }\n if (argument) {\n return h(\"span\", { class: \"rich-text--fallback\" }, argument);\n }\n return entry;\n });\n return h(\"div\", { class: \"rich-text--wrapper\" }, [\n h(\"div\", {}, placeholders.flat()),\n this.referenceLimit > 0 ? h(\"div\", { class: \"rich-text--reference-widget\" }, [\n h(NcReferenceList, {\n text: this.text,\n referenceData: this.references,\n interactive: this.referenceInteractive,\n interactiveOptIn: this.referenceInteractiveOptIn\n })\n ]) : null\n ]);\n },\n renderMarkdown() {\n const renderedMarkdown = unified().use(remarkParse).use(remarkAutolink, {\n autolink: this.autolink,\n useMarkdown: this.useMarkdown,\n useExtendedMarkdown: this.useExtendedMarkdown\n }).use(remarkUnescape).use(this.useExtendedMarkdown ? remarkGfm : void 0).use(breaks).use(remarkUnlinkProtocols, { except: LINK_PROTOCOLS }).use(remark2rehype, {\n handlers: {\n component(toHast, node2) {\n return toHast(node2, node2.component, { value: node2.value });\n }\n }\n }).use(this.useExtendedMarkdown ? rehypeHighlight.value : void 0).use(remarkPlaceholder).use(rehypeExternalLinks, {\n target: \"_blank\",\n rel: [\"noopener noreferrer\"]\n }).use(rehype2react, {\n Fragment,\n jsx: this.createElement,\n jsxs: this.createElement,\n elementAttributeNameCase: \"html\",\n prefix: false\n }).processSync(this.text.replace(/<[^>]+>/g, (match) => match.replace(/</g, \"<\")).replace(/>/gmi, \">\")).result;\n return h(\"div\", { class: \"rich-text--wrapper rich-text--wrapper-markdown\" }, [\n renderedMarkdown,\n this.referenceLimit > 0 ? h(\"div\", { class: \"rich-text--reference-widget\" }, [\n h(NcReferenceList, {\n text: this.text,\n referenceData: this.references,\n interactive: this.referenceInteractive,\n interactiveOptIn: this.referenceInteractiveOptIn\n })\n ]) : null\n ]);\n },\n /**\n * Render plain text nodes\n *\n * @param {string} text - Content of the node\n */\n prepareTextNode(text2) {\n if (this.autolink) {\n text2 = parseUrl(text2);\n }\n if (Array.isArray(text2)) {\n return text2.map((entry) => {\n if (typeof entry === \"string\") {\n return entry;\n }\n const { component, props } = entry;\n const componentClass = component.name === \"NcLink\" ? void 0 : \"rich-text--component\";\n return h(component, {\n ...props,\n class: componentClass\n });\n });\n }\n return text2;\n },\n createElement(type, props, key) {\n if (key) {\n props.key = key;\n }\n const children = props.children ?? [];\n delete props.children;\n if (!String(type).startsWith(\"#\")) {\n if ([\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].includes(String(type))) {\n type = `h${Math.min(+String(type)[1] + 3, 6)}`;\n }\n let nestedNode = null;\n if (this.useExtendedMarkdown) {\n if (String(type) === \"code\" && !rehypeHighlight.value && props?.class?.includes(\"language\")) {\n importRehypeHighlightLibrary();\n }\n if (String(type) === \"pre\" && children && String(children.type) === \"code\") {\n const id = this.parentId + \"-code-block-\" + createElementId();\n return h(\"p\", { class: \"rich-text__code-block\" }, [\n h(type, { ...props, id }, children),\n h(_sfc_main$1, { class: \"rich-text__code-block-button\", contentId: id })\n ]);\n }\n if (String(type) === \"li\" && Array.isArray(children) && children.length !== 0 && children[0].type === \"input\" && children[0].props.type === \"checkbox\") {\n const [inputNode, , ...labelParts] = children;\n const nestedNodeIndex = labelParts.findIndex((child) => [\"ul\", \"ol\", \"li\", \"blockquote\", \"pre\"].includes(child.type));\n if (nestedNodeIndex !== -1) {\n nestedNode = labelParts[nestedNodeIndex];\n labelParts.splice(nestedNodeIndex);\n }\n const id = this.parentId + \"-markdown-input-\" + createElementId();\n const propsToForward = { ...inputNode.props };\n delete propsToForward.checked;\n const inputComponent = h(NcCheckboxRadioSwitch, {\n ...propsToForward,\n modelValue: inputNode.props.checked,\n id,\n disabled: !this.interactive,\n \"onUpdate:modelValue\": () => {\n this.$emit(\"interactTodo\", id);\n }\n }, { default: () => labelParts });\n return h(type, props, [inputComponent, nestedNode]);\n }\n }\n if (String(type) === \"a\") {\n const route = getRoute(this.$router, props.href);\n if (route) {\n delete props.href;\n delete props.target;\n return h(RouterLink, {\n ...props,\n to: route\n }, { default: () => children });\n }\n }\n return h(type, props, children);\n }\n const placeholder = this.arguments[type.slice(1)];\n if (!placeholder) {\n return h(\"span\", { ...props, class: \"rich-text--fallback\" }, [`{${type.slice(1)}}`]);\n }\n if (!placeholder.component) {\n return h(\"span\", { ...props }, [placeholder]);\n }\n return h(\n typeof placeholder.component === \"string\" ? resolveComponent(placeholder.component) : placeholder.component,\n {\n ...props,\n ...placeholder.props,\n class: \"rich-text--component\"\n },\n { default: () => children }\n );\n }\n },\n render() {\n return this.useMarkdown || this.useExtendedMarkdown ? this.renderMarkdown() : this.renderPlaintext();\n }\n};\nconst NcRichText = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-a47e4ba7\"]]);\nexport {\n NcRichText as N,\n NcReferenceList as a\n};\n//# sourceMappingURL=NcRichText-1U5RXjPL.mjs.map\n","import '../assets/NcRichContenteditable-BuaWt3Xn.css';\nimport debounce from \"debounce\";\nimport Tribute from \"tributejs/dist/tribute.esm.js\";\nimport { useIsDarkTheme } from \"../composables/useIsDarkTheme/index.mjs\";\nimport { g as getAvatarUrl } from \"./NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-D6LzDiYf.mjs\";\nimport { N as NcUserStatusIcon } from \"./NcUserStatusIcon-BgElapLh.mjs\";\nimport { createElementBlock, openBlock, normalizeClass, createElementVNode, normalizeStyle, toDisplayString, createApp, resolveComponent, createBlock, createCommentVNode, mergeProps, withModifiers, withKeys } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { e as emojiSearch, a as emojiAddRecent } from \"./emoji-BY_D0V5K.mjs\";\nimport { r as register, s as t37, J as t34, a as t, K as n } from \"./_l10n-CgsPi8nC.mjs\";\nimport escapeHTML from \"escape-html\";\nimport stripTags from \"striptags\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport \"@nextcloud/auth\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/router\";\nimport \"@nextcloud/sharing/public\";\nimport \"@vueuse/core\";\nimport \"vue-router\";\nimport \"./legacy-DcjXBL_t.mjs\";\nimport \"./NcButton-CzpKEx4V.mjs\";\nimport { g as getLinkWithPicker, s as searchProvider } from \"./referencePickerModal-CXAtbcPd.mjs\";\nimport \"./customPickerElements-4pQTZUnk.mjs\";\nimport \"./autolink-U5pBzLgI.mjs\";\nimport \"./NcRichText-1U5RXjPL.mjs\";\nimport \"./NcEmptyContent-B8-90BSI.mjs\";\nimport \"./NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs\";\nimport \"./NcSelect-Cc9_a8nG.mjs\";\nimport \"./NcLoadingIcon-b_ajZ_nQ.mjs\";\nimport \"./NcTextField.vue_vue_type_script_setup_true_lang-CCsZqnkM.mjs\";\nimport \"dompurify\";\nimport \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport \"./NcInputField-Clm9jOGJ.mjs\";\nimport \"@nextcloud/event-bus\";\nimport \"focus-trap\";\nimport \"./NcActions-4R7icatI.mjs\";\nimport \"../composables/useFormatDateTime/index.mjs\";\nimport \"../composables/useHotKey/index.mjs\";\nimport \"../composables/useIsFullscreen/index.mjs\";\nimport \"../composables/useIsMobile/index.mjs\";\nimport \"./NcModal-D00OJZV2.mjs\";\nimport \"./rtl-v0UOPAM7.mjs\";\nconst _sfc_main$2 = {\n name: \"NcMentionBubble\",\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * Id of the bubble\n */\n id: {\n type: String,\n required: true\n },\n /**\n * The main text\n */\n label: {\n type: String,\n required: false,\n default: null\n },\n /**\n * Icon to be applied\n */\n icon: {\n type: String,\n required: true\n },\n /**\n * URL of the icon\n */\n iconUrl: {\n type: [String, null],\n default: null\n },\n source: {\n type: String,\n required: true\n },\n /**\n * Is the bubble shown as primary\n */\n primary: {\n type: Boolean,\n default: false\n }\n },\n setup() {\n const isDarkTheme = useIsDarkTheme();\n return {\n isDarkTheme\n };\n },\n computed: {\n avatarUrl() {\n if (this.iconUrl) {\n return this.iconUrl;\n }\n return this.id && this.source === \"users\" ? getAvatarUrl(this.id, { isDarkTheme: this.isDarkTheme }) : null;\n },\n mentionText() {\n return !this.id.includes(\" \") && !this.id.includes(\"/\") ? `@${this.id}` : `@\"${this.id}\"`;\n }\n }\n};\nconst _hoisted_1$2 = { class: \"mention-bubble__wrapper\" };\nconst _hoisted_2$2 = { class: \"mention-bubble__content\" };\nconst _hoisted_3$1 = [\"title\"];\nconst _hoisted_4$1 = {\n role: \"none\",\n class: \"mention-bubble__select\"\n};\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", {\n class: normalizeClass([\"mention-bubble\", { \"mention-bubble--primary\": $props.primary }]),\n contenteditable: \"false\"\n }, [\n createElementVNode(\"span\", _hoisted_1$2, [\n createElementVNode(\"span\", _hoisted_2$2, [\n createElementVNode(\"span\", {\n class: normalizeClass([[$props.icon, `mention-bubble__icon--${$options.avatarUrl ? \"with-avatar\" : \"\"}`], \"mention-bubble__icon\"]),\n style: normalizeStyle($options.avatarUrl ? { backgroundImage: `url(${$options.avatarUrl})` } : null)\n }, null, 6),\n createElementVNode(\"span\", {\n role: \"heading\",\n class: \"mention-bubble__title\",\n title: $props.label\n }, null, 8, _hoisted_3$1)\n ]),\n createElementVNode(\"span\", _hoisted_4$1, toDisplayString($options.mentionText), 1)\n ])\n ], 2);\n}\nconst NcMentionBubble = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2], [\"__scopeId\", \"data-v-45238efd\"]]);\nconst MENTION_START = /(?=[a-z0-9_\\-@.'])\\B/.source;\nconst MENTION_SIMPLE = /(@[a-z0-9_\\-@.']+)/.source;\nconst MENTION_GUEST = /@"(?:guest|email){1}\\/[a-f0-9]+"/.source;\nconst MENTION_PREFIXED = /@"(?:federated_)?(?:group|team|user){1}\\/[a-z0-9_\\-@.' /:]+"/.source;\nconst MENTION_WITH_SPACE = /@"[a-z0-9_\\-@.' ]+"/.source;\nconst MENTION_COMPLEX = `(${MENTION_GUEST}|${MENTION_PREFIXED}|${MENTION_WITH_SPACE})`;\nconst USERID_REGEX = new RegExp(`${MENTION_START}${MENTION_SIMPLE}`, \"gi\");\nconst USERID_REGEX_WITH_SPACE = new RegExp(`${MENTION_START}${MENTION_COMPLEX}`, \"gi\");\nconst richEditor = {\n props: {\n userData: {\n type: Object,\n default: () => ({})\n }\n },\n methods: {\n /**\n * Convert the value string to html for the inner content\n *\n * @param {string} value the content without html\n * @return {string} rendered html\n */\n renderContent(value) {\n const sanitizedValue = escapeHTML(value);\n const splitValue = sanitizedValue.split(USERID_REGEX).map((part) => part.split(USERID_REGEX_WITH_SPACE)).flat();\n return splitValue.map((part) => {\n if (!part.startsWith(\"@\")) {\n return part;\n }\n const id = part.slice(1).replace(/"/gi, \"\");\n return this.genSelectTemplate(id);\n }).join(\"\").replace(/\\n/gmi, \"<br>\").replace(/&/gmi, \"&\");\n },\n /**\n * Convert the innerHtml content to a string with mentions as text\n *\n * @param {string} content the content without html\n * @return {string}\n */\n parseContent(content) {\n let text = content;\n text = text.replace(/<br>/gmi, \"\\n\");\n text = text.replace(/ /gmi, \" \");\n text = text.replace(/&/gmi, \"&\");\n text = text.replace(/<\\/div>/gmi, \"\\n\");\n text = stripTags(text, \"<div>\");\n text = stripTags(text);\n return text;\n },\n /**\n * Generate an autocompletion popup entry template\n *\n * @param {string} value the value to match against the userData\n * @return {string}\n */\n genSelectTemplate(value) {\n if (typeof value === \"undefined\") {\n return `${this.autocompleteTribute.current.collection.trigger}${this.autocompleteTribute.current.mentionText}`;\n }\n const data = this.userData[value];\n if (!data) {\n return [\" \", \"/\", \":\"].every((char) => !value.includes(char)) ? `@${value}` : `@\"${value}\"`;\n }\n return this.renderComponentHtml(data, NcMentionBubble).replace(/[\\n\\t]/gmi, \"\").replace(/>\\s+</g, \"><\");\n },\n /**\n * Render a component and return its html content\n *\n * @param {object} props the props to pass to the component\n * @param {object} component the component to render\n * @return {string} the rendered html\n */\n renderComponentHtml(props, component) {\n const Item = createApp(component, {\n ...props\n });\n const mount = document.createElement(\"div\");\n mount.style.display = \"none\";\n document.body.appendChild(mount);\n Item.mount(mount);\n const renderedHtml = mount.innerHTML;\n Item.unmount();\n mount.remove();\n return renderedHtml;\n }\n }\n};\nconst _sfc_main$1 = {\n name: \"NcAutoCompleteResult\",\n components: {\n NcUserStatusIcon\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * The label text\n */\n label: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The secondary line of text if any\n */\n subline: {\n type: String,\n default: null\n },\n /**\n * Unique id\n */\n id: {\n type: String,\n default: null\n },\n /**\n * The icon class\n */\n icon: {\n type: String,\n required: true\n },\n /**\n * Icon as external URL\n */\n iconUrl: {\n type: String,\n default: null\n },\n source: {\n type: String,\n required: true\n },\n status: {\n type: [Object, Array],\n default: () => ({})\n }\n },\n setup() {\n const isDarkTheme = useIsDarkTheme();\n return {\n isDarkTheme\n };\n },\n computed: {\n avatarUrl() {\n if (this.iconUrl) {\n return this.iconUrl;\n }\n return this.id && this.source === \"users\" ? getAvatarUrl(this.id, { isDarkTheme: this.isDarkTheme }) : null;\n }\n }\n};\nconst _hoisted_1$1 = { class: \"autocomplete-result\" };\nconst _hoisted_2$1 = {\n key: 0,\n class: \"autocomplete-result__status autocomplete-result__status--icon\"\n};\nconst _hoisted_3 = { class: \"autocomplete-result__content\" };\nconst _hoisted_4 = [\"title\"];\nconst _hoisted_5 = {\n key: 0,\n class: \"autocomplete-result__subline\"\n};\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcUserStatusIcon = resolveComponent(\"NcUserStatusIcon\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createElementVNode(\"div\", {\n class: normalizeClass([[$props.icon, `autocomplete-result__icon--${$options.avatarUrl ? \"with-avatar\" : \"\"}`], \"autocomplete-result__icon\"]),\n style: normalizeStyle($options.avatarUrl ? { backgroundImage: `url(${$options.avatarUrl})` } : null)\n }, [\n $props.status.icon ? (openBlock(), createElementBlock(\"span\", _hoisted_2$1, toDisplayString($props.status && $props.status.icon || \"\"), 1)) : $props.status.status && $props.status.status !== \"offline\" ? (openBlock(), createBlock(_component_NcUserStatusIcon, {\n key: 1,\n class: \"autocomplete-result__status\",\n status: $props.status.status\n }, null, 8, [\"status\"])) : createCommentVNode(\"\", true)\n ], 6),\n createElementVNode(\"span\", _hoisted_3, [\n createElementVNode(\"span\", {\n class: \"autocomplete-result__title\",\n title: $props.label\n }, toDisplayString($props.label), 9, _hoisted_4),\n $props.subline ? (openBlock(), createElementBlock(\"span\", _hoisted_5, toDisplayString($props.subline), 1)) : createCommentVNode(\"\", true)\n ])\n ]);\n}\nconst NcAutoCompleteResult = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-ca83b679\"]]);\nregister(t34, t37);\nconst style1 = {\n \"material-design-icon\": \"_material-design-icon_1xkrb_12\",\n \"tribute-container\": \"_tribute-container_1xkrb_20\",\n \"tribute-container__item\": \"_tribute-container__item_1xkrb_41\",\n \"tribute-container--focus-visible\": \"_tribute-container--focus-visible_1xkrb_55\",\n \"tribute-container-autocomplete\": \"_tribute-container-autocomplete_1xkrb_59\",\n \"tribute-container-emoji\": \"_tribute-container-emoji_1xkrb_65\",\n \"tribute-container-link\": \"_tribute-container-link_1xkrb_66\",\n \"tribute-item\": \"_tribute-item_1xkrb_71\",\n \"tribute-item__title\": \"_tribute-item__title_1xkrb_86\",\n \"tribute-item__icon\": \"_tribute-item__icon_1xkrb_91\"\n};\nconst smilesCharacters = [\"d\", \"D\", \"p\", \"P\", \"s\", \"S\", \"x\", \"X\", \")\", \"(\", \"|\", \"/\"];\nconst textSmiles = [];\nsmilesCharacters.forEach((char) => {\n textSmiles.push(\":\" + char);\n textSmiles.push(\":-\" + char);\n});\nconst _sfc_main = {\n name: \"NcRichContenteditable\",\n mixins: [richEditor],\n inheritAttrs: false,\n props: {\n /**\n * The ID attribute of the content editable\n */\n id: {\n type: String,\n default: () => createElementId()\n },\n /**\n * Visual label of the contenteditable\n */\n label: {\n type: String,\n default: \"\"\n },\n /**\n * The text content\n */\n modelValue: {\n type: String,\n required: true\n },\n /**\n * Placeholder to be shown if empty\n */\n placeholder: {\n type: String,\n default: t(\"Write a message …\")\n },\n /**\n * Auto complete function\n */\n autoComplete: {\n type: Function,\n default: () => []\n },\n /**\n * The containing element for the menu popover\n */\n menuContainer: {\n type: Element,\n default: () => document.body\n },\n /**\n * Make the contenteditable looks like a textarea or not.\n * Default looks like a single-line input.\n * This also handle the default enter/shift+enter behaviour.\n * if multiline, enter = newline; otherwise enter = submit\n * shift+enter always add a new line. ctrl+enter always submits\n */\n multiline: {\n type: Boolean,\n default: false\n },\n /**\n * Is the content editable ?\n */\n contenteditable: {\n type: Boolean,\n default: true\n },\n /**\n * Disable the editing and show specific disabled design\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Max allowed length\n */\n maxlength: {\n type: Number,\n default: null\n },\n /**\n * Enable or disable emoji autocompletion\n */\n emojiAutocomplete: {\n type: Boolean,\n default: true\n },\n /**\n * Enable or disable link autocompletion\n */\n linkAutocomplete: {\n type: Boolean,\n default: true\n },\n /**\n * CSS class to apply to the root element.\n */\n class: {\n type: [String, Array, Object],\n default: \"\"\n }\n },\n emits: [\n \"paste\",\n \"update:modelValue\",\n \"smartPickerSubmit\",\n \"submit\"\n ],\n setup() {\n const segmenter = new Intl.Segmenter();\n return {\n // Constants\n labelId: createElementId(),\n tributeId: createElementId(),\n segmenter,\n /**\n * Non-reactive property to store Tribute instance\n *\n * @type {import('tributejs').default | null}\n */\n tribute: null,\n tributeStyleMutationObserver: null\n };\n },\n data() {\n return {\n // Represent the raw untrimmed text of the contenteditable\n // serves no other purpose than to check whether the\n // content is empty or not\n localValue: this.modelValue,\n // Is in text composition session in IME\n isComposing: false,\n // Tribute autocomplete\n isAutocompleteOpen: false,\n autocompleteActiveId: void 0,\n isTributeIntegrationDone: false\n };\n },\n computed: {\n /**\n * Is the current trimmed value empty?\n *\n * @return {boolean}\n */\n isEmptyValue() {\n return !this.localValue || this.localValue.trim() === \"\";\n },\n /**\n * Is the current value over maxlength?\n *\n * @return {boolean}\n */\n isOverMaxlength() {\n if (this.isEmptyValue || !this.maxlength) {\n return false;\n }\n const length = [...this.segmenter.segment(this.localValue)].length;\n return length > this.maxlength;\n },\n /**\n * Tooltip to show if characters count is over limit\n *\n * @return {string}\n */\n tooltipString() {\n if (!this.isOverMaxlength) {\n return null;\n }\n return n(\"Message limit of %n character reached\", \"Message limit of %n characters reached\", this.maxlength);\n },\n /**\n * Edit is only allowed when contenteditableis true and disabled is false\n *\n * @return {boolean}\n */\n canEdit() {\n return this.contenteditable && !this.disabled;\n },\n /**\n * Compute debounce function for the autocomplete function\n */\n debouncedAutoComplete() {\n return debounce(async (search, callback) => {\n this.autoComplete(search, callback);\n }, 100);\n }\n },\n watch: {\n /**\n * If the parent value change, we compare the plain text rendering\n * If it's different, we render everything and update the main content\n */\n modelValue() {\n const html = this.$refs.contenteditable.innerHTML;\n if (this.modelValue.trim() !== this.parseContent(html).trim()) {\n this.updateContent(this.modelValue);\n }\n }\n },\n mounted() {\n this.initializeTribute();\n this.updateContent(this.modelValue);\n this.$refs.contenteditable.contentEditable = this.canEdit;\n },\n beforeUnmount() {\n if (this.tribute) {\n this.tribute.detach(this.$refs.contenteditable);\n }\n if (this.tributeStyleMutationObserver) {\n this.tributeStyleMutationObserver.disconnect();\n }\n },\n methods: {\n /**\n * Focus the richContenteditable\n *\n * @public\n */\n focus() {\n this.$refs.contenteditable.focus();\n },\n initializeTribute() {\n const renderMenuItem = (content) => `<div id=\"${createElementId()}\" class=\"${this.$style[\"tribute-item\"]}\" role=\"option\">${content}</div>`;\n const tributesCollection = [];\n tributesCollection.push({\n fillAttr: \"id\",\n // Search against id and label (display name) (fallback to title for v8.0.0..8.6.1 compatibility)\n lookup: (result) => `${result.id} ${result.label ?? result.title}`,\n requireLeadingSpace: true,\n // Popup mention autocompletion templates\n menuItemTemplate: (item) => renderMenuItem(this.renderComponentHtml(item.original, NcAutoCompleteResult)),\n // Hide if no results\n noMatchTemplate: () => '<span class=\"hidden\"></span>',\n // Inner display of mentions\n selectTemplate: (item) => this.genSelectTemplate(item?.original?.id),\n // Autocompletion results\n values: this.debouncedAutoComplete,\n // Class added to the menu container\n containerClass: `${this.$style[\"tribute-container\"]} ${this.$style[\"tribute-container-autocomplete\"]}`,\n // Class added to each list item\n itemClass: this.$style[\"tribute-container__item\"]\n });\n if (this.emojiAutocomplete) {\n tributesCollection.push({\n trigger: \":\",\n // Don't use the tribute search function at all\n // We pass search results as values (see below)\n lookup: (result, query) => query,\n requireLeadingSpace: true,\n // Popup mention autocompletion templates\n menuItemTemplate: (item) => {\n if (textSmiles.includes(item.original)) {\n return item.original;\n }\n return renderMenuItem(`<span class=\"${this.$style[\"tribute-item__emoji\"]}\">${item.original.native}</span> :${item.original.short_name}`);\n },\n // Hide if no results\n noMatchTemplate: () => t(\"No emoji found\"),\n // Display raw emoji along with its name\n selectTemplate: (item) => {\n if (textSmiles.includes(item.original)) {\n return item.original;\n }\n emojiAddRecent(item.original);\n return item.original.native;\n },\n // Pass the search results as values\n values: (text, cb) => {\n const emojiResults = emojiSearch(text);\n if (textSmiles.includes(\":\" + text)) {\n emojiResults.unshift(\":\" + text);\n }\n cb(emojiResults);\n },\n // Class added to the menu container\n containerClass: `${this.$style[\"tribute-container\"]} ${this.$style[\"tribute-container-emoji\"]}`,\n // Class added to each list item\n itemClass: this.$style[\"tribute-container__item\"]\n });\n }\n if (this.linkAutocomplete) {\n tributesCollection.push({\n trigger: \"/\",\n // Don't use the tribute search function at all\n // We pass search results as values (see below)\n lookup: (result, query) => query,\n requireLeadingSpace: true,\n // Popup mention autocompletion templates\n menuItemTemplate: (item) => renderMenuItem(`<img class=\"${this.$style[\"tribute-item__icon\"]}\" src=\"${item.original.icon_url}\"> <span class=\"${this.$style[\"tribute-item__title\"]}\">${item.original.title}</span>`),\n // Hide if no results\n noMatchTemplate: () => t(\"No link provider found\"),\n selectTemplate: this.getLink,\n // Pass the search results as values\n values: (text, cb) => cb(searchProvider(text)),\n // Class added to the menu container\n containerClass: `${this.$style[\"tribute-container\"]} ${this.$style[\"tribute-container-link\"]}`,\n // Class added to each list item\n itemClass: this.$style[\"tribute-container__item\"]\n });\n }\n this.tribute = new Tribute({\n collection: tributesCollection,\n // FIXME: tributejs doesn't support allowSpaces as a collection option, only as a global one\n // Requires to fork a library to allow spaces only in the middle of mentions ('@' trigger)\n allowSpaces: false,\n // Where to inject the menu popup\n menuContainer: this.menuContainer\n });\n this.tribute.attach(this.$refs.contenteditable);\n },\n getLink(item) {\n getLinkWithPicker(item.original.id).then((result) => {\n const tmpElem = document.getElementById(\"tmp-smart-picker-result-node\");\n const eventData = {\n result,\n insertText: true\n };\n this.$emit(\"smartPickerSubmit\", eventData);\n if (eventData.insertText) {\n const newElem = document.createTextNode(result);\n tmpElem.replaceWith(newElem);\n this.setCursorAfter(newElem);\n this.updateValue(this.$refs.contenteditable.innerHTML);\n } else {\n tmpElem.remove();\n }\n }).catch((error) => {\n logger.debug(\"[NcRichContenteditable] Smart picker promise rejected:\", { error });\n const tmpElem = document.getElementById(\"tmp-smart-picker-result-node\");\n this.setCursorAfter(tmpElem);\n tmpElem.remove();\n });\n return '<span id=\"tmp-smart-picker-result-node\"></span>';\n },\n setCursorAfter(element) {\n const range = document.createRange();\n range.setEndAfter(element);\n range.collapse();\n const selection = window.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n },\n moveCursorToEnd() {\n if (!document.createRange) {\n return;\n }\n if (window.getSelection().rangeCount > 0 && this.$refs.contenteditable.contains(window.getSelection().getRangeAt(0).commonAncestorContainer)) {\n return;\n }\n const range = document.createRange();\n range.selectNodeContents(this.$refs.contenteditable);\n range.collapse(false);\n const selection = window.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n },\n /**\n * Re-emit the input event to the parent\n *\n * @param {Event} event the input event\n */\n onInput(event) {\n this.updateValue(event.target.innerHTML);\n },\n /**\n * When pasting, sanitize the content, extract text\n * and render it again\n *\n * @param {Event} event the paste event\n * @fires Event paste the original paste event\n */\n onPaste(event) {\n if (!this.canEdit) {\n return;\n }\n event.preventDefault();\n const clipboardData = event.clipboardData;\n this.$emit(\"paste\", event);\n if (clipboardData.files.length !== 0 || !Object.values(clipboardData.items).find((item) => item?.type.startsWith(\"text\"))) {\n return;\n }\n const text = clipboardData.getData(\"text\");\n const selection = window.getSelection();\n const range = selection.getRangeAt(0);\n range.deleteContents();\n range.insertNode(document.createTextNode(text));\n range.collapse(false);\n this.updateValue(this.$refs.contenteditable.innerHTML);\n },\n /**\n * Update the value text from the provided html\n *\n * @param {string} htmlOrText the html content (or raw text with @mentions)\n */\n updateValue(htmlOrText) {\n const text = this.parseContent(htmlOrText).replace(/^\\n$/, \"\");\n this.localValue = text;\n this.$emit(\"update:modelValue\", text);\n },\n /**\n * Update content and local value\n *\n * @param {string} value the message value\n */\n updateContent(value) {\n const renderedContent = this.renderContent(value);\n this.$refs.contenteditable.innerHTML = renderedContent;\n this.localValue = value;\n },\n /**\n * Enter key pressed. Submits if not multiline\n *\n * @param {Event} event the keydown event\n */\n onEnter(event) {\n if (this.multiline || this.isOverMaxlength || this.tribute.isActive || this.isComposing) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n this.$emit(\"submit\", event);\n },\n /**\n * Ctrl + Enter key pressed is used to submit\n *\n * @param {Event} event the keydown event\n */\n onCtrlEnter(event) {\n if (this.isOverMaxlength) {\n return;\n }\n this.$emit(\"submit\", event);\n },\n onKeyUp(event) {\n event.stopImmediatePropagation();\n },\n onKeyEsc(event) {\n if (this.tribute && this.isAutocompleteOpen) {\n event.stopImmediatePropagation();\n this.tribute.hideMenu();\n }\n },\n /**\n * Get HTML element with Tribute.js container\n *\n * @return {HTMLElement}\n */\n getTributeContainer() {\n return this.tribute.menu;\n },\n /**\n * Get the currently selected item element id in Tribute.js container\n *\n * @return {HTMLElement}\n */\n getTributeSelectedItem() {\n return this.getTributeContainer().querySelector('.highlight [id^=\"nc-rich-contenteditable-tribute-item-\"]');\n },\n /**\n * Handle Tribute activation\n *\n * @param {boolean} isActive - is active\n */\n onTributeActive(isActive) {\n this.isAutocompleteOpen = isActive;\n if (isActive) {\n this.getTributeContainer().setAttribute(\"class\", this.tribute.current.collection.containerClass || this.$style[\"tribute-container\"]);\n this.setupTributeIntegration();\n document.removeEventListener(\"click\", this.hideTribute, true);\n } else {\n this.debouncedAutoComplete.clear();\n this.autocompleteActiveId = void 0;\n this.setTributeFocusVisible(false);\n }\n },\n onTributeArrowKeyDown() {\n if (!this.isAutocompleteOpen) {\n return;\n }\n this.setTributeFocusVisible(true);\n this.onTributeSelectedItemWillChange();\n },\n onTributeSelectedItemWillChange() {\n requestAnimationFrame(() => {\n this.autocompleteActiveId = this.getTributeSelectedItem()?.id;\n });\n },\n setupTributeIntegration() {\n if (this.isTributeIntegrationDone) {\n return;\n }\n this.isTributeIntegrationDone = true;\n const tributeContainer = this.getTributeContainer();\n tributeContainer.id = this.tributeId;\n tributeContainer.setAttribute(\"role\", \"listbox\");\n const ul = tributeContainer.children[0];\n ul.setAttribute(\"role\", \"presentation\");\n this.tributeStyleMutationObserver = new MutationObserver(([{ target }]) => {\n if (target.style.display !== \"none\") {\n this.onTributeSelectedItemWillChange();\n }\n }).observe(tributeContainer, {\n attributes: true,\n attributeFilter: [\"style\"]\n });\n tributeContainer.addEventListener(\"mousemove\", () => {\n this.setTributeFocusVisible(false);\n this.onTributeSelectedItemWillChange();\n }, { passive: true });\n },\n /**\n * Set tribute-container--focus-visible class on the Tribute container when the user navigates the listbox via keyboard.\n *\n * Because the real focus is kept on the textbox, we cannot use the :focus-visible pseudo-class\n * to style selected options in the autocomplete listbox.\n *\n * @param {boolean} withFocusVisible - should the focus-visible class be added\n */\n setTributeFocusVisible(withFocusVisible) {\n if (withFocusVisible) {\n this.getTributeContainer().classList.add(this.$style[\"tribute-container--focus-visible\"]);\n } else {\n this.getTributeContainer().classList.remove(this.$style[\"tribute-container--focus-visible\"]);\n }\n },\n /**\n * Show tribute menu programmatically.\n *\n * @param {string} trigger - trigger character, can be '/', '@', or ':'\n *\n * @public\n */\n showTribute(trigger) {\n this.focus();\n const index = this.tribute.collection.findIndex((collection) => collection.trigger === trigger);\n this.tribute.showMenuForCollection(this.$refs.contenteditable, index);\n this.updateValue(this.$refs.contenteditable.innerHTML);\n document.addEventListener(\"click\", this.hideTribute, true);\n },\n /**\n * Hide tribute menu programmatically\n *\n */\n hideTribute() {\n this.tribute.hideMenu();\n document.removeEventListener(\"click\", this.hideTribute, true);\n }\n }\n};\nconst _hoisted_1 = [\"id\", \"contenteditable\", \"aria-labelledby\", \"aria-placeholder\", \"aria-controls\", \"aria-expanded\", \"aria-activedescendant\", \"title\"];\nconst _hoisted_2 = [\"id\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"rich-contenteditable\", _ctx.$props.class])\n }, [\n createElementVNode(\"div\", mergeProps({\n id: $props.id,\n ref: \"contenteditable\",\n class: [{\n \"rich-contenteditable__input--empty\": $options.isEmptyValue,\n \"rich-contenteditable__input--multiline\": $props.multiline,\n \"rich-contenteditable__input--has-label\": $props.label,\n \"rich-contenteditable__input--overflow\": $options.isOverMaxlength,\n \"rich-contenteditable__input--disabled\": $props.disabled\n }, \"rich-contenteditable__input\"],\n contenteditable: $options.canEdit,\n \"aria-labelledby\": $props.label ? $setup.labelId : void 0,\n \"aria-placeholder\": $props.placeholder,\n \"aria-multiline\": \"true\",\n role: \"textbox\",\n \"aria-haspopup\": \"listbox\",\n \"aria-autocomplete\": \"inline\",\n \"aria-controls\": $setup.tributeId,\n \"aria-expanded\": $data.isAutocompleteOpen ? \"true\" : \"false\",\n \"aria-activedescendant\": $data.autocompleteActiveId,\n title: $options.tooltipString\n }, _ctx.$attrs, {\n onFocus: _cache[0] || (_cache[0] = (...args) => $options.moveCursorToEnd && $options.moveCursorToEnd(...args)),\n onInput: _cache[1] || (_cache[1] = (...args) => $options.onInput && $options.onInput(...args)),\n onCompositionstart: _cache[2] || (_cache[2] = ($event) => $data.isComposing = true),\n onCompositionend: _cache[3] || (_cache[3] = ($event) => $data.isComposing = false),\n onKeydownCapture: _cache[4] || (_cache[4] = withKeys((...args) => $options.onKeyEsc && $options.onKeyEsc(...args), [\"esc\"])),\n onKeydown: [\n _cache[5] || (_cache[5] = withKeys(withModifiers((...args) => $options.onEnter && $options.onEnter(...args), [\"exact\"]), [\"enter\"])),\n _cache[6] || (_cache[6] = withKeys(withModifiers((...args) => $options.onCtrlEnter && $options.onCtrlEnter(...args), [\"ctrl\", \"exact\", \"stop\", \"prevent\"]), [\"enter\"])),\n _cache[9] || (_cache[9] = withKeys(withModifiers((...args) => $options.onTributeArrowKeyDown && $options.onTributeArrowKeyDown(...args), [\"exact\", \"stop\"]), [\"up\"])),\n _cache[10] || (_cache[10] = withKeys(withModifiers((...args) => $options.onTributeArrowKeyDown && $options.onTributeArrowKeyDown(...args), [\"exact\", \"stop\"]), [\"down\"]))\n ],\n onPaste: _cache[7] || (_cache[7] = (...args) => $options.onPaste && $options.onPaste(...args)),\n onKeyupCapture: _cache[8] || (_cache[8] = withModifiers((...args) => $options.onKeyUp && $options.onKeyUp(...args), [\"stop\", \"prevent\"])),\n onTributeActiveTrue: _cache[11] || (_cache[11] = ($event) => $options.onTributeActive(true)),\n onTributeActiveFalse: _cache[12] || (_cache[12] = ($event) => $options.onTributeActive(false))\n }), null, 16, _hoisted_1),\n $props.label ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n id: $setup.labelId,\n class: \"rich-contenteditable__label\"\n }, toDisplayString($props.label), 9, _hoisted_2)) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst cssModules = {\n \"$style\": style1\n};\nconst NcRichContenteditable = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__cssModules\", cssModules], [\"__scopeId\", \"data-v-faef642b\"]]);\nexport {\n NcMentionBubble as N,\n NcAutoCompleteResult as a,\n NcRichContenteditable as b\n};\n//# sourceMappingURL=NcRichContenteditable-B-w64JsT.mjs.map\n","import { r as register, j as t0, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcEllipsisedOption } from \"./NcEllipsisedOption-dT-CtXYp.mjs\";\nimport { N as NcSelect } from \"./NcSelect-Cc9_a8nG.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { resolveComponent, createBlock, openBlock, mergeProps, createSlots, withCtx, createVNode, renderList, renderSlot, normalizeProps, guardReactiveProps } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t0);\nfunction xmlToJson(xml) {\n let obj = {};\n if (xml.nodeType === 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (let j = 0; j < xml.attributes.length; j++) {\n const attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n } else if (xml.nodeType === 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (let i = 0; i < xml.childNodes.length; i++) {\n const item = xml.childNodes.item(i);\n const nodeName = item.nodeName;\n if (typeof obj[nodeName] === \"undefined\") {\n obj[nodeName] = xmlToJson(item);\n } else {\n if (typeof obj[nodeName].push === \"undefined\") {\n const old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(xmlToJson(item));\n }\n }\n }\n return obj;\n}\nfunction parseXml(xml) {\n let dom = null;\n try {\n dom = new DOMParser().parseFromString(xml, \"text/xml\");\n } catch (error) {\n logger.error(\"[NcSelectTags] Failed to parse xml document\", { error });\n }\n return dom;\n}\nfunction xmlToTagList(xml) {\n const json = xmlToJson(parseXml(xml));\n const list = json[\"d:multistatus\"][\"d:response\"];\n const result = [];\n for (const index in list) {\n const tag = list[index][\"d:propstat\"];\n if (tag[\"d:status\"][\"#text\"] !== \"HTTP/1.1 200 OK\") {\n continue;\n }\n result.push({\n id: parseInt(tag[\"d:prop\"][\"oc:id\"][\"#text\"]),\n displayName: tag[\"d:prop\"][\"oc:display-name\"][\"#text\"],\n canAssign: tag[\"d:prop\"][\"oc:can-assign\"][\"#text\"] === \"true\",\n userAssignable: tag[\"d:prop\"][\"oc:user-assignable\"][\"#text\"] === \"true\",\n userVisible: tag[\"d:prop\"][\"oc:user-visible\"][\"#text\"] === \"true\"\n });\n }\n return result;\n}\nasync function searchTags() {\n if (window.NextcloudVueDocs) {\n return Promise.resolve(xmlToTagList(window.NextcloudVueDocs.tags));\n }\n const result = await axios({\n method: \"PROPFIND\",\n url: generateRemoteUrl(\"dav\") + \"/systemtags/\",\n data: `<?xml version=\"1.0\"?>\n\t\t\t\t\t<d:propfind xmlns:d=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\">\n\t\t\t\t\t <d:prop>\n\t\t\t\t\t\t<oc:id />\n\t\t\t\t\t\t<oc:display-name />\n\t\t\t\t\t\t<oc:user-visible />\n\t\t\t\t\t\t<oc:user-assignable />\n\t\t\t\t\t\t<oc:can-assign />\n\t\t\t\t\t </d:prop>\n\t\t\t\t\t</d:propfind>`\n });\n return xmlToTagList(result.data);\n}\nconst _sfc_main = {\n name: \"NcSelectTags\",\n components: {\n NcEllipsisedOption,\n NcSelect\n },\n props: {\n // Add NcSelect prop defaults and populate $props\n ...NcSelect.props,\n /**\n * Enable automatic fetching of tags\n *\n * If `false`, available tags must be passed using the `options` prop\n */\n fetchTags: {\n type: Boolean,\n default: true\n },\n /**\n * Callback to generate the label text\n *\n * @see https://vue-select.org/api/props.html#getoptionlabel\n */\n getOptionLabel: {\n type: Function,\n default: (option) => {\n const { displayName, userVisible, userAssignable } = option;\n if (userVisible === false) {\n return t(\"{tag} (invisible)\", { tag: displayName });\n }\n if (userAssignable === false) {\n return t(\"{tag} (restricted)\", { tag: displayName });\n }\n return displayName;\n }\n },\n /**\n * Sets the maximum number of tags to display in the dropdown list\n *\n * Because of compatibility reasons only 5 tag entries are shown by\n * default\n */\n limit: {\n type: Number,\n default: 5\n },\n /**\n * Allow selection of multiple options\n *\n * This prop automatically sets the internal `closeOnSelect` prop to\n * its boolean opposite\n *\n * @see https://vue-select.org/api/props.html#multiple\n */\n multiple: {\n type: Boolean,\n default: true\n },\n /**\n * Callback to filter available options\n */\n optionsFilter: {\n type: Function,\n default: null\n },\n /**\n * Enable passing of `value` prop and emitted `input` events as-is\n * i.e. for usage with `v-model`\n *\n * If `true`, custom internal `value` and `input` handling is disabled\n */\n passthru: {\n type: Boolean,\n default: false\n },\n /**\n * Placeholder text\n *\n * @see https://vue-select.org/api/props.html#placeholder\n */\n placeholder: {\n type: String,\n default: t(\"Select a tag\")\n },\n /**\n * Currently selected value\n */\n modelValue: {\n type: [Number, Array, Object],\n default: null\n },\n /**\n * Any available prop\n *\n * @see https://vue-select.org/api/props.html\n */\n // Not an actual prop but needed to show in vue-styleguidist docs\n // eslint-disable-next-line\n \" \": {}\n },\n emits: [\n \"update:modelValue\",\n /**\n * All events from https://vue-select.org/api/events.html\n */\n // Not an actual event but needed to show in vue-styleguidist docs\n \" \"\n ],\n data() {\n return {\n search: \"\",\n availableTags: []\n };\n },\n computed: {\n availableOptions() {\n if (this.optionsFilter) {\n return this.tags.filter(this.optionsFilter);\n }\n return this.tags;\n },\n localValue() {\n if (this.passthru) {\n return this.modelValue;\n }\n if (this.tags.length === 0) {\n return [];\n }\n if (this.multiple) {\n return this.modelValue.filter((tag) => tag !== \"\").map((id) => this.tags.find((tag2) => tag2.id === id));\n } else {\n return this.tags.find((tag) => tag.id === this.modelValue);\n }\n },\n propsToForward() {\n const propsToForward = { ...this.$props };\n delete propsToForward.fetchTags;\n delete propsToForward.optionsFilter;\n delete propsToForward.passthru;\n return propsToForward;\n },\n tags() {\n if (!this.fetchTags) {\n return this.options;\n }\n return this.availableTags;\n }\n },\n async created() {\n if (!this.fetchTags) {\n return;\n }\n try {\n const result = await searchTags();\n this.availableTags = result;\n } catch (error) {\n logger.error(\"[NcSelectTags] Loading systemtags failed\", error);\n }\n },\n methods: {\n handleInput(value) {\n if (this.passthru) {\n this.$emit(\"update:modelValue\", value);\n return;\n }\n if (this.multiple) {\n this.$emit(\"update:modelValue\", value.map((element) => element.id));\n } else {\n if (value === null) {\n this.$emit(\"update:modelValue\", null);\n } else {\n this.$emit(\"update:modelValue\", value.id);\n }\n }\n }\n }\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcEllipsisedOption = resolveComponent(\"NcEllipsisedOption\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n return openBlock(), createBlock(_component_NcSelect, mergeProps($options.propsToForward, {\n options: $options.availableOptions,\n \"close-on-select\": !$props.multiple,\n \"model-value\": $options.localValue,\n onSearch: _cache[0] || (_cache[0] = ($event) => $data.search = $event),\n \"onUpdate:modelValue\": $options.handleInput\n }), createSlots({\n option: withCtx((option) => [\n createVNode(_component_NcEllipsisedOption, {\n name: $props.getOptionLabel(option),\n search: $data.search\n }, null, 8, [\"name\", \"search\"])\n ]),\n \"selected-option\": withCtx((selectedOption) => [\n createVNode(_component_NcEllipsisedOption, {\n name: $props.getOptionLabel(selectedOption),\n search: $data.search\n }, null, 8, [\"name\", \"search\"])\n ]),\n _: 2\n }, [\n renderList(_ctx.$slots, (_, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1040, [\"options\", \"close-on-select\", \"model-value\", \"onUpdate:modelValue\"]);\n}\nconst NcSelectTags = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n NcSelectTags as N\n};\n//# sourceMappingURL=NcSelectTags-JyyA4W_e.mjs.map\n","import '../assets/NcSettingsSection-f5rBJsKJ.css';\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, defineComponent, renderSlot, createTextVNode, unref, createVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { r as register, E as t26, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nconst _sfc_main$1 = {\n name: \"HelpCircleIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M15.07,11.25L14.17,12.17C13.45,12.89 13,13.5 13,15H11V14.5C11,13.39 11.45,12.39 12.17,11.67L13.41,10.41C13.78,10.05 14,9.55 14,9C14,7.89 13.1,7 12,7A2,2 0 0,0 10,9H8A4,4 0 0,1 12,5A4,4 0 0,1 16,9C16,9.88 15.64,10.67 15.07,11.25M13,19H11V17H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon help-circle-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$1);\n}\nconst HelpCircle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render]]);\nregister(t26);\nconst _hoisted_1 = { class: \"settings-section\" };\nconst _hoisted_2 = { class: \"settings-section__name\" };\nconst _hoisted_3 = [\"aria-label\", \"href\", \"title\"];\nconst _hoisted_4 = {\n key: 0,\n class: \"settings-section__desc\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcSettingsSection\",\n props: {\n name: {},\n description: { default: \"\" },\n docUrl: { default: \"\" }\n },\n setup(__props) {\n const ariaLabel = t(\"External documentation\");\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createElementVNode(\"h2\", _hoisted_2, [\n createTextVNode(toDisplayString(_ctx.name) + \" \", 1),\n _ctx.docUrl ? (openBlock(), createElementBlock(\"a\", {\n key: 0,\n \"aria-label\": unref(ariaLabel),\n class: \"settings-section__info\",\n href: _ctx.docUrl,\n rel: \"noreferrer nofollow\",\n target: \"_blank\",\n title: unref(ariaLabel)\n }, [\n createVNode(HelpCircle, { size: 20 })\n ], 8, _hoisted_3)) : createCommentVNode(\"\", true)\n ]),\n _ctx.description ? (openBlock(), createElementBlock(\"p\", _hoisted_4, toDisplayString(_ctx.description), 1)) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]);\n };\n }\n});\nconst NcSettingsSection = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-9cedb949\"]]);\nexport {\n NcSettingsSection as N\n};\n//# sourceMappingURL=NcSettingsSection-BcLE6UnZ.mjs.map\n","import '../assets/NcSettingsSelectGroup-BxvEAWNm.css';\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport debounce from \"debounce\";\nimport { N as NcSelect } from \"./NcSelect-Cc9_a8nG.mjs\";\nimport { r as register, i as t49, a as t } from \"./_l10n-CgsPi8nC.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { resolveComponent, createElementBlock, openBlock, createCommentVNode, createVNode, withDirectives, toDisplayString, createElementVNode, vShow } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t49);\nconst _sfc_main = {\n name: \"NcSettingsSelectGroup\",\n components: {\n NcSelect\n },\n props: {\n /**\n * The text of the label element of the select group input\n */\n label: {\n type: String,\n required: true\n },\n /**\n * Placeholder for the input element\n * For backwards compatibility it falls back to the `label` value\n */\n placeholder: {\n type: String,\n default: \"\"\n },\n /**\n * id attribute of the select group element\n */\n id: {\n type: String,\n default: () => \"action-\" + createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * value of the select group input\n * A list of group IDs can be provided\n */\n modelValue: {\n type: Array,\n default: () => []\n },\n /**\n * disabled state of the settings select group input\n */\n disabled: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"error\",\n \"input\",\n \"update:modelValue\"\n ],\n data() {\n return {\n /** Temporary store to cache groups */\n groups: {},\n randId: createElementId(),\n errorMessage: \"\"\n };\n },\n computed: {\n /**\n * If the error message should be shown\n */\n hasError() {\n return this.errorMessage !== \"\";\n },\n /**\n * Validate input value and only return valid strings (group IDs)\n *\n * @return {string[]}\n */\n filteredValue() {\n return this.modelValue.filter((group) => group !== \"\" && typeof group === \"string\");\n },\n /**\n * value property converted to an array of group objects used as input for the NcSelect\n */\n inputValue() {\n return this.filteredValue.map((id) => {\n if (typeof this.groups[id] === \"undefined\") {\n return {\n id,\n displayname: id\n };\n }\n return this.groups[id];\n });\n },\n /**\n * Convert groups object to array of groups required for NcSelect.options\n * Filter out currently selected values\n *\n * @return {object[]}\n */\n groupsArray() {\n return Object.values(this.groups).filter((g) => !this.modelValue.includes(g.id));\n }\n },\n watch: {\n /**\n * If the value is changed, check that all groups are loaded so we show the correct display name\n */\n modelValue: {\n handler() {\n const loadedGroupIds = Object.keys(this.groups);\n const missing = this.filteredValue.filter((group) => !loadedGroupIds.includes(group));\n missing.forEach((groupId) => {\n this.loadGroup(groupId);\n });\n },\n // Run the watch handler also when the component is initially mounted\n immediate: true\n }\n },\n /**\n * Load groups matching the empty query to reduce API calls\n */\n async mounted() {\n const storageName = `${appName}:${appVersion}/initialGroups`;\n let savedGroups = window.sessionStorage.getItem(storageName);\n if (savedGroups) {\n savedGroups = Object.fromEntries(JSON.parse(savedGroups).map((group) => [group.id, group]));\n this.groups = { ...this.groups, ...savedGroups };\n } else {\n await this.loadGroup(\"\");\n window.sessionStorage.setItem(storageName, JSON.stringify(Object.values(this.groups)));\n }\n },\n methods: {\n t,\n /**\n * Called when a new group is selected or previous group is deselected to emit the update event\n *\n * @param {object[]} updatedValue Array of selected groups\n */\n update(updatedValue) {\n const value = updatedValue.map((element) => element.id);\n this.$emit(\"update:modelValue\", value);\n },\n /**\n * Use provisioning API to search for given group and save it in the groups object\n *\n * @param {string} query The query like parts of the id oder display name\n * @return {boolean}\n */\n async loadGroup(query) {\n try {\n query = typeof query === \"string\" ? encodeURI(query) : \"\";\n const response = await axios.get(generateOcsUrl(`cloud/groups/details?search=${query}&limit=10`, 2));\n if (this.errorMessage !== \"\") {\n window.setTimeout(() => {\n this.errorMessage = \"\";\n }, 5e3);\n }\n if (Object.keys(response.data.ocs.data.groups).length > 0) {\n const newGroups = Object.fromEntries(response.data.ocs.data.groups.map((element) => [element.id, element]));\n this.groups = { ...this.groups, ...newGroups };\n return true;\n }\n } catch (error) {\n this.$emit(\"error\", error);\n this.errorMessage = t(\"Unable to search the group\");\n }\n return false;\n },\n /**\n * Custom filter function for `NcSelect` to filter by ID *and* display name\n *\n * @param {object} option One of the groups\n * @param {string} label The label property of the group\n * @param {string} search The current search string\n */\n filterGroups(option, label, search) {\n return `${label || \"\"} ${option.id}`.toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) > -1;\n },\n /**\n * Debounce the group search (reduce API calls)\n */\n onSearch: debounce(function(query) {\n this.loadGroup(query);\n }, 200)\n }\n};\nconst _hoisted_1 = [\"for\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n return openBlock(), createElementBlock(\"div\", null, [\n $props.label ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n for: $props.id,\n class: \"hidden-visually\"\n }, toDisplayString($props.label), 9, _hoisted_1)) : createCommentVNode(\"\", true),\n createVNode(_component_NcSelect, {\n \"model-value\": $options.inputValue,\n options: $options.groupsArray,\n placeholder: $props.placeholder || $props.label,\n \"filter-by\": $options.filterGroups,\n \"input-id\": $props.id,\n limit: 5,\n label: \"displayname\",\n multiple: true,\n \"close-on-select\": false,\n disabled: $props.disabled,\n \"onUpdate:modelValue\": $options.update,\n onSearch: $options.onSearch\n }, null, 8, [\"model-value\", \"options\", \"placeholder\", \"filter-by\", \"input-id\", \"disabled\", \"onUpdate:modelValue\", \"onSearch\"]),\n withDirectives(createElementVNode(\"div\", { class: \"select-group-error\" }, toDisplayString($data.errorMessage), 513), [\n [vShow, $options.hasError]\n ])\n ]);\n}\nconst NcSettingsSelectGroup = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-21e2bf0c\"]]);\nexport {\n NcSettingsSelectGroup as N\n};\n//# sourceMappingURL=NcSettingsSelectGroup-CUU-GWYl.mjs.map\n"],"file":"index-CGOHHiYr.chunk.mjs"} |